Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Oct 2001 18:05:15 +0200
From:      Patrick Cipiere <Patrick.Cipiere@UDcast.com>
To:        tinguely@web.cs.ndsu.nodak.edu
Cc:        dillon@earth.backplane.com, Patrick.Cipiere@UDcast.com, freebsd-hackers@FreeBSD.ORG
Subject:   Re: contigfree, free what?
Message-ID:  <200110121605.f9CG5F726010@ra.udcast.com>
In-Reply-To: <200110121501.f9CF17Y14052@web.cs.ndsu.nodak.edu> (message from mark tinguely on Fri, 12 Oct 2001 10:01:07 -0500 (CDT))

next in thread | previous in thread | raw e-mail | index | archive | help
Mark,

> I also placed some checks on vm_map_delete

I did that also, and as far as I understand everything works fine.
The only thing I found was the fact that when contigmalloc() grabs the
contig pages it sets the value of pga[i] (for i in allocated pages)
note that: vm_page_t pga = vm_page_array;

Then contigfree() does a pretty good job, but does not reset the values
of pga[i] to pqtype == PQ_FREE (pqtype = pga[i].queue - pga[i].pc)

So the next contigmalloc() requiring the same number of pages fails on
the previously released pages because they are not PQ_FREE

The other thing that puzzled me is the fact that in vm_map_delete()
called by contgigfree() has a variable

  object = entry->object.vm_object;

which shows a value of 0 rather than kernel_object or kmem_object

But my understanding might be wrong.

Thanks,
Patrick.
-- 
UDcast: Full IP over Broadcast Media

Phone:  (+33) (0)4 93 00 16 99
Mobile: (+33) (0)6 14 21 55 98
Fax:    (+33) (0)4 93 00 16 61                 http://www.UDcast.com

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




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