[dpdk-dev] Recent changes related to interrupt thread

Rahul Lakkireddy rahul.lakkireddy at chelsio.com
Mon Nov 16 13:32:02 CET 2015


Hi,

I notice that the following changeset:

Fixes: fd6949c55c9a ("eal: fix io permission for virtio interrupt
handler")

has moved the initialization of the interrupt thread to after the master
lcore has been initialized.  However, this causes the interrupt thread
to _inherit_ the affinity of the master lcore. Hence, this seems to
make all interrupts to be handled by _only_ the master lcore. Because
of this change, it seems that now alarm interrupts would also be handled
by master lcore only, IIUC.

We are seeing a performance regression for cxgbe PMD after this commit
since, cxgbe PMD relies on alarm to periodically transmit pending
coalesced packets.

Also, this perf degradation is only seen if there's a queue allocated
on the master lcore, such as in l3fwd app.  If the master lcore has
been skipped, then no degradation in perf is seen since only the alarm
will run on the master lcore.

So, is the change done to make all interrupts, including alarm
interrupts, be handled by _only_ the master lcore intended?

BTW, I have tried setting the affinity to all cpus instead in
eal_intr_init() and this seems to restore the perf back. Perhaps it's
better to move the master lcore initialization to after the interrupt
thread has been initialized as well? Thoughts?

Thanks,
Rahul


More information about the dev mailing list