From owner-freebsd-hackers Mon Oct 15 23: 7:24 2001 Delivered-To: freebsd-hackers@freebsd.org Received: from the-7.net (the-7.net [211.232.190.152]) by hub.freebsd.org (Postfix) with ESMTP id 3992D37B40C for ; Mon, 15 Oct 2001 23:07:20 -0700 (PDT) Received: (from ab@localhost) by the-7.net (8.11.6/8.11.6) id f9G5gIJ35225 for freebsd-hackers@freebsd.org; Tue, 16 Oct 2001 14:42:18 +0900 (KST) (envelope-from ab) Date: Tue, 16 Oct 2001 14:42:17 +0900 From: "Eugene M. Kim" To: freebsd-hackers@freebsd.org Subject: contigmalloc + contigfree = memory leak? Message-ID: <20011016144217.A35188@the-7.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Greetings, QUESTION: Does contigfree() really free up memory allocated using contigmalloc()? BACKGROUND: I've been trying to make up a kmod that allocates/deallocates memory in a specific physical address range. Mike Smith suggested using busdma functions to do the job, so I followed it. After allocating and deallocating memory several times, it seemed that bus_dmamem_free() was not freeing the memory properly. I looked at busdma_machdep.c where bus_dmamem_free() was defined, and found: void bus_dmamem_free(bus_dma_tag_t dmat, void *vaddr, bus_dmamap_t map) { /* * dmamem does not need to be bounced, so the map should be * NULL */ if (map != NULL) panic("bus_dmamem_free: Invalid map freed\n"); /* XXX There is no "contigfree" and "free" doesn't work */ if ((dmat->maxsize <= PAGE_SIZE) && dmat->lowaddr >= ptoa(Maxmem)) free(vaddr, M_DEVBUF); } However, there *is* contigfree() and a related patch was applied on -current around August, so I did the same thing (adding an else clause to call contigfree(vaddr, dmat->maxsize, M_DEVBUF)). It didn't solve the memory leak problem either, so I'm stuck here... Could anyone shed a light on this? Regards, Eugene To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message