Re: KLD bt848 driver and vm_page_alloc_contig

[ Available lists | Index of freebsd-hackers | Month of Jun 1999 | Week of 11 Jun 1999 | Raw email | View thread | Wrap long lines | Reply | Tag ]
From
Eivind Eklund <eivind@FreeBSD.ORG>
Date
11 Jun 1999 06:48:14
Subject
Re: KLD bt848 driver and vm_page_alloc_contig
Message-ID
19990611154801.A26249@bitbox.follo.net

References to

[ Hide this part ]
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



Elapsed time: 0.207 seconds