diff mbox

[net-next,2/2] add one config to select relax order mode in intel NIC's Kconfig

Message ID 1486114233-9800-3-git-send-email-maowenan@huawei.com
State Not Applicable, archived
Delegated to: David Miller
Headers show

Commit Message

maowenan Feb. 3, 2017, 9:30 a.m. UTC
This patch allows one to enable relax order mode in intel NIC's
Kconfig. CONFIG_ARCH_WANT_RELAX_ORDER is a common macro for some
CPU architecture to use relax order mode in NIC's source codes.
CONFIG_ARCH_WANT_RELAX_ORDER can be defined in arch/xxx/Kconfig,
such as sparc system exists in arch/sparc/Kconfig, but not all
of arm64 systems can use relax order mode, so it can't be defined
in arch/arm64/Kconfig. Therefore PCI_RELAX_ORDER in NIC's Kconfig
provide one way to define macro CONFIG_ARCH_WANT_RELAX_ORDER.

Signed-off-by: Mao Wenan <maowenan@huawei.com>
---
 drivers/net/ethernet/intel/Kconfig | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

Comments

Alexander H Duyck Feb. 3, 2017, 4:43 p.m. UTC | #1
On Fri, Feb 3, 2017 at 1:30 AM, Mao Wenan <maowenan@huawei.com> wrote:
> This patch allows one to enable relax order mode in intel NIC's
> Kconfig. CONFIG_ARCH_WANT_RELAX_ORDER is a common macro for some
> CPU architecture to use relax order mode in NIC's source codes.
> CONFIG_ARCH_WANT_RELAX_ORDER can be defined in arch/xxx/Kconfig,
> such as sparc system exists in arch/sparc/Kconfig, but not all
> of arm64 systems can use relax order mode, so it can't be defined
> in arch/arm64/Kconfig. Therefore PCI_RELAX_ORDER in NIC's Kconfig
> provide one way to define macro CONFIG_ARCH_WANT_RELAX_ORDER.
>
> Signed-off-by: Mao Wenan <maowenan@huawei.com>
> ---
>  drivers/net/ethernet/intel/Kconfig | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)
>
> diff --git a/drivers/net/ethernet/intel/Kconfig b/drivers/net/ethernet/intel/Kconfig
> index 1349b45..b366722 100644
> --- a/drivers/net/ethernet/intel/Kconfig
> +++ b/drivers/net/ethernet/intel/Kconfig
> @@ -275,4 +275,19 @@ config FM10K
>           To compile this driver as a module, choose M here. The module
>           will be called fm10k.  MSI-X interrupt support is required
>
> +config PCI_RELAX_ORDER
> +        bool "PCI relax order mode support"
> +        default n
> +        select ARCH_WANT_RELAX_ORDER
> +        ---help---
> +          This allows one to enable relax order mode in driver.
> +          CONFIG_ARCH_WANT_RELAX_ORDER is a common macro for some
> +          CPU architecture to use relax order mode in NIC's source codes.
> +          CONFIG_ARCH_WANT_RELAX_ORDER can be defined in arch/xxx/Kconfig,
> +          such as sparc system exists in arch/sparc/Kconfig, but not all
> +          of arm64 systems can use relax order mode, so it can't be defined
> +          in arch/arm64/Kconfig. Therefore PCI_RELAX_ORDER provide one way
> +          to define macro CONFIG_ARCH_WANT_RELAX_ORDER. Say Y here if you
> +          want to enable relax order.
> +
>  endif # NET_VENDOR_INTEL


You can't be dropping configuration options like this in here.  The
ARCH_WANT_RELAX_ORDER should be selected by the architecture as a
def_bool, not by the user via a kconfig option.  In addition this
option has no business in the Intel wired LAN directory as this
impacts all architectures.

This is something that would be an architecture specific PCI option
and could impact other PCI devices beyond what is just in networking.
If you are wanting to target the arm64 architecture you should
probably drop this in the /arch/arm64/Kconfig, then that way anyone
familiar with the arm64 hardware can chime in if enabling relaxed
ordering causes any known issues.

- Alex
maowenan Feb. 4, 2017, 1:36 a.m. UTC | #2
> -----Original Message-----

> From: Alexander Duyck [mailto:alexander.duyck@gmail.com]

> Sent: Saturday, February 04, 2017 12:43 AM

> To: maowenan

> Cc: Netdev; Jeff Kirsher

> Subject: Re: [PATCH net-next 2/2] add one config to select relax order mode in

> intel NIC's Kconfig

> 

> On Fri, Feb 3, 2017 at 1:30 AM, Mao Wenan <maowenan@huawei.com> wrote:

> > This patch allows one to enable relax order mode in intel NIC's

> > Kconfig. CONFIG_ARCH_WANT_RELAX_ORDER is a common macro for some

> CPU

> > architecture to use relax order mode in NIC's source codes.

> > CONFIG_ARCH_WANT_RELAX_ORDER can be defined in arch/xxx/Kconfig,

> such

> > as sparc system exists in arch/sparc/Kconfig, but not all of arm64

> > systems can use relax order mode, so it can't be defined in

> > arch/arm64/Kconfig. Therefore PCI_RELAX_ORDER in NIC's Kconfig provide

> > one way to define macro CONFIG_ARCH_WANT_RELAX_ORDER.

> >

> > Signed-off-by: Mao Wenan <maowenan@huawei.com>

> > ---

> >  drivers/net/ethernet/intel/Kconfig | 15 +++++++++++++++

> >  1 file changed, 15 insertions(+)

> >

> > diff --git a/drivers/net/ethernet/intel/Kconfig

> > b/drivers/net/ethernet/intel/Kconfig

> > index 1349b45..b366722 100644

> > --- a/drivers/net/ethernet/intel/Kconfig

> > +++ b/drivers/net/ethernet/intel/Kconfig

> > @@ -275,4 +275,19 @@ config FM10K

> >           To compile this driver as a module, choose M here. The module

> >           will be called fm10k.  MSI-X interrupt support is required

> >

> > +config PCI_RELAX_ORDER

> > +        bool "PCI relax order mode support"

> > +        default n

> > +        select ARCH_WANT_RELAX_ORDER

> > +        ---help---

> > +          This allows one to enable relax order mode in driver.

> > +          CONFIG_ARCH_WANT_RELAX_ORDER is a common macro for

> some

> > +          CPU architecture to use relax order mode in NIC's source codes.

> > +          CONFIG_ARCH_WANT_RELAX_ORDER can be defined in

> arch/xxx/Kconfig,

> > +          such as sparc system exists in arch/sparc/Kconfig, but not all

> > +          of arm64 systems can use relax order mode, so it can't be

> defined

> > +          in arch/arm64/Kconfig. Therefore PCI_RELAX_ORDER provide

> one way

> > +          to define macro CONFIG_ARCH_WANT_RELAX_ORDER. Say Y

> here if you

> > +          want to enable relax order.

> > +

> >  endif # NET_VENDOR_INTEL

> 

> 

> You can't be dropping configuration options like this in here.  The

> ARCH_WANT_RELAX_ORDER should be selected by the architecture as a

> def_bool, not by the user via a kconfig option.  In addition this option has no

> business in the Intel wired LAN directory as this impacts all architectures.

> 

> This is something that would be an architecture specific PCI option and could

> impact other PCI devices beyond what is just in networking.

> If you are wanting to target the arm64 architecture you should probably drop

> this in the /arch/arm64/Kconfig, then that way anyone familiar with the arm64

> hardware can chime in if enabling relaxed ordering causes any known issues.

> 

> - Alex



I have tried to drop configuration to arch/arm64/Kconfig, but I found there will
be side effect as not all of arm64 systems really need relax order, so I put it in intel
Kconfig because it is a feature of PCI device and configured by NIC's register.
By the way, do you agree the first patch of this series, shall I repost it individually? 
[PATCH net-next 1/2] ixgbevf and 82598 relax order mode support
diff mbox

Patch

diff --git a/drivers/net/ethernet/intel/Kconfig b/drivers/net/ethernet/intel/Kconfig
index 1349b45..b366722 100644
--- a/drivers/net/ethernet/intel/Kconfig
+++ b/drivers/net/ethernet/intel/Kconfig
@@ -275,4 +275,19 @@  config FM10K
 	  To compile this driver as a module, choose M here. The module
 	  will be called fm10k.  MSI-X interrupt support is required
 
+config PCI_RELAX_ORDER
+        bool "PCI relax order mode support"
+        default n
+        select ARCH_WANT_RELAX_ORDER
+        ---help---
+          This allows one to enable relax order mode in driver.
+          CONFIG_ARCH_WANT_RELAX_ORDER is a common macro for some
+          CPU architecture to use relax order mode in NIC's source codes.
+          CONFIG_ARCH_WANT_RELAX_ORDER can be defined in arch/xxx/Kconfig,
+          such as sparc system exists in arch/sparc/Kconfig, but not all
+          of arm64 systems can use relax order mode, so it can't be defined
+          in arch/arm64/Kconfig. Therefore PCI_RELAX_ORDER provide one way
+          to define macro CONFIG_ARCH_WANT_RELAX_ORDER. Say Y here if you
+          want to enable relax order.
+
 endif # NET_VENDOR_INTEL