Re: Active Memory Defragmentation: Our implementation & problems

From: Dave McCracken
Date: Wed Feb 04 2004 - 14:38:37 EST



--On Wednesday, February 04, 2004 14:07:52 -0500 "Richard B. Johnson"
<root@xxxxxxxxxxxxxxxxxx> wrote:

> If this is an Intel x86 machine, it is impossible for pages
> to get fragmented in the first place. The hardware allows any
> page, from anywhere in memory, to be concatenated into linear
> virtual address space. Even the kernel address space is virtual.
> The only time you need physically-adjacent pages is if you
> are doing DMA that is more than a page-length at a time. The
> kernel keeps a bunch of those pages around for just that
> purpose.
>
> So, if you are making a "memory defragmenter", it is a CPU time-sink.

Um, wrong answer. When you ask for more than one page from the buddy
allocator (order greater than 0) it always returns physically contiguous
pages.

Also, one of the near-term goals in VM is to be able to allocate and free
large pages from the main memory pools, which requires that something like
order 9 or 10 allocations (based on the architecture) succeed.

Dave McCracken

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/