Subject: Re: Multicast packet loss

From: Eric Dumazet <[email-masked]>
Date: Thu, 12 Mar 2009 17:34:54 +0100

Brian Bloniarz a écrit :
> Eric Dumazet wrote:
>> Here is an updated version of the patch.
> 
> This works great in all my tests so far.
> 
> Thanks,
> Brian Bloniarz

Cool

I am wondering if we should extend the mechanism and change
softirq_delay_exec() to wakeup a workqueue instead of
doing the loop from softirq handler, in case a given
level of stress / load is hit.

This could help machines with several cpus, and one NIC (without
multi RX queues) flooded by messages (not necessarly multicast trafic).
Imagine a media/chat server receiving XXX.000 frames / second

One cpu could be dedicated to pure softirq/network handling,
and other cpus could participate and handle the scheduler part if any.

Condition could be : 

- We run __do_softirq() from ksoftirqd and 
- We queued more than N 'struct softirq_delay' in softirq_delay_head
- We have more than one cpu online