Can Hard and Soft-IRQ for the same network packet run on different processor cores when network packets are processed in the Linux x86_64 3.16 kernel?
Hard-IRQ raises Soft-IRQ : http://she-devel.com/Chaiken_ELCE2016.pdf
Soft IRQs can start immediately after the hard IRQ that raises them, or later at ksoftirqd.
RSS raises Soft-IRQ on the same CPU-Core as Hard-IRQ : http://balodeamit.blogspot.ru/2013/10/receive-side-scaling-and-receive-packet.html
In the case of multiple queues (RSS), the hardware interrupt will go to match the processor processor, and this processor will also be responsible for softIRQ processing.
In the case of monophones without RPS, Soft-IRQ is processed on one CPU-Core as Hard-IRQ, but with RPS Soft-IRQ is processed on another CPU-Core than Hard-IRQ : http://balodeamit.blogspot.ru/2013/10 /receive-side-scaling-and-receive-packet.html
In the case of mono objects, a hardware interrupt is generated from a single queue and the same processor is also responsible for softIRQ processing. If RPS is included in the mono queue, incoming packets are hashed, loading distributed between multiple CPU processors.
RPS Soft-IRQ CPU-Core, Hard-IRQ, (IPI): https://en.wikipedia.org/wiki/Interrupt#Performance_issues
RPS ().
, :
Ethernet- (NIC) - (mbuf) NIC-DMA, NIC Hard-IRQ CPU Core-N
IRQ Soft-IRQ CPU Core-M RPS
CPU Core-M Soft-IRQ TCP/IP-
read(,buf,) - (mbuf) Core-K
?
Hard Soft-IRQ RPS?