From owner-freebsd-hackers Fri Nov 15 9:51: 2 2002 Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B5B2437B401 for ; Fri, 15 Nov 2002 09:51:01 -0800 (PST) Received: from msgbas2x.cos.agilent.com (msgbas2x.cos.agilent.com [192.25.240.37]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2BA8243E77 for ; Fri, 15 Nov 2002 09:51:01 -0800 (PST) (envelope-from ctuffli@rose.agilent.com) Received: from relcos2.cos.agilent.com (relcos2.cos.agilent.com [130.29.152.237]) by msgbas2x.cos.agilent.com (Postfix) with ESMTP id 803E21C63 for ; Fri, 15 Nov 2002 10:50:59 -0700 (MST) Received: from rtl.rose.agilent.com (rtl.rose.agilent.com [130.30.179.189]) by relcos2.cos.agilent.com (Postfix) with ESMTP id 6E3BD1C for ; Fri, 15 Nov 2002 10:50:57 -0700 (MST) Received: from mail.rose.agilent.com (mailsrv@bellhop [130.30.179.19]) by rtl.rose.agilent.com (8.9.3 (PHNE_18979)/8.9.3 SMKit7.1.0) with ESMTP id JAA27700 for ; Fri, 15 Nov 2002 09:50:55 -0800 (PST) Received: from cre85086tuf (cre85086tuf.rose.agilent.com [130.30.178.1]) by mail.rose.agilent.com (Netscape Messaging Server 3.6) with ESMTP id AAA6A99; Fri, 15 Nov 2002 09:50:52 -0800 Received: by cre85086tuf (Postfix, from userid 1001) id A23DE19DD7A; Fri, 15 Nov 2002 09:50:28 -0800 (PST) Date: Fri, 15 Nov 2002 09:50:28 -0800 From: Chuck Tuffli To: mark tinguely Cc: freebsd-hackers@FreeBSD.ORG Subject: Re: bus_dmamem_alloc failing Message-ID: <20021115175028.GC19814@cre85086tuf.rose.agilent.com> References: <20021115164813.GB19814@cre85086tuf.rose.agilent.com> <200211151703.gAFH3ij16483@web.cs.ndsu.nodak.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200211151703.gAFH3ij16483@web.cs.ndsu.nodak.edu> User-Agent: Mutt/1.4i 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 On Fri, Nov 15, 2002 at 11:03:44AM -0600, mark tinguely wrote: [snip] > The memory is avaliable to the kernel/drivers when bus_dmamem_free() is > called. The problem for you is that someone else does allocate a > page within the 16 page chunk making it unable to reallocatable by you, > so the next bus_dmamem_alloc() looks for the next 16 page contiguous > chunk. This continues until there is no more 16 page contiguous chunks > available and the bus_dmamem_alloc() fails. FreeBSD does not have a > physical memory defragmenter. Ok, I get it now. Thanks to all for the explanation. Would a physical defragmenter be of interest? I can't work on it right away, but if there is interest, I could take a look at this later. -- Chuck Tuffli Agilent Technologies, Storage and Networking To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message