On Fri, Jun 11, 1999 at 01:55:04PM +0100, Roger Hardiman wrote:
> Is there a way to fix
> 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()
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.
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message