Messages in this thread | | | Subject | Re: [GIT PATCH] x86,percpu: fix pageattr handling with remap allocator | From | Suresh Siddha <> | Date | Sat, 16 May 2009 12:09:24 -0700 |
| |
On Sat, 2009-05-16 at 08:16 -0700, Tejun Heo wrote: > Hello, Suresh. > > Suresh Siddha wrote: > > Tejun, Can you please educate me why we need to map this first > > percpu chunk (which is pre-allocated during boot and is physically > > contiguous) into vmalloc area? > > To make areas for each cpu congruent such that the address offset of a > percpu symbol for CPU N is always the same from the address for CPU 0.
But for the first percpu chunk, isn't it the case that the physical address allocations for a particular cpu is contiguous (as you are using one bootmem allocation for whole PMD_SIZE for any given cpu)? So both the kernel direct mapping aswell as the vmalloc mappings are contiguous for the first chunk, on any given cpu. Right?
> > Perhaps even for the other dynamically allocated secondary chunks? > > (as far as I can see, all the chunk allocations seems to be > > physically contiguous and later mapped into vmalloc area).. > > > > That should simplify these things quite a bit(atleast for first > > percpu chunk). I am missing something obvious I guess. > > Hmm... Sorry I don't really follow. Can you please elaborate the > question?
For the first percpu chunk, we can use the kernel direct mapping and avoid the vmalloc mapping of PMD_SIZE. And avoid the vmap address aliasing problem (wrt to free pages that we have given back to -mm) that we are trying to avoid with this patchset (as the existing cpa code already takes care of the kernel direct mappings).
thanks, suresh
| |