* Archie Cobbs <[EMAIL PROTECTED]> [020711 22:30] wrote:
> Bosko Milekic writes:
> > > mbufs that referred to the same object were linked together.
> > > I forget the details exactly.  maybe someone else can remember..
> > > it did it without ref counts somehow..
> > 
> >  Yes, this is in NetBSD still and it is very elegant.  I remember
> >  looking at this a long time ago but to be honest, the reason I didn't
> >  implement it then first escaped me.  However, thanks to David Malone's
> >  awesome commit messages, I found it:
> > 
> >  rev 1.53 of sys/sys/mbuf.h, extract:
> > [...]
> >  "NetBSD's system of linked lists of mbufs was cosidered, but Alfred
> >  felt it would have locking issues when the kernel was made more
> >  SMP friendly."
> > [...]
> > 
> >  I think it's almost clear now that there are, in fact, no SMP issues
> >  with it (we don't do per-cluster locking, or anything ridiculous like
> >  that), so unless Alfred has the reason again, I'll consider that method
> >  again instead.  Thanks for the constructive feedback.
> 
> That's a cool idea.. haven't looked at NetBSD but am imagining the
> mbufs would be linked in a 'ring'. This works because you never
> care how many references are, just whether there's one or more than
> one, and this is easy to tell by examining the ring pointer.
> I.e., you never have to iterate through the entire ring.

That's true, but could someone explain how one can safely and
effeciently manipulate such a structure in an SMP environment?

I'm not saying it's impossible, I'm just saying it didn't seem
intuative to me back then, as well as now.

-- 
-Alfred Perlstein [[EMAIL PROTECTED]]

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message

Reply via email to