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>