Date: Fri, 11 Jun 1999 15:48:01 +0200 From: Eivind Eklund <eivind@FreeBSD.ORG> To: Roger Hardiman <roger@cs.strath.ac.uk> Cc: hackers@FreeBSD.ORG, new-bus-arch@bostonradio.org Subject: Re: KLD bt848 driver and vm_page_alloc_contig Message-ID: <19990611154801.A26249@bitbox.follo.net> In-Reply-To: <37610728.7640C257@cs.strath.ac.uk>; from Roger Hardiman on Fri, Jun 11, 1999 at 01:55:04PM %2B0100 References: <37610728.7640C257@cs.strath.ac.uk>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Jun 11, 1999 at 01:55:04PM +0100, Roger Hardiman wrote: > Hi, > > Is there a way to fix > vm_page_alloc_contig() > so it can allocate contiguous memory once userland has got up > and running and memory has been fragmented/filled. John Dyson answered this about 2 years ago with something like 'Yes, but it is a bit of work', and I think that is still true (I don't see any reason it shouldn't be possible, but I don't know the data structures involved well enough to know exactly how to do it. > Clearly the kernel would need to swap out user process memory pages > to make room for the contigous memory vm_page_alloc_contig() > requires. No, not really. The VM mapping internally is virtualized, so you can move pages around without swapping them out. You'd just have to find some place where you want to put the continuous block, and either move all pages in the block away from it, or drop them (if they're clean), in order to be able so you can return the block. It would destroy cache coherence, of course, but that isn't horribly expensive. Eivind. 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?19990611154801.A26249>