Scott, The queue 0 issue and the status of the DCA registers points to the use of an older driver. The issue was we were initializing the cpu to 0 for the q_vectors when we were allocating them. As a result the queues that ended up on CPU zero were not setting the tag correctly. That is why we moved the intial value to -1 for the q_vector->cpu value in commit 245f292d71d3fdd7536c2e4986769d5b9b48fb7f. Based on the behavior it sounds like the driver you have is probably something from before 2013, if you have a driver with a version number 3.11.X or greater you shouldn't have the issue.
Thanks, Alex On 02/19/2014 12:49 PM, Scott Silverman wrote: > Alex, > > Thanks for the tip about using ethregs to inspect the DCA registers. > However, this has led to another question. Specifically, it seems that > while DCA is enabled for most of the queues, those that land on core 0 > seem to stay disabled for some reason. > > Here's a snip from one of my machines with 24 cores (and 24 queues). > 001-023 all show enabled, but 000 does not: > [root@sec54 ethregs-1.16.0]# ./ethregs -d 8086:10fb | grep DCA | more > DCA_RXCTRL[000] 00001200 > DCA_RXCTRL[001] 1a0002a0 > DCA_RXCTRL[002] 190002a0 > DCA_RXCTRL[003] 170002a0 > DCA_RXCTRL[004] 160002a0 > DCA_RXCTRL[005] 150002a0 > DCA_RXCTRL[006] 1b0002a0 > DCA_RXCTRL[007] 1a0002a0 > DCA_RXCTRL[008] 190002a0 > DCA_RXCTRL[009] 170002a0 > DCA_RXCTRL[010] 160002a0 > DCA_RXCTRL[011] 150002a0 > DCA_RXCTRL[012] 1b0002a0 > DCA_RXCTRL[013] 1a0002a0 > DCA_RXCTRL[014] 190002a0 > DCA_RXCTRL[015] 170002a0 > DCA_RXCTRL[016] 160002a0 > DCA_RXCTRL[017] 150002a0 > DCA_RXCTRL[018] 1b0002a0 > DCA_RXCTRL[019] 1a0002a0 > DCA_RXCTRL[020] 190002a0 > DCA_RXCTRL[021] 170002a0 > DCA_RXCTRL[022] 160002a0 > DCA_RXCTRL[023] 150002a0 > DCA_RXCTRL[024] 00001200 > DCA_RXCTRL[025] 00001200 > > The TXCTRL shows the same pattern. > > I'm not sure what to make of this, and I'm also not sure how to get > DCA running on queue 0. > > > > > Thanks, > > Scott Silverman | IT | Simplex Investments | 312-360-2444 > 230 S. LaSalle St., Suite 4-100, Chicago, IL 60604 > > > On Thu, Feb 13, 2014 at 4:18 PM, Alexander Duyck > <alexander.h.du...@intel.com <mailto:alexander.h.du...@intel.com>> wrote: > > Odds are the problem is the order the modules are loading in. In > order > to print the message ioatdma and dca needs to be loaded before > ixgbe, if > the ioatdma driver is loaded after then you won't see the message > as it > is only printed at probe time and not when a DCA provider is > registered. > > If you are loading dca, ixgbe, and then ioatdma in that order the > ixgbe > won't show as having DCA enabled because the ixgbe_notify_dca call > doesn't appear to print any message. As a result you would have DCA > enabled, but it won't have displayed any message stating as such. > > The tell-tale sign that you have DCA enabled is to use the ethregs > tool > to dump the registers for the device. The DCA_RXCTRL and DCA_TXCTRL > registers will have a APIC tag ID in the upper 8 bits. Usually the > value is something like 1f or 1e. If the value is 00 then it is > disabled. Below is a snippet of a register dump on a system I > have here > that supports DCA. > > DCA Enabled: > DCA_TXCTRL[0] 1f002220 > DCA_TXCTRL[1] 1f002220 > > DCA Disabled: > DCA_TXCTRL[0] 00002220 > DCA_TXCTRL[1] 00002220 > > Thanks, > > Alex > > On 02/13/2014 01:38 PM, Scott Silverman wrote: > > It seems I was making a mistake, just not the one I thought I was. > > When I looked at 3.18.7, it was after a system boot. When I > looked at > > 3.19.1 it was only after removing and reloading the module. > > > > I've attached dmesg output from a system boot just now, showing > dca / > > igb / ixgbe / ioatdma modules all loading. It seems that for > whatever > > reason, during the system boot DCA is not enabled for ixgbe (but > it is > > for igb). If I remove and reload ixgbe, it then enables DCA. > (seen at > > the end of the attached dmesg). > > > > Is this the expected behavior? Am I doing something wrong? Do I need > > to ensure that ioatdma loads before ixgbe? (if so, why doesn't igb > > seem to care?) > > > > > > > > > > Thanks, > > > > Scott Silverman | IT | Simplex Investments | 312-360-2444 > > 230 S. LaSalle St., Suite 4-100, Chicago, IL 60604 > > > > > > On Thu, Feb 13, 2014 at 3:18 PM, Scott Silverman > > <ssilver...@simplexinvestments.com > <mailto:ssilver...@simplexinvestments.com> > > <mailto:ssilver...@simplexinvestments.com > <mailto:ssilver...@simplexinvestments.com>>> wrote: > > > > Alex/John, > > > > Thanks for the clarification with regards to DDIO/DCA. > > > > As far as my results with the 3.18.7 driver, I can't duplicate > > them now, so I'll chalk it up to a mistake on my side. Sorry for > > the trouble. > > > > > > > > > > Thanks, > > > > Scott Silverman | IT | Simplex Investments | 312-360-2444 > <tel:312-360-2444> > > <tel:312-360-2444 <tel:312-360-2444>> > > 230 S. LaSalle St., Suite 4-100, Chicago, IL 60604 > > > > > > On Thu, Feb 13, 2014 at 3:03 PM, Duyck, Alexander H > > <alexander.h.du...@intel.com > <mailto:alexander.h.du...@intel.com> > <mailto:alexander.h.du...@intel.com > <mailto:alexander.h.du...@intel.com>>> > > wrote: > > > > Scott, > > > > > > > > DDIO does not completely replace DCA. DCA provides > > functionality for remote socket, while DDIO only functions > > with the local socket for the device. > > > > > > > > The ixgbe driver prints that DCA message if DCA was detected > > when the driver was loaded. Did you try running lsmod > to see > > if ioatdma and dca modules were loaded when you loaded the > > 3.18.7 driver? > > > > > > > > Thanks, > > > > > > > > Alex > > > > > > > > *From:*Scott Silverman > > [mailto:ssilver...@simplexinvestments.com > <mailto:ssilver...@simplexinvestments.com> > > <mailto:ssilver...@simplexinvestments.com > <mailto:ssilver...@simplexinvestments.com>>] > > *Sent:* Thursday, February 13, 2014 12:36 PM > > *To:* Duyck, Alexander H > > *Cc:* Ronciak, John; e1000-devel@lists.sourceforge.net > <mailto:e1000-devel@lists.sourceforge.net> > > <mailto:e1000-devel@lists.sourceforge.net > <mailto:e1000-devel@lists.sourceforge.net>> > > *Subject:* Re: [E1000-devel] DCA on Sandy Bridge? > > > > > > > > John, > > > > > > > > I think you misunderstood. Sandy Bridge ioatdma/dca > should be > > supported in kernel 3.4.41. However, I only see that "DCA" > > flag in ixgbe/dmesg when I am using ixgbe 3.19.1, not when I > > am using 3.18.7. I am asking why that might be. Nothing else > > changed, aside from rmmod ixgbe (3.18.7) and modprobe ixgbe > > (3.19.1). > > > > > > > > Alex, > > > > > > > > There is nothing in dmesg to explain it. In fact, the igb > > driver always uses DCA (prints "DCA enabled"), so I know > that > > from a platform perspective it is working. > > > > > > > > To put it simply, I have two questions: > > > > > > > > 1. On Sandy bridge (and Ivy Bridge, etc), does DDIO replace > > DCA? If so, what implication does the presence of "DCA" in > > enabled features on a platform that is meant to have DDIO > > instead of DCA? > > > > 2. What change from 3.18.7 to 3.19.1 would cause the feature > > to become Enabled on a platform that otherwise supports DCA? > > > > > > > > > > > > > > > > > > Thanks, > > > > > > > > Scott Silverman | IT | Simplex Investments | 312-360-2444 > > <tel:312-360-2444 <tel:312-360-2444>> > > > > 230 S. LaSalle St., Suite 4-100, Chicago, IL 60604 > > > > > > > > On Thu, Feb 13, 2014 at 1:59 PM, Alexander Duyck > > <alexander.h.du...@intel.com > <mailto:alexander.h.du...@intel.com> > > <mailto:alexander.h.du...@intel.com > <mailto:alexander.h.du...@intel.com>>> wrote: > > > > Scott, > > > > You might try checking the dmesg log on the systems that > come > > up as not > > supporting DCA. There was a patch submitted a year or > so ago > > that would > > disable DCA on platforms that had a misconfigured APIC > ID tag map. > > > > It is possible that the platform might have had DCA disabled > > due to this > > in the case of the 3.18.7. You might want to go back and > > recheck the > > dmesg log to verify if DCA was disabled due to a > configuration > > error in > > the BIOS. > > > > Thanks, > > > > Alex > > > > > > On 02/13/2014 08:27 AM, Scott Silverman wrote: > > > John, > > > > > > Thanks for the prompt response, but I still have some > > questions/concerns. > > > > > > -My motherboard (SuperMicro X9DRW) specifically provides a > > firmware option > > > to enable "DCA" but you state that the chipset doesn't > > include it at all? > > > > > > -Why is it reported only sometimes? > > > > > > Proc, Kern, ixgbe - DCA? > > > Sandy, 3.4, 3.18.7 - No DCA > > > Sandy, 3.4, 3.19.1 - DCA > > > Sandy, 3.12, 3.19.1 - DCA > > > Ivy, 3.12, 3.18.7 - DCA > > > Ivy, 3.12, 3.19.1 - DCA > > > > > > > > > > > > > > > Thanks, > > > > > > Scott Silverman | IT | Simplex Investments | 312-360-2444 > > <tel:312-360-2444 <tel:312-360-2444>> > > > 230 S. LaSalle St., Suite 4-100, Chicago, IL 60604 > > > > > > > > > On Mon, Feb 10, 2014 at 4:26 PM, Ronciak, John > > <john.ronc...@intel.com <mailto:john.ronc...@intel.com> > <mailto:john.ronc...@intel.com <mailto:john.ronc...@intel.com>>>wrote: > > > > > >> The driver is just telling you what's possible not > that DCA > > is enabled. > > >> The newer chipsets do not included it as it's all DDIO. > > So even though > > >> the NIC's is capable of support DCA the chipset does not > > have it so it > > >> won't be used. That's all this is saying. It's not an > > issue at all. > > >> > > >> Cheers, > > >> John > > >> > > >> > > >>> -----Original Message----- > > >>> From: Scott Silverman > > [mailto:ssilver...@simplexinvestments.com > <mailto:ssilver...@simplexinvestments.com> > > <mailto:ssilver...@simplexinvestments.com > <mailto:ssilver...@simplexinvestments.com>>] > > >>> Sent: Monday, February 10, 2014 11:59 AM > > >>> To: e1000-devel@lists.sourceforge.net > <mailto:e1000-devel@lists.sourceforge.net> > > <mailto:e1000-devel@lists.sourceforge.net > <mailto:e1000-devel@lists.sourceforge.net>> > > >>> Subject: [E1000-devel] DCA on Sandy Bridge? > > >>> > > >>> My understanding is the DDIO completely replaces DCA on > > sandy bridge > > >>> and newer hardware (E5+ xeons). I expected this is why I > > don't see > > >>> "DCA" listed when I load ixgbe, as I would on my nehalem > > systems. > > >>> > > >>> I see the following when loading ixgbe 3.18.7 on an > > E5-2670 system > > >>> (kernel > > >>> 3.4.41): > > >>> > > >>> ixgbe 0000:04:00.1: (PCI Express:5.0GT/s:Width x8) > > 00:1b:21:5c:66:0d > > >>> ixgbe 0000:04:00.1: eth3: MAC: 2, PHY: 9, SFP+: 4, > PBA No: > > E68793-002 > > >>> ixgbe 0000:04:00.1: eth3: Enabled Features: RxQ: 32 TxQ: > > 32 FdirHash > > >>> RSC ixgbe 0000:04:00.1: eth3: Intel(R) 10 Gigabit > Network > > Connection > > >>> > > >>> If I take the same system, unload ixgbe, and load ixgbe > > 3.19.1, I see > > >>> this (emphasis mine): > > >>> > > >>> ixgbe 0000:04:00.1: PCI Express bandwidth of 32GT/s > > available ixgbe > > >>> 0000:04:00.1: (Speed:5.0GT/s, Width: x8, Encoding > > Loss:20%) ixgbe > > >>> 0000:04:00.1: eth3: MAC: 2, PHY: 9, SFP+: 4, PBA No: > > E68793-002 ixgbe > > >>> 0000:04:00.1: 00:1b:21:5c:66:0d ixgbe 0000:04:00.1: > eth3: > > Enabled > > >>> Features: RxQ: 32 TxQ: 32 FdirHash *DCA*RSC ixgbe > > 0000:04:00.1: eth3: > > >>> Intel(R) 10 Gigabit Network Connection > > >>> > > >>> Can anyone explain why I see "DCA" with 3.19.1 and not > > with 3.18.7. > > >>> Also, does it matter? > > >>> > > >>> Thanks, > > >>> > > >>> Scott Silverman | IT | Simplex Investments | > 312-360-2444 > > <tel:312-360-2444 <tel:312-360-2444>> > > >>> 230 S. LaSalle St., Suite 4-100, Chicago, IL 60604 > > >> > > > > > > > > > > > > > > > ------------------------------------------------------------------------------ Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk _______________________________________________ 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