DragonFly BSD
DragonFly kernel List (threaded) for 2005-01
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: splay tree and red-black tree for vm_map entry lookups.


From: Eirik Nygaard <eirikn@xxxxxxxxxxxx>
Date: Thu, 20 Jan 2005 15:20:22 +0100
Mail-followup-to: Matthew Dillon <dillon@apollo.backplane.com>, kernel@crater.dragonflybsd.org

On Wed, Jan 19, 2005 at 02:16:57PM -0800, Matthew Dillon wrote:
> 
> :Works a lot better now (I can log in and everything).
> :
> :http://leaf.dragonflybsd.org/~eirikn/vm_map-rb-tree-netbsd-eirikn-hint.patch
> :
> :-- 
> :Eirik Nygaard
> 
>     Looking good.  I think there are some minor code cleanups
>     that can be done.  For example:
> 
>         while (tmp) {
> 		if (address >= tmp->start) {
> 			...
>                 } else {
>                         tmp = RB_LEFT(tmp, rb_entry);
>                 }
>                 *entry = last;		<<<<<<<<<<<<< IS THIS NEEDED?
						No, it is not needed.
>         }
>                                    
>         /*
>          * If there are no entries yet last will end up being NULL and we need
>          * to set it to &map->header.
>          */
>         if (last == NULL)
>                 last = &map->header;
> 
>         *entry = last;
>         return (FALSE);
> 
>     Double check, but I think that '*entry = last' in the loop
>     is not necessary.
> 
>     Also, I think you can pre-initialize the 'last' variable
>     to &map->header at the top and then get rid of this code:
Good idea.
> 
> 	/*
> 	 * If there are no entries yet last will end up being NULL and we need
> 	 * to set it to &map->header.
> 	 */
> 	if (last == NULL)
> 		last = &map->header;
> 
> 					-Matt
> 					Matthew Dillon 
> 					<dillon@xxxxxxxxxxxxx>
> 

I will do some more testing here and see if I hit the hint problem. Is there a
possibility it hits another invalid entry, perhaps it has something to do with
the map->hint = entry->prev; change?

-- 
Eirik Nygaard



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]