Re: [RFC v3 3/6] can: make struct proto const
From: Kurt Van Dijck <hidden>
Date: 2011-03-15 22:12:53
On Tue, Mar 15, 2011 at 10:28:13PM +0100, Oliver Hartkopp wrote:
On 14.03.2011 18:17, Kurt Van Dijck wrote:quoted
On Mon, Mar 14, 2011 at 05:42:23PM +0100, Eric Dumazet wrote:quoted
Le lundi 14 mars 2011 à 16:02 +0100, Kurt Van Dijck a écrit :quoted
I see your point. The reason I modified this was, as described, checkpatch.pl was complaining. Anyway, this sequence was protected by a spinlock 'proto_tab_lock'. I don't think it was a race. Did I miss something?As soon as proto_tab[proto] = cp; is done, another thread on another cpu can read the pointer and follow it. Hmm, I missed can_create() also uses the spinlock protection, so you're probably right. It seems a bit overkill :( phonet uses RCU for example.Hello Eric, the RCU code in phonet is worth to consider. But loading and removing of protocols is far away from being a hot path ... what would be the advantages to move to RCU here?
Does RCU avoid a spinlock?
quoted
I'll keep that in mind. Switching CAN protos to RCU is far beyond to goal of this patch :-)Anyway making the struct proto a const (and set the default defines in the CAN protocols) is a nice cleanup. Let's wait for the feedback about the RCU from Eric ... then this patch could be put into mainline independently from the j1939 protocol.
ack. Kurt _______________________________________________ Socketcan-core mailing list Socketcan-core@lists.berlios.de https://lists.berlios.de/mailman/listinfo/socketcan-core