On Mon, Jan 16, 2006 at 03:47:14PM +0300, Gleb Smirnoff wrote: > On Mon, Jan 16, 2006 at 12:39:45PM +0000, Darren Reed wrote: > D> I'll mention this again...this is bad programming for the kernel. > D> > D> While it works, it is incorrect because it doesn't use the locking > D> primitives that have been written for the radix tree. > D> > D> This is hack work - there is nothing clever or good about it. > D> > D> If there is a concern about locking around the radix tree impacting > D> performance then the correct thing to do is fix that, not to throw > D> away what exists today and use your own. In that way routing would > D> also benefit from the change, not just ipfw. > > There is no law to use locking in some subsystem, if the caller can > provide the safe access himself.
It's called "good programming practice." > Radix doesn't have any locking in it. Radix is known to be not modified > by lookups. This means, that we can do lookups lockless, if we have a > guarantee that table won't be modified. Look in radix.h, you'll find RADIX_NODE_HEAD_LOCK and friends. These are part of the interface that is the radix implementation in FreeBSD. Interaction with the radix tree should therefore use that. Darren _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "[EMAIL PROTECTED]"
