Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 Mar 2005 09:38:08 -0800
From:      John-Mark Gurney <gurney_j@resnet.uoregon.edu>
To:        Andriy Tkachuk <andrit@ukr.net>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: contributing to fbsd
Message-ID:  <20050325173808.GS37984@funkthat.com>
In-Reply-To: <006401c53128$e6c6d390$090210ac@BORJA>
References:  <006401c53128$e6c6d390$090210ac@BORJA>

next in thread | previous in thread | raw e-mail | index | archive | help
Andriy Tkachuk wrote this message on Fri, Mar 25, 2005 at 16:23 +0530:
> Last time i was very interested in resource allocation stuff.
> Bonwick's VMEM O(1) universal allocator appeared to be
> very interesting:
> http://www.usenix.org/event/usenix01/bonwick.html
> as good as his cpu-wise magazines addition to
> slab allocator which scales allocation on adding cpus.
> Solaris use this approach.
> 
> My question is: does folks interested in implementation
> of this stuff in fbsd kernel?

Yep, I am... and I have an implementation of vmem, but I haven't had
much time to work on kmem_cache part of the problem....

> As I see now there is for example O(n) algorithm for
> process IDs allocation... In linux it is addressed
> using bit-mapping (as far as i understand).
> In Oct 2003 there was topic in this list:
> "Some mmap observations compared to Linux 2.6/OpenBSD"
> in which allocation in mmap was discussed.
> As it was appeared that fbsd use O(n) algorithm here compared
> to Linux and OpenBSD. I don't know the presend state of this.
> 
> Anyway as for me it looks very attractive to have
> universal O(1) facility for allocation of any kernel resources
> as well as on smp-configurations than using differend
> adhoc's in different parts of kernel.
> I seems to me, that Linux doesn't also use some
> universal allocation approach but O(1) adhocs instead.
> I may mistaken in this.
> 
> What do you hackers thinks about this?

I'm definately interested in it.. Though there is only so much time
to do work, and other more immidately interesting problems keep popping
up for me (locking gem, allowing ethernet packets to be unaligned, arm
board for a private project, kqueue, etc.)..

If you're interested, I can send you a copy of the code... It's a bare
implementation with some basic regression tests performed....  It doesn't
layer ontop of kmem_cache though...

-- 
  John-Mark Gurney				Voice: +1 415 225 5579

     "All that I will do, has been done, All that I have, has not."



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050325173808.GS37984>