Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 01 Oct 2010 00:06:54 +0200
From:      Andre Oppermann <andre@freebsd.org>
To:        Roman Divacky <rdivacky@freebsd.org>
Cc:        freebsd-current@freebsd.org
Subject:   Re: Examining the VM splay tree effectiveness
Message-ID:  <4CA509FE.30303@freebsd.org>
In-Reply-To: <4CA504AD.8000102@freebsd.org>
References:  <4CA4BCD2.4070303@freebsd.org> <20100930172439.GA34369@freebsd.org> <4CA4CCF8.1050300@freebsd.org> <20100930174900.GA37733@freebsd.org> <20100930180417.GA39381@freebsd.org> <4CA504AD.8000102@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 30.09.2010 23:44, Andre Oppermann wrote:
> On 30.09.2010 20:04, Roman Divacky wrote:
>> On Thu, Sep 30, 2010 at 07:49:00PM +0200, Roman Divacky wrote:
>>> On Thu, Sep 30, 2010 at 07:46:32PM +0200, Andre Oppermann wrote:
>>>> On 30.09.2010 19:24, Roman Divacky wrote:
>>>>> are you aware of Summer of Code 2008 project by Mayur Shardul?
>>>>
>>>> I remember that there was this project but I never saw any numbers
>>>> or other outcome of it. Haven't checked p4 to look at the code
>>>> though.
>>>
>>> there's a little something:
>>>
>>> http://wiki.freebsd.org/MayurShardul/VM_Algorithm_Improvement
>>
>> and the actual patch + userspace implementation + benchmarking suite
>> is here:
>>
>> http://code.google.com/p/google-summer-of-code-2008-freebsd/downloads/detail?name=Mayur_Shardul.tar.gz&can=2&q=
>>
>>
>> it looks like a solid work with solid results to me
>
> I just took a look (not in-depth though) at the patch and can't follow
> your conclusion. It is not ready to go into svn in its current state.
>
> Even though it is called a radix trie it doesn't look like one. On first
> impression it looks much more like an AA tree. A radix trie, which we
> already have in our network routing table code, is a variable length
> (mask) tree that does path compression. See net/radix.[ch] and
> http://en.wikipedia.org/wiki/Radix_tree

Thinking more about this I can't see any advantage of the radix trie
becoming useful for the vmmap.  The index of the vmmap is the address
range and can't be expressed in a path compressable power of 2 quantity
and is non-overlapping.  The key for the trie, a pointer, has a fixed
small size and can't be optimized away.  And it is not a balanced tree.
Many keys in the same region lead to long node traversals.

In short: VMmap and a radix trie have an impedance mismatch and are unfit
for each other imho.

-- 
Andre



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