On Dec 4, 2009, at 3:25 PM, Benjamin Herrenschmidt wrote:
On Fri, 2009-12-04 at 08:09 -0600, Kumar Gala wrote:
On Dec 4, 2009, at 2:58 AM, Benjamin Herrenschmidt wrote:
On Fri, 2009-12-04 at 01:18 -0600, Kumar Gala wrote:
Ben, David,
If we want to support true 4G/4G split on ppc32 using the MSB of
the
address to determine of the pgd_t is for hugetlbfs isn't going to
work. Since every pointer in the pgd_t -> pud_t -> pmd_t is
point to
at least a 4K page I would think the low order 12-bits should
always
be 0.
On 32 bit maybe. On 64, the pg/u/md's can be smaller. I don't really
want to have a different encoding for both types though.
What do you mean they can be smaller? We have some scenario when we
dont allocate a full page? I agree having the encodings be different
would be bad. I'm trying to avoid having it be different between 32
bit and 64 (but maybe that will be impossible).
Yes. The intermediary levels are smaller on 64-bit. Also, with
hugetlbfs
it can create special levels of various sizes depending on the
requirements to fit a given huge page size. And that would be true of
both 32 and 64-bit in fact.
Even than, does that preclude the format I suggested? I'm assuming
that pgd_t/pud_t/pmd_t are always a double word so the low order 4-
bits should be 0 (on 64-bit), so using the lsb as the flag between
hugetlb and normal pointer should still work.
- k
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev