Re: Multicast packet loss
From: Eric Dumazet <hidden>
Date: 2009-03-17 21:21:33
David Stevens a écrit :
I did some testing with this and see at least a 20% improvement
without drop.
I agree with Peter's recommended changes (esp. sentinel vs null),
and also the trivial brace indentation in softirq_delay_exec(),
but otherwise looks good to me. Nice work.
+-DLS
Still I dont like very much all softirq.c changes. I feel very uncomfortable to justify one extra call in do_softirq(), and not very clean interface (stuff about locking, barriers...) Easy way could be to add a SOFTIRQ but its not very wise. I was wondering if we could use the infrastructure added in commit 54514a70adefe356afe854e2d3912d46668068e6 (softirq: Add support for triggering softirq work on softirqs.) But I dont understand how it can works... (softirq_work_list is feeded, but never processed) Alternatively, we could use a framework dedicated to network use, with well defined semantic : Calling softirq_delay_exec() from net_rx_action(), from this function, we know if time_squeeze was incremented, or all netdev_budget consumed, and in this stress case try to give the wakeups job to another cpu.