[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <43F901BD926A4E43B106BF17856F0755019414D910@orsmsx508.amr.corp.intel.com>
Date: Thu, 28 Jul 2011 14:34:57 -0700
From: "Rose, Gregory V" <gregory.v.rose@...el.com>
To: Ben Hutchings <bhutchings@...arflare.com>
CC: "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"davem@...emloft.net" <davem@...emloft.net>,
"Kirsher, Jeffrey T" <jeffrey.t.kirsher@...el.com>
Subject: RE: [RFC net-next PATCH 3/4] ethtool: Add new set commands
> -----Original Message-----
> From: netdev-owner@...r.kernel.org [mailto:netdev-owner@...r.kernel.org]
> On Behalf Of Ben Hutchings
> Sent: Thursday, July 28, 2011 2:20 PM
> To: Rose, Gregory V
> Cc: netdev@...r.kernel.org; davem@...emloft.net; Kirsher, Jeffrey T
> Subject: Re: [RFC net-next PATCH 3/4] ethtool: Add new set commands
>
> On Wed, 2011-07-27 at 15:17 -0700, Greg Rose wrote:
> > Add new set commands to configure the number of SR-IOV VFs, the
> > number of VM queues and spoof checking on/off switch.
> >
> > Signed-off-by: Greg Rose <gregory.v.rose@...el.com>
> > ---
> >
> > include/linux/ethtool.h | 11 ++++++++++-
> > 1 files changed, 10 insertions(+), 1 deletions(-)
> >
> > diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
> > index c6e427a..c4972ba 100644
> > --- a/include/linux/ethtool.h
> > +++ b/include/linux/ethtool.h
> > @@ -36,12 +36,14 @@ struct ethtool_cmd {
> > __u8 mdio_support;
> > __u32 maxtxpkt; /* Tx pkts before generating tx int */
> > __u32 maxrxpkt; /* Rx pkts before generating rx int */
> > + __u32 num_vfs; /* Enable SR-IOV VFs */
>
> What are the semantics of changing this after VFs have already been set
> up?
There's an example of it patch 4/4 in this set. The PF driver checks if any VFs are assigned and active and if not then it will disable and destroy all the current VFs via a call to pci_disable_sriov() and then call pci_enable_sriov() with the new number of VFs. Or, if the number of new VFs is zero then SR-IOV is left disabled on that PF.
Mostly this is to accommodate customer requests to be able to set a different number of VFs per PF or to only have specified PFs enable VFs. The current usage of the max_vfs module parameter is unwieldy in this sense as you must enable SR-IOV VFs on all physical functions found during the device probe with the same number of VFs.
>
> > + __u32 num_vmqs; /* Set number of queues for VMDq */
>
> VMDq is an Intel proprietary name. Please specify this in generic
> terms.
I'll use the more generic term VM queues.
>
> > __u16 speed_hi; /* The forced speed (upper
> > * bits) in Mbps. Please use
> > * ethtool_cmd_speed()/_set() to
> > * access it */
> > __u8 eth_tp_mdix;
> > - __u8 reserved2;
> > + __u8 spoof_check; /* Enable/Disable anti-spoofing */
> > __u32 lp_advertising; /* Features the link partner advertises */
> > __u32 reserved[2];
> > };
> > @@ -1121,6 +1123,13 @@ struct ethtool_ops {
> > #define AUTONEG_DISABLE 0x00
> > #define AUTONEG_ENABLE 0x01
> >
> > +/* Enable or disable MAC and/or VLAN spoofchecking.If this is
> > + * set to enable, then depending on the controller capabilities
> > + * MAC and/or VLAN spoofing will be turned on.
> > + */
> > +#define SPOOFCHECK_DISABLE 0x00
> > +#define SPOOFCHECK_ENABLE 0x01
>
> I'm not sure it's necessary to continue defining macros for booleans.
OK. I tend to just follow the conventions in the code I see when I'm not that familiar with it but in this case I'll just use true and false.
>
> This should not 'depend on controller capabilities'. If the
> administrator tries to enable this feature on a device that does not
> support it, the request must return an error rather than failing
> silently. (This is another reason to define new commands.)
Alright, I'll fix it up to work that way.
- Greg
Powered by blists - more mailing lists