aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMao Wenan <maowenan@huawei.com>2017-01-17 19:50:05 -0500
committerDavid S. Miller <davem@davemloft.net>2017-01-18 16:33:00 -0500
commit1a8b6d76dc5b489cd0123fa8447b6e20569f357b (patch)
tree562ba05bd0249bacf6eec63ebd919396bf2f3ae8
parent1e48aac14cc896b5a6a8f8f32c9744c52bebf4ee (diff)
net:add one common config ARCH_WANT_RELAX_ORDER to support relax ordering
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> Reviewed-by: Alexander Duyck <alexander.duyck@gmail.com> Reviewed-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--arch/Kconfig3
-rw-r--r--arch/sparc/Kconfig1
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_common.c2
3 files changed, 5 insertions, 1 deletions
diff --git a/arch/Kconfig b/arch/Kconfig
index 99839c23d453..bd04eace455c 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -781,4 +781,7 @@ config VMAP_STACK
781 the stack to map directly to the KASAN shadow map using a formula 781 the stack to map directly to the KASAN shadow map using a formula
782 that is incorrect if the stack is in vmalloc space. 782 that is incorrect if the stack is in vmalloc space.
783 783
784config ARCH_WANT_RELAX_ORDER
785 bool
786
784source "kernel/gcov/Kconfig" 787source "kernel/gcov/Kconfig"
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index cf4034c66362..68ac5c7cd982 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -44,6 +44,7 @@ config SPARC
44 select CPU_NO_EFFICIENT_FFS 44 select CPU_NO_EFFICIENT_FFS
45 select HAVE_ARCH_HARDENED_USERCOPY 45 select HAVE_ARCH_HARDENED_USERCOPY
46 select PROVE_LOCKING_SMALL if PROVE_LOCKING 46 select PROVE_LOCKING_SMALL if PROVE_LOCKING
47 select ARCH_WANT_RELAX_ORDER
47 48
48config SPARC32 49config SPARC32
49 def_bool !64BIT 50 def_bool !64BIT
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
index 094e1d63309a..c38d50c1fcf7 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)
350 } 350 }
351 IXGBE_WRITE_FLUSH(hw); 351 IXGBE_WRITE_FLUSH(hw);
352 352
353#ifndef CONFIG_SPARC 353#ifndef CONFIG_ARCH_WANT_RELAX_ORDER
354 /* Disable relaxed ordering */ 354 /* Disable relaxed ordering */
355 for (i = 0; i < hw->mac.max_tx_queues; i++) { 355 for (i = 0; i < hw->mac.max_tx_queues; i++) {
356 u32 regval; 356 u32 regval;