Ok, I digged a little further:
>From what I can see in the kernel, the most likely place that
csum_partial_copy_generic() is called, is from line 844 in net/ipv4/tcp.c.
It's called via the csum_and_copy_from_user() call.
It's called whenever we're sending a small message over a TCP connection,
when the kernel has not yet filled an entire send buffer. And it is only
called when the last byte position in the buffer being built wasn't odd.
Now I have no call traces to back this up, but considering that I'm sending
1k-2k packets over a TCP connection (which will trigger the code that fills
buffers with small packets) I guess it's not entirely unlikely that this is
the case, although this is speculation.
My question now is (which of course is based in my lack of understanding of
how the kernel and TCP layer works): Why do we csum every little buffer
put into the large buffer ? It this a TCP thing ?
Also I would like to know if I'm correct in my assumption that if the socket
send buffer is 65535 bytes (which seems to be the default), will the TCP layer
then merge all small send()s into a 65535 byte buffer and send that one to
the IP layer ?
Thanks,
--
................................................................
: [EMAIL PROTECTED] : And I see the elder races, :
:.........................: putrid forms of man :
: Jakob �stergaard : See him rise and claim the earth, :
: OZ9ABN : his downfall is at hand. :
:.........................:............{Konkhra}...............:
-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to [EMAIL PROTECTED]