Thanks Alex and Nick. It is nice that finally we come to the technical aspect 
of it, and I really appreciate your input.

Changing type PF to type VMDQ2 was the first thing I have tried when debugging 
this issue. It didn't help.

Yesterday I installed Solaris 11.4, create VNICs by setting 
"ring-group=exclusive", ran my reproduction programs, there was no performance 
issue.

Obviously Intel knows how to do the proper initialization/configuration of 
VMDq2 VSIs. I am wondering what that is. If you could shed some light on it, 
that would be really helpful.

Thanks,

-Youzhong

-----Original Message-----
From: Nunley, Nicholas D <nicholas.d.nun...@intel.com> 
Sent: Friday, December 13, 2019 4:10 PM
To: Alexander Duyck <alexander.du...@gmail.com>; Youzhong Yang 
<yy...@mathworks.com>
Cc: e1000-devel@lists.sourceforge.net
Subject: RE: [E1000-devel] X710: very slow rx speed (a few MiB/second) when 
using non-default VSI.

I have experience with the Solaris driver, but not Illumos, so I won't be able 
to assist in any debug since the implementations differ too much, but I am 
familiar with the interfaces and can say that in the official i40e Solaris 
driver we've always used VMDq2 VSIs for the non-default ring groups, not PF 
VSIs. 

I would try changing the ring group configuration in i40e_add_vsi() to use 
VMDq2 VSIs and see if that makes a difference. There shouldn't be any reason 
Illumos would specifically need PF VSIs here.

http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/io/i40e/i40e_main.c#2126
change:
ctx.flags = I40E_AQ_VSI_TYPE_PF;
to:
ctx.flags = I40E_AQ_VSI_TYPE_VMDQ2;

Thanks,
Nick

> -----Original Message-----
> From: Alexander Duyck <alexander.du...@gmail.com>
> Sent: Friday, December 13, 2019 11:27 AM
> To: Youzhong Yang <yy...@mathworks.com>
> Cc: e1000-devel@lists.sourceforge.net
> Subject: Re: [E1000-devel] X710: very slow rx speed (a few MiB/second) 
> when using non-default VSI.
> 
> Before you start complaining about what the driver is or isn't doing 
> you should probably understand that both the Linux and FreeBSD drivers 
> do have to create a PF VSI as that is the default VSI type if I am not 
> mistaken. Do you know what the goal is in creating multiple PF VSIs? I 
> don't see the reason for doing that versus allocating VMDq2 VSIs?
> 
> If you take a look at the i40e Linux driver it supports a feature 
> called ADq which can be used to create multiple VMDq2 VSIs.
> 
> Nobody on this list likely has any experience with Illuminos. I would 
> recommend getting in touch with the maintainer for the Illuminos i40e 
> driver and working with them as they would know how that driver is 
> supposed to work and why the functionality is implemented the way it is.
> 
> Thanks.
> 
> - Alex
> 
> On Fri, Dec 13, 2019 at 11:04 AM Youzhong Yang <yy...@mathworks.com>
> wrote:
> >
> > As I said, a supported OS (Linux and FreeBSD?) does not create the 
> > kind of
> VSI (PF VSI) in its i40e driver, are you asking me to test nothing on 
> your supported OS?
> >
> > "Intel(r) Ethernet Controller X710/ XXV710/XL710 Datasheet" claims 
> > it
> supports PF VSIs, so why would you say it is not supported? Because 
> your customer is not using Linux and FreeBSD?
> >
> > It does not make any sense. Sorry.
> >
> > -----Original Message-----
> > From: Fujinaka, Todd <todd.fujin...@intel.com>
> > Sent: Friday, December 13, 2019 1:45 PM
> > To: Youzhong Yang <yy...@mathworks.com>; 
> > e1000-devel@lists.sourceforge.net
> > Subject: RE: X710: very slow rx speed (a few MiB/second) when using 
> > non-
> default VSI.
> >
> > You can try official channels but you're just going to get an 
> > official "Talk to
> Illuminos" from me.
> >
> > As I said, you can try installing a supported OS to see if it's a 
> > hardware issue,
> but we have no support for Illuminos.
> >
> > Todd Fujinaka
> > Software Application Engineer
> > Datacenter Engineering Group
> > Intel Corporation
> > todd.fujin...@intel.com
> >
> > -----Original Message-----
> > From: Youzhong Yang <yy...@mathworks.com>
> > Sent: Friday, December 13, 2019 10:11 AM
> > To: Fujinaka, Todd <todd.fujin...@intel.com>; 
> > e1000-devel@lists.sourceforge.net
> > Subject: RE: X710: very slow rx speed (a few MiB/second) when using 
> > non-
> default VSI.
> >
> > This mailing list seems quite quiet. Any hope my issue could get 
> > some
> attention? If it is a thing of 'Only Linux and FreeBSD are supported', 
> is there any other communication channel through which this issue can be 
> escalated?
> Thanks a lot for your understanding.
> >
> > -----Original Message-----
> > From: Youzhong Yang <yy...@mathworks.com>
> > Sent: Tuesday, December 3, 2019 12:21 PM
> > To: Fujinaka, Todd <todd.fujin...@intel.com>; 
> > e1000-devel@lists.sourceforge.net
> > Subject: RE: X710: very slow rx speed (a few MiB/second) when using 
> > non-
> default VSI.
> >
> > Hello Todd,
> >
> > Thank you very much for replying so fast. I am sorry I missed your 
> > e-mail as
> it was blocked by our company e-mail filters.
> >
> > I have contacted illumos dev twice but unfortunately there was no 
> > reply, it
> seems the i40e driver developer is no longer active. I am trying to 
> figure out how I can fix the issue by myself, I know how to do driver 
> development but this particular issue seems to be very unique, and I 
> suspect either something is missing when creating the VSIs, or there 
> might be a bug (possibly in the Ethernet card firmware) in the way 
> non-default PF VSI is created.
> >
> > I have researched the Linux and FreeBSD i40e driver code, none of 
> > them
> does the same kind of thing our illumos driver does. For each i40e 
> instance, we create 31 PF VSIs in addition to the default one 
> initiated by the card firmware. When receiving data through the RX 
> queues of the default VSI, the performance is very good, but when 
> receiving data through the RX queues of the non-default VSI, the performance 
> can be very poor.
> >
> > The "Intel(r) Ethernet Controller X710/ XXV710/XL710 Datasheet" 
> > suggests
> there's nothing wrong by having 32 PF VSIs. Please refer to its page 20:
> >
> > "VSI Support
> > The X710/XXV710/XL710 supports a total of 384 VSIs. VSI assignment 
> > is
> flexible, but the choice to support 384 VSIs is motivated by the 
> following usage example:
> > * 256 VSIs for VFs or VMDq2
> > * 32 VSIs for PFs"
> >
> > We purchased a bunch of XL710 cards, hoping it can deliver better
> performance than the ixgbe cards. Sadly we were hit by this 
> performance issue, and I've tried troubleshooting/debugging for more 
> than 2 months, but so far no luck.
> >
> > Your kind assistance would be highly appreciated.
> >
> > Sincerely,
> >
> > -Youzhong Yang
> > The MathWorks Inc.
> >
> > -----Original Message-----
> > From: Fujinaka, Todd <todd.fujin...@intel.com>
> > Sent: Monday, December 2, 2019 4:39 PM
> > To: Youzhong Yang <yy...@mathworks.com>; 
> > e1000-devel@lists.sourceforge.net
> > Subject: RE: X710: very slow rx speed (a few MiB/second) when using 
> > non-
> default VSI.
> >
> > I think you're going to have to ask Illumos about this. Can you 
> > reproduce
> this on a supported OS such as Red Hat Linux or FreeBSD?
> >
> > Todd Fujinaka
> > Software Application Engineer
> > Datacenter Engineering Group
> > Intel Corporation
> > todd.fujin...@intel.com
> >
> > -----Original Message-----
> > From: Youzhong Yang <yy...@mathworks.com>
> > Sent: Monday, December 2, 2019 12:19 PM
> > To: e1000-devel@lists.sourceforge.net
> > Subject: [E1000-devel] X710: very slow rx speed (a few MiB/second) 
> > when
> using non-default VSI.
> >
> > Hello everyone,
> >
> > I submitted a help request on Intel website and was redirected to 
> > this
> mailing list. The request can be found here:
> >
> > X710: very slow rx speed (a few MiB/second) when using non-default VSI.
> >
> >
> > I experienced very strange performance issue when sending data from 
> > a
> client to a server with X710 card. Details about the investigation can 
> be found
> here:
> >
> > https://github.com/youzhongyang/i40e_investigation
> > ub.com
> >
> >
> >
> > The server runs illumos (derived from open solaris), its i40e driver 
> > can be
> found here:
> >
> > http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/io/.
> > illumos.org
> > i40e/
> >
> >
> >
> > So for each i40e instance, we create 32 VSIs (including the default 
> > one
> created by the firmware), each VSI is assigned 8 trq pairs. When a 
> VIF/VNIC is created, the OS assigns a VSI to it, data receiving 
> through the VNIC's IP will be done by the relevant VSI's 8 RX rings. 
> However, data sending will always go through the default VSI's 8 TX rings.
> >
> >
> >
> > The function for creating non-default VSI is here:
> >
> > http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/io/.
> > illumos.org
> > i40e/i40e_main.c#2111
> >
> >
> >
> > I've upgraded the firmware version to the latest, still the same 
> > issue. Is this
> a known issue? or is there anything missing when setting up the 
> non-default VSI?
> >
> >
> >
> > Your help/advice would be highly appreciated.
> >
> > Sincerely,
> > -Youzhong Yang
> >
> >
> > _______________________________________________
> > E1000-devel mailing list
> > E1000-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/e1000-devel
> > s.sourceforge.net To learn more about Intel Ethernet, visit 
> > https://forums.intel.com/s/topic/0TO0P00000018NbWAI/intel-ethernet
> > ms.intel.com
> >
> >
> >
> > _______________________________________________
> > E1000-devel mailing list
> > E1000-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/e1000-devel
> > s.sourceforge.net To learn more about Intel Ethernet, visit 
> > https://forums.intel.com/s/topic/0TO0P00000018NbWAI/intel-ethernet
> > ms.intel.com
> 
> 
> _______________________________________________
> E1000-devel mailing list
> E1000-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/e1000-devel.
> sourceforge.net To learn more about Intel Ethernet, visit 
> https://forums.intel.com/s/topic/0TO0P00000018NbWAI/intel-ethernet



_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel Ethernet, visit 
https://forums.intel.com/s/topic/0TO0P00000018NbWAI/intel-ethernet

Reply via email to