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]
