diff mbox

[net-next] net:add one common config ARCH_WANT_RELAX_ORDER to support relax ordering.

Message ID 1483696364-8680-1-git-send-email-maowenan@huawei.com
State Changes Requested, archived
Delegated to: David Miller
Headers show

Commit Message

maowenan Jan. 6, 2017, 9:52 a.m. UTC
Relax ordering(RO) is one feature of 82599 NIC, to enable this feature can
enhance the performance for some cpu architecure, such as SPARC and so on.
Currently it only supports one special cpu architecture(SPARC) in 82599
driver to enable RO feature, this is not very common for other cpu architecture
which really needs RO feature.
This patch add one common config CONFIG_ARCH_WANT_RELAX_ORDER to set RO feature,
and should define CONFIG_ARCH_WANT_RELAX_ORDER in sparc Kconfig firstly.

Signed-off-by: Mao Wenan <maowenan@huawei.com>
---
 arch/sparc/Kconfig                              | 1 +
 drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

Comments

Alexander H Duyck Jan. 6, 2017, 3:41 p.m. UTC | #1
On Fri, Jan 6, 2017 at 1:52 AM, Mao Wenan <maowenan@huawei.com> wrote:
> Relax ordering(RO) is one feature of 82599 NIC, to enable this feature can
> enhance the performance for some cpu architecure, such as SPARC and so on.
> Currently it only supports one special cpu architecture(SPARC) in 82599
> driver to enable RO feature, this is not very common for other cpu architecture
> which really needs RO feature.
> This patch add one common config CONFIG_ARCH_WANT_RELAX_ORDER to set RO feature,
> and should define CONFIG_ARCH_WANT_RELAX_ORDER in sparc Kconfig firstly.
>
> Signed-off-by: Mao Wenan <maowenan@huawei.com>
> ---
>  arch/sparc/Kconfig                              | 1 +
>  drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 2 +-
>  2 files changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
> index cf4034c..68ac5c7 100644
> --- a/arch/sparc/Kconfig
> +++ b/arch/sparc/Kconfig
> @@ -44,6 +44,7 @@ config SPARC
>         select CPU_NO_EFFICIENT_FFS
>         select HAVE_ARCH_HARDENED_USERCOPY
>         select PROVE_LOCKING_SMALL if PROVE_LOCKING
> +       select ARCH_WANT_RELAX_ORDER
>
>  config SPARC32
>         def_bool !64BIT


I'm pretty sure this is incomplete.  I think you need to add a couple
lines to arch/Kconfig so that the config option itself is listed
somewhere.  You might look at using something like HAVE_CMPXCHG_DOUBLE
as an example.

- Alex
maowenan Jan. 9, 2017, 5:33 a.m. UTC | #2
On 2017/1/6 23:41, Alexander Duyck wrote:
> On Fri, Jan 6, 2017 at 1:52 AM, Mao Wenan <maowenan@huawei.com> wrote:
>> Relax ordering(RO) is one feature of 82599 NIC, to enable this feature can
>> enhance the performance for some cpu architecure, such as SPARC and so on.
>> Currently it only supports one special cpu architecture(SPARC) in 82599
>> driver to enable RO feature, this is not very common for other cpu architecture
>> which really needs RO feature.
>> This patch add one common config CONFIG_ARCH_WANT_RELAX_ORDER to set RO feature,
>> and should define CONFIG_ARCH_WANT_RELAX_ORDER in sparc Kconfig firstly.
>>
>> Signed-off-by: Mao Wenan <maowenan@huawei.com>
>> ---
>>  arch/sparc/Kconfig                              | 1 +
>>  drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 2 +-
>>  2 files changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
>> index cf4034c..68ac5c7 100644
>> --- a/arch/sparc/Kconfig
>> +++ b/arch/sparc/Kconfig
>> @@ -44,6 +44,7 @@ config SPARC
>>         select CPU_NO_EFFICIENT_FFS
>>         select HAVE_ARCH_HARDENED_USERCOPY
>>         select PROVE_LOCKING_SMALL if PROVE_LOCKING
>> +       select ARCH_WANT_RELAX_ORDER
>>
>>  config SPARC32
>>         def_bool !64BIT
> 
> 
> I'm pretty sure this is incomplete.  I think you need to add a couple
> lines to arch/Kconfig so that the config option itself is listed
> somewhere.  You might look at using something like HAVE_CMPXCHG_DOUBLE
> as an example.
> 
> - Alex
> 
> 

thank you for comments, i will send v2 patch soon.
diff mbox

Patch

diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index cf4034c..68ac5c7 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -44,6 +44,7 @@  config SPARC
 	select CPU_NO_EFFICIENT_FFS
 	select HAVE_ARCH_HARDENED_USERCOPY
 	select PROVE_LOCKING_SMALL if PROVE_LOCKING
+	select ARCH_WANT_RELAX_ORDER
 
 config SPARC32
 	def_bool !64BIT
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
index 094e1d6..c38d50c 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
@@ -350,7 +350,7 @@  s32 ixgbe_start_hw_gen2(struct ixgbe_hw *hw)
 	}
 	IXGBE_WRITE_FLUSH(hw);
 
-#ifndef CONFIG_SPARC
+#ifndef CONFIG_ARCH_WANT_RELAX_ORDER
 	/* Disable relaxed ordering */
 	for (i = 0; i < hw->mac.max_tx_queues; i++) {
 		u32 regval;