NIC packet loss
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 nice command. I set its priority to the maximum possible, but even then I notice losses only at the socket buffer. Is there a way to have a user level process not be preempted by the NIC interrupts? Thank you, Vish |
All times are GMT -5. The time now is 11:06 PM. |