Hi All,

I have two machines connected back to back over a 1 Gbps link, and am doing
some file transfer experiments over UDP. The receiver is running a few cpu
bound processes. As expected, the receiver incurs losses because the CPU is
busy. My understanding was that these losses could occur at the following
three places:

1. UDP application's socket buffer.
2. NIC's buffer.
3. During protocol processing in the kernel.

But in my experiments I see only losses due to the socket buffer overflow.
Could anyone please tell me the conditions under which the NIC's buffer
overflows, and when does the kernel drop packets.

Since I saw losses only at the socket buffer, I thought that it could be
happening because the NIC interrupts must be issued at a higher priority, so
they would cause any user process to yield the CPU. To see if this was
correct, I thought of raising the priority of the UDP receiver application
using the priocntl command. I changed its class to Real time, and set its
priority to 59 (the maximum), but even then I was noticing losses only at
the socket buffer. Can someone please explain if a real time process with
high priority competes with the NIC interrupts, or will the NIC interrupts
still cause it to yield the CPU?

Thank you,
Vish
_______________________________________________
networking-discuss mailing list
[email protected]

Reply via email to