From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Marchand Subject: Re: i40e: Steps and required configurations of how to achieve the best performance! Date: Thu, 18 Sep 2014 10:57:47 +0200 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: "dev-VfR2kkLFssw@public.gmane.org" To: "Zhang, Helin" Return-path: In-Reply-To: List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-VfR2kkLFssw@public.gmane.org Sender: "dev" Hello Helin, On Thu, Sep 18, 2014 at 4:39 AM, Zhang, Helin wrote= : > Hi David > > > > *From:* David Marchand [mailto:david.marchand-pdR9zngts4EAvxtiuMwx3w@public.gmane.org] > *Sent:* Wednesday, September 17, 2014 10:03 PM > *To:* Zhang, Helin > *Cc:* dev-VfR2kkLFssw@public.gmane.org > *Subject:* Re: [dpdk-dev] i40e: Steps and required configurations of how > to achieve the best performance! > > > > On Wed, Sep 17, 2014 at 10:50 AM, Zhang, Helin > wrote: > > For the =E2=80=98extended tag=E2=80=99, it was defined in PCIe spec, but= actually not > all BIOS implements it. Enabling it in BIOS or at runtime are two choices > of doing the same thing. I don=E2=80=99t think it can be configured per P= CI device > in BIOS, so we don=E2=80=99t need to do that per PCI device in DPDK. Righ= t? > Actually we don=E2=80=99t want to touch PCIe settings in DPDK code, that= =E2=80=99s why we > want to let BIOS config as it is by default. If no better choice, we can = do > it in DPDK by changing configurations. > > > > - Ok, then if we can make a runtime decision (at dpdk level), there is no > need for bios configuration and there is no need for a build option. > > Why don't we get rid of this option ? > > > > [Helin] Initially, we want to do that for BIOS, if specific BIOS does not > implement it. That way it needs to be initialized once during > initialization for each PCI device. Sure, that might not be the best > option, but it is the easiest way. For Linux end users, the best option > could be using =E2=80=98setpci=E2=80=99 command. It can enable =E2=80=98e= xtended_tag=E2=80=99 per PCI > device. > I am not sure I can see how easy it is since you are forcing this in a build option. Anyway, all this knowledge should be in the documentation and not in an obscure build option that looks to be useless in the end. The more I look at this, the more I think we did not have good enough argument for this change in eal / igb_uio yet. We have something that gives "better performance" on "some server" with "some bios". > > As far as the per-device runtime configuration is concerned, I want to > make sure this pci configuration will not break other "igb_uio" pci devic= es. > > If Intel can tell for sure this won't break other devices, then fine, we > can go and enable this for all "igb_uio" pci devices. > > > > [Helin] It is in PCIe specification, and enable it can provide better > performance generally. But I cannot confirm that it would not break any > other devices, as I don=E2=80=99t validate all devices. If you really con= cern it, > =E2=80=98setpci=E2=80=99 can be the best option for you. We can add a scr= ipt for that later. > Why not a script, but documentation is important too: I would say that we need an explicit list of platforms and nics which support this. > > - By the way, there is also the CONFIG_MAX_READ_REQUEST_SIZE option that > seems to be disabled (or at least its value 0 seems to tell so). > > What is its purpose ? > > > > [Helin] Yes, it was added for performance tuning long long ago. But now i= t > seems contribute nothing or too few for the performance number, so I just > skip it. The default value does nothing on PCIe registers, just keep it a= s > is. > Not so long ago to dpdk.org (somewhere around 1.7.0 ...). If this code had no use for "so long", why did it end up on dpdk.org ? Why should we keep it ? Thanks. --=20 David Marchand