[E1000-devel] igb hard-coded mac_table[0] in igb_probe

2012-02-29 Thread James Bulpin
We've noticed that the igb_probe() function hard-codes mac_table index 0 when 
setting the PF MAC entry. Unfortunately this happens after 
igb_set_sriov_capability() has run and used mac_table[0] for the VF0 initial 
MAC and therefore the PF MAC silently obliterates the VF0 config. In practice 
this isn't a problem because the VF0 MAC will get re-added to the table later 
on igb_vf_reset_msg() etc.

The only reason this caused a problem for us was because we were using the 
number of free mac_table entries as a guide to how many additional MAC filters 
we could define - to work around this we simply have to allow for a spare entry 
for VF0 when it eventually gets used.

Regards,
James


--
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
___
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit 
http://communities.intel.com/community/wired


Re: [E1000-devel] igb hard-coded mac_table[0] in igb_probe

2012-02-29 Thread Rose, Gregory V
> -Original Message-
> From: James Bulpin [mailto:james.bul...@eu.citrix.com]
> Sent: Wednesday, February 29, 2012 5:34 AM
> To: e1000-devel@lists.sourceforge.net
> Subject: [E1000-devel] igb hard-coded mac_table[0] in igb_probe
> 
> We've noticed that the igb_probe() function hard-codes mac_table index 0
> when setting the PF MAC entry. Unfortunately this happens after
> igb_set_sriov_capability() has run and used mac_table[0] for the VF0
> initial MAC and therefore the PF MAC silently obliterates the VF0 config.
> In practice this isn't a problem because the VF0 MAC will get re-added to
> the table later on igb_vf_reset_msg() etc.
> 
> The only reason this caused a problem for us was because we were using the
> number of free mac_table entries as a guide to how many additional MAC
> filters we could define - to work around this we simply have to allow for
> a spare entry for VF0 when it eventually gets used.
> 

This is to support backwards compatibility with legacy drivers that don't use 
or support SR-IOV.  The igb driver is used on several devices that don't have 
SR-IOV features.

However I can see how it's a bit confusing.  In our 10Gig drivers we have ended 
up allocating the VF MAC addresses starting from the top of the MAC address 
filter table.  It would be a good idea to do this for the igb driver also to 
avoid this sort of confusion and to make behavior consistent among our drivers. 
 I'm not sure when the resources for this work would be available though.

- Greg


--
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
___
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit 
http://communities.intel.com/community/wired


Re: [E1000-devel] igb hard-coded mac_table[0] in igb_probe

2012-02-29 Thread James Bulpin
Hi Greg,

Thanks for the reply and explanation. It does sound like a top down allocation 
strategy would work. From my point of view it's not high priority so maybe 
something for the possible future enhancements backlog. We could easily make 
the code change but we don't have the test infrastructure to properly 
regression test it.

Thanks,
James

> -Original Message-
> From: Rose, Gregory V [mailto:gregory.v.r...@intel.com]
> Sent: 29 February 2012 16:19
> To: James Bulpin; e1000-devel@lists.sourceforge.net
> Subject: RE: igb hard-coded mac_table[0] in igb_probe
> 
> > -Original Message-
> > From: James Bulpin [mailto:james.bul...@eu.citrix.com]
> > Sent: Wednesday, February 29, 2012 5:34 AM
> > To: e1000-devel@lists.sourceforge.net
> > Subject: [E1000-devel] igb hard-coded mac_table[0] in igb_probe
> >
> > We've noticed that the igb_probe() function hard-codes mac_table
> index
> > 0 when setting the PF MAC entry. Unfortunately this happens after
> > igb_set_sriov_capability() has run and used mac_table[0] for the VF0
> > initial MAC and therefore the PF MAC silently obliterates the VF0
> config.
> > In practice this isn't a problem because the VF0 MAC will get re-
> added
> > to the table later on igb_vf_reset_msg() etc.
> >
> > The only reason this caused a problem for us was because we were
> using
> > the number of free mac_table entries as a guide to how many
> additional
> > MAC filters we could define - to work around this we simply have to
> > allow for a spare entry for VF0 when it eventually gets used.
> >
> 
> This is to support backwards compatibility with legacy drivers that
> don't use or support SR-IOV.  The igb driver is used on several devices
> that don't have SR-IOV features.
> 
> However I can see how it's a bit confusing.  In our 10Gig drivers we
> have ended up allocating the VF MAC addresses starting from the top of
> the MAC address filter table.  It would be a good idea to do this for
> the igb driver also to avoid this sort of confusion and to make
> behavior consistent among our drivers.  I'm not sure when the resources
> for this work would be available though.
> 
> - Greg


--
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
___
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit 
http://communities.intel.com/community/wired