Thread (24 messages) 24 messages, 7 authors, 2005-04-01

Re: [RFC] netif_rx: receive path optimization

From: jamal <hidden>
Date: 2005-03-31 23:36:47

On Thu, 2005-03-31 at 17:42, Rick Jones wrote:
I "never" see that because I always bind a NIC to a specific CPU :)  Just about 
every networking-intensive benchmark report I've seen has done the same.
Do you have to be so clever? ;->
quoted
Note Linux is quiet resilient to reordering compared to other OSes (as
you may know) but avoiding this is a better approach - hence my
suggestion to use NAPI when you want to do serious TCP.
Would the same apply to NIC->CPU interrupt assignments? That is, bind the NIC to 
a single CPU.
No reordering there.

quoted
Dont think we can do that unfortunately: We are screwed by the APIC
architecture on x86.
The IPS and TOPS stuff was/is post-NIC-interrupt. Low-level driver processing 
still happened/s on a specific CPU, it is the higher-level processing which is 
done on another CPU.  The idea - with TOPS at least, is to try to access the ULP 
(TCP, UDP etc) structures on the same CPU as last accessed by the app to 
minimize that cache to cache migration.
But if interupt happens on "wrong" cpu - and you decide higher level
processing is to be done on the "right" cpu (i assume queueing on some
per CPU queue); then isnt that expensive? Perhaps IPIs involved even?

cheers,
jamal
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help