Hi...
Hello,
I have been looking quite deeply into the TCP-code, but there is one
thing I simply dont manage to understand. Can the code process more
than one skb on a socket at the time, or is it strictly one and one?
Maybe I didn't do the exploration as deep as you are, but since I read
that all those packets are handled in soft irq context and there is one
soft irq handler (ksoftirqd) per CPU, it is possible to handle more than
one packet *at the very same time* in multi core/multi processor machine
E.g say that you are going to send something (an skb), and you recieve
an ack at the same time. Will the kernel finish whatever of the two
comes first (say, finish sending) or can it, in the middle of treating
the new packet to send, process the ack?
I think somewhere it can preempted, but that's really depends on where
and when it gets interrupted. AFAIK all those operations comprised of
interruptible and non interruptible part e.g packet ack-ing and copying
from NIC buffer into RAM are non- interruptible, the rest are
interruptible. So again, it depends where and when the competing event
kicks in.
I am welcome for any corrections..
regards,
Mulyadi
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ