Messages in this thread | | | Date | Wed, 04 Feb 2004 13:35:54 -0600 | From | Dave McCracken <> | Subject | Re: Active Memory Defragmentation: Our implementation & problems |
| |
--On Wednesday, February 04, 2004 14:07:52 -0500 "Richard B. Johnson" <root@chaos.analogic.com> 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |