On Tue, Mar 15, 2011 at 10:28:13PM +0100, Oliver Hartkopp wrote: > On 14.03.2011 18:17, Kurt Van Dijck wrote: > > On Mon, Mar 14, 2011 at 05:42:23PM +0100, Eric Dumazet wrote: > >> Le lundi 14 mars 2011 à 16:02 +0100, Kurt Van Dijck a écrit : > >> > >>> 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?
> > > 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 [email protected] https://lists.berlios.de/mailman/listinfo/socketcan-core
