Re: [1/3] add early_pfn_to_nid for ppc64

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Joel Schopp wrote:
>> +#ifdef CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID
>> +#define early_pfn_to_nid(pfn)  pa_to_nid(((unsigned long)pfn) <<
>> PAGE_SHIFT)
>> +#endif
> 
> 
> Is there a reason we didn't just use pfn_to_nid() directly here instead
> of pa_to_nid()?  I'm just thinking of having DISCONTIG/NUMA off and
> pfn_to_nid() being #defined to zero for those cases.

The problem is that pfn_to_nid is defined by the memory model.  In the
SPARSEMEM case it isn't always usable until after the we have
initialised and allocated the sparse mem_maps.  It is allocations during
this phase that need this early_pfn_to_nid() form, to guide its
allocations of the mem_map to obtain locality with the physical memory
blocks.

This is clearer in the i386 port where the early_pfn_to_nid()
implementation uses low level table to determine the location.  As has
been mentioned in another thread, we are using what is effectivly a
DISCONTIGMEM data structure here.  I have some work in progress to split
that last part and move to a true early implementation on ppc64 too.

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

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux