Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 11 Oct 2001 19:10:38 +0200
From:      Patrick Cipiere <Patrick.Cipiere@UDcast.com>
To:        freebsd-hackers@freebsd.org
Subject:   contigfree, free what?
Message-ID:  <200110111710.f9BHAcW24404@ra.udcast.com>

next in thread | raw e-mail | index | archive | help
We are currently working with FreeBSD 4.3 and we found out that
kldloading/kldunloading modules working with contigmalloc()/contigfree()
like if_xl.ko produces a memory leak.

This is due to the contigfree() function which seems to uncompletely release
the memory ressource allocated in vm_page_array.

When contigmalloc() steps in vm_page_array, it does not find back
the pages previously released by contigfree()
The loop vm/vm_page.c is this one:

  for (i = start; i < cnt.v_page_count; i++) {
    int pqtype; 
    phys = VM_PAGE_TO_PHYS(&pga[i]); 
    pqtype = pga[i].queue - pga[i].pc; 
    if (pqtype == PQ_FREE 


It fails on the `pqtype == PQ_FREE' test
and the previously allocated (and supposedly released by contigfree)
pages can't be reallocated.

Anyone has a patch?

Thanx,
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?200110111710.f9BHAcW24404>