Re: voluntary-preempt-2.6.8.1-P1 seems to lose UDP messages.

From: P.O. Gaillard
Date: Thu Aug 19 2004 - 02:27:41 EST


P.O. Gaillard wrote:

> Hello,
>
> I have a real-time application that transmits 20 MBytes/s over
> UDP/Gigabit Ethernet between 2 PCs. The NICs are from Intel and use the
> e1000 driver (MTU=1500). On the receive side, the computer has to
> process the data (real-time tasks doing signal processing work and using
> up 50% of the CPU time).
>
> This app works OK with 2.6.7 and 2.6.8.1 : the app does not complain
> about lost messages.

Thanks to the support of Pádraig Brady, I have found out that the voluntary-preempt patch is "innocent".
In fact, it seems that the patch changes the scheduling of the application and reveals that the UDP reception buffer is too small for this application.

So I changed /proc/sys/net/core/rmem_default to 200KBytes as instructed and the problem disappeared.

It seems a bit counter-intuitive since the application has real-time threads that are supposed to receive and timestamp all incoming messages as soon as they arrive. I would therefore have expected the voluntary-preempt patch to improve the reactivity of these tasks.

Anyway, it seems safe to say that the losses of UDP messages were not caused by a bug in the voluntary-preempt patch. This is good news since it means that I can use this patch.

Note: after running the program for the whole night the problem seemed to come back after 2 hours or so. I will try with eth0/threaded=0 as Lee Revell suggested.

thanks a lot for your help,

P.O. Gaillard

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/