Re: [MODSLAB 3/7] A Kmalloc subsystem

From: KAMEZAWA Hiroyuki
Date: Fri Aug 18 2006 - 03:12:59 EST

On Thu, 17 Aug 2006 23:17:54 -0700 (PDT)
Christoph Lameter <clameter@xxxxxxx> wrote:
> So we only have a single lookup of vmem_map from memory in order to
> calculate the address of struct page. The cacheline for vmem_map is
> heavily used and certainly in memory. virt_to_page seems to be a very
> efficient means to get to struct page. The problem scope may simply be
> to minimize the cachelines touched during free and alloc.

Just a note: with SPARSEMEM, we need more calculation and access to
mem_section[] table and page structs(mem_map).

> vmalloc_to_addr is certainly slower due to the page table walking. But the
> user already is aware of the fact that vmalloc memory is not as fast as
> direct mapped.

I wonder....
vmalloc() area is backed-up by VHPT(16Kb page size). And direct-mapped-area
is backed-up by software-tlb-miss-handler (16MB/64MB page size)

If TLB misses frequently, prefetch will work well in virtually-mapped area
(region5) rather direct-mapped-area (region 7) because of hardware assist
of 'VHPT walker'. (just I think. I have no data)

Considering some code walking through a list of objects scattered over all memory,
Is virtually-mapped area really slow ?


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at