Forgot to mention that the receiver side is running OpenSolaris 2008.11, and
the NIC uses the e1000g driver.

Thanks,
Vish

On Tue, Apr 20, 2010 at 10:24 AM, Vishal Ahuja <[email protected]> wrote:

> 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