Indeed, DCA is active and the tag changes as your described.
./ethregs | egrep 'DCA_RXCTRL\[000\]'
DCA_RXCTRL[000] 1f0002a0
DCA_RXCTRL[000] 1f0002a0
./ethregs | egrep 'DCA_TXCTRL\[000\]'
DCA_TXCTRL[000] 1f002220
DCA_TXCTRL[000] 1f002220
set_irq_affinity 10 p1p1
IFACE CORE MASK -> FILE
=======================
p1p1 10 400 -> /proc/irq/79/smp_affinity
./ethregs | egrep 'DCA_TXCTRL\[000\]'
DCA_TXCTRL[000] 1f002220
DCA_TXCTRL[000] 1e002220
./ethregs | egrep 'DCA_RXCTRL\[000\]'
DCA_RXCTRL[000] 1f0002a0
DCA_RXCTRL[000] 1e0002a0
set_irq_affinity 1 p1p1
IFACE CORE MASK -> FILE
=======================
p1p1 1 2 -> /proc/irq/79/smp_affinity
./ethregs | egrep 'DCA_RXCTRL\[000\]'
DCA_RXCTRL[000] 1f0002a0
DCA_RXCTRL[000] 1f0002a0
On Tue, Nov 1, 2016 at 10:41 PM, Alexander Duyck <alexander.du...@gmail.com>
wrote:
> DDIO and DCA can run at the same time if I recall. The only thing you
> have to watch out for is if the DCA is misconfigured in the BIOS.
>
> Based on the fact that you have 0x1F in the tag field I am guessing
> you probably don't have too many sockets on the system. If you have
> multiple sockets it is possible to see some additional benefit from
> DCA.
>
> One thing you might want to try is changing the interrupt affinity for
> the queue and then pass a bit of traffic. You should see the tag
> value change when you move from one socket to another.
>
> - Alex
>
> On Tue, Nov 1, 2016 at 1:07 PM, Michał Purzyński
> <michalpurzyns...@gmail.com> wrote:
> > Did I ruin DDIO with DCA=2 parameter to X520?
> >
> > Looking at the driver code, I just enabled DCA instead.
> >
> >> On 1 Nov 2016, at 20:56, Alexander Duyck <alexander.du...@gmail.com>
> wrote:
> >>
> >> On Tue, Nov 1, 2016 at 12:04 PM, Michał Purzyński
> >> <michalpurzyns...@gmail.com> wrote:
> >>> Looking through some old posts on e1000 I found that one can detect if
> DCA
> >>> is enabled with ethregs. Are these registers per queue? Here, the X520
> is
> >>> configured with a single queue and the highest bits are set only for
> >>> DCA_RXCTRL[000].
> >>
> >> Yes, the registers are per queue. If I recall each queue can support
> >> a different DCA tag.
> >>
> >>> On X520
> >>>
> >>> DCA_RXCTRL[000] 1f0002a0
> >>> DCA_RXCTRL[001] 00001200
> >>>
> >>> etc
> >>>
> >>> DCA_TXCTRL[000] 1f002220
> >>> DCA_TXCTRL[001] 00002200
> >>>
> >>> etc - 0's all the way down
> >>>
> >>> (second port, same card)
> >>>
> >>> DCA_RXCTRL[000] 1f0002a0
> >>> DCA_RXCTRL[001] 00001200
> >>>
> >>> Also zeros all the way on highest bits.
> >>>
> >>> There are no registers with DCA in name for X710 - what should I look
> for
> >>> instead?
> >>
> >> I don't believe the X710 supports DCA. It relies on DDIO which has
> >> been available for the last several CPU generations.
> >>
> >>> BTW, how is DCA different from DDIO?
> >>
> >> DCA is a precursor to DDIO. Basically the idea is to have the device
> >> include a special tag in DMA write transactions that indicates which
> >> socket the data is supposed to be written to. With DDIO it occurs
> >> automatically when the device is writing to the local socket.
> >>
> >> - Alex
>
------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
_______________________________________________
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