Re: Multicast packet loss

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Eric Dumazet
Date: Sunday, March 8, 2009 - 11:36 pm

David Miller a écrit :

First thanks for your review David.

I chose cmpxchg() because I needed some form of exclusion here.
I first added a spinlock inside "struct softirq_del" then I realize
I could use cmpxchg() instead and keep the structure small. As the
synchronization is only needed at queueing time, we could pass
the address of a spinlock XXX to sofirq_del() call.

Also, when an event was queued for later invocation, I also needed to keep
a reference on "struct socket" to make sure it doesnt disappear before
the invocation. Not all sockets are RCU guarded (we added RCU only for 
some protocols (TCP, UDP ...). So I found keeping a read_lock
on callback was the easyest thing to do. I now realize we might
overflow preempt_count, so special care is needed.

About your first point, maybe we should make sofirq_del() (poor name I confess)
only have one argument (pointer to struct softirq_del), and initialize
the function pointer at socket init time. That would insure "struct softirq_del"
is associated to one callback only. cmpxchg() test would have to be
done on "next" field then (or use the spinlock XXX)

I am not sure output path needs such tricks, since threads are rarely
blocking on output : We dont trigger 400.000 wakeups per second ?

Another point : I did a tbench test and got 2517 MB/s with the patch,
instead of 2538 MB/s (using Linus 2.6 git tree), thats ~ 0.8 % regression
for this workload.

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: Multicast packet loss, Wes Chow, (Mon Feb 2, 12:51 pm)
Re: Multicast packet loss, Eric Dumazet, (Mon Feb 2, 1:29 pm)
Re: Multicast packet loss, Wes Chow, (Mon Feb 2, 2:09 pm)
Re: Multicast packet loss, Eric Dumazet, (Mon Feb 2, 2:31 pm)
Re: Multicast packet loss, Kenny Chang, (Tue Feb 3, 10:34 am)
Re: Multicast packet loss, Neil Horman, (Tue Feb 3, 6:21 pm)
Re: Multicast packet loss, Kenny Chang, (Thu Feb 26, 10:15 am)
Re: Multicast packet loss, Eric Dumazet, (Sat Feb 28, 1:51 am)
Re: Multicast packet loss, Eric Dumazet, (Sun Mar 1, 10:03 am)
Re: Multicast packet loss, David Miller, (Wed Mar 4, 1:16 am)
Re: Multicast packet loss, Eric Dumazet, (Wed Mar 4, 1:36 am)
Re: Multicast packet loss, Eric Dumazet, (Sat Mar 7, 12:46 am)
Re: Multicast packet loss, Eric Dumazet, (Sun Mar 8, 9:46 am)
Re: Multicast packet loss, David Miller, (Sun Mar 8, 7:49 pm)
Re: Multicast packet loss, Eric Dumazet, (Sun Mar 8, 11:36 pm)
Re: Multicast packet loss, Brian Bloniarz, (Mon Mar 9, 3:56 pm)
Re: Multicast packet loss, Eric Dumazet, (Mon Mar 9, 10:28 pm)
Re: Multicast packet loss, Brian Bloniarz, (Tue Mar 10, 4:22 pm)
Re: Multicast packet loss, Eric Dumazet, (Tue Mar 10, 8:00 pm)
Re: Multicast packet loss, Brian Bloniarz, (Thu Mar 12, 8:47 am)
Re: Multicast packet loss, Eric Dumazet, (Thu Mar 12, 9:34 am)
Re: Multicast packet loss, David Miller, (Fri Mar 13, 2:51 pm)
Re: Multicast packet loss, Eric Dumazet, (Fri Mar 13, 3:30 pm)
Re: Multicast packet loss, David Miller, (Fri Mar 13, 3:38 pm)
Re: Multicast packet loss, Eric Dumazet, (Fri Mar 13, 3:45 pm)
[PATCH] net: reorder fields of struct socket, Eric Dumazet, (Sat Mar 14, 2:03 am)
Re: [PATCH] net: reorder fields of struct socket, David Miller, (Sun Mar 15, 7:59 pm)
Re: Multicast packet loss, Eric Dumazet, (Mon Mar 16, 3:22 pm)
Re: Multicast packet loss, Peter Zijlstra, (Tue Mar 17, 3:11 am)
Re: Multicast packet loss, Eric Dumazet, (Tue Mar 17, 4:08 am)
Re: Multicast packet loss, Peter Zijlstra, (Tue Mar 17, 4:57 am)
Re: Multicast packet loss, Brian Bloniarz, (Tue Mar 17, 8:00 am)
Re: Multicast packet loss, Eric Dumazet, (Tue Mar 17, 8:16 am)
Re: Multicast packet loss, David Stevens, (Tue Mar 17, 12:39 pm)
Re: Multicast packet loss, Eric Dumazet, (Tue Mar 17, 2:19 pm)
Re: Multicast packet loss, Brian Bloniarz, (Fri Apr 3, 12:28 pm)
Re: Multicast packet loss, Eric Dumazet, (Sun Apr 5, 6:49 am)
Re: Multicast packet loss, Brian Bloniarz, (Mon Apr 6, 2:53 pm)
Re: Multicast packet loss, Brian Bloniarz, (Mon Apr 6, 3:12 pm)
Re: Multicast packet loss, Brian Bloniarz, (Tue Apr 7, 1:08 pm)
Re: Multicast packet loss, Eric Dumazet, (Wed Apr 8, 1:12 am)