Date: Thu, 11 Jul 2002 22:19:50 -0700 (PDT) From: Archie Cobbs <archie@dellroad.org> To: Bosko Milekic <bmilekic@unixdaemons.com> Cc: Julian Elischer <julian@elischer.org>, Luigi Rizzo <rizzo@icir.org>, freebsd-net@FreeBSD.ORG Subject: Re: mbuf external buffer reference counters Message-ID: <200207120519.g6C5JoH36140@arch20m.dellroad.org> In-Reply-To: <20020711222725.A5284@unixdaemons.com> "from Bosko Milekic at Jul 11, 2002 10:27:25 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
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. -Archie __________________________________________________________________________ Archie Cobbs * Packet Design * http://www.packetdesign.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200207120519.g6C5JoH36140>