Jamal,
Thanks for writing me back.
> The IP network stack in linux is totaly reentrant. You could have a
> packet on _each_ processor in SMP concurently executing the same code. If
> you add anything, you need to take this into account.
We did add code to the TCP layer, but I don't exactly see anything in the
original code where locking is used. I assume the locks are in the IP
layer and lower? The weirdest thing is that we noticed in
update_send_head, tp->packets_out sometimes increases by more than one
even though the code ++ it only once. I guess I am not sure how we could
have screwed it up if the modifications are on the TCP layer.
> In non-NAPI based NICs such as yours, you could have reordering within
> the system (this is described in the NAPI paper). Either get it NAPIfied
> or get yourself a NAPI capable NIC such as tg3 based, e1000, Dlink gige
> etc.
Out of curiosity, what is the maximum send rate (pps) under Linux
2.4.18-3? I read in the paper that sending across two Intel Gbe with one
CPU gets up to 36o Kpps.
Thanks,
Cheng
|