Messages in this thread | | | Date | Tue, 16 Jan 2018 20:11:05 +0100 | From | Joerg Roedel <> | Subject | Re: [PATCH 07/16] x86/mm: Move two more functions from pgtable_64.h to pgtable.h |
| |
On Tue, Jan 16, 2018 at 10:03:09AM -0800, Dave Hansen wrote: > On 01/16/2018 08:36 AM, Joerg Roedel wrote: > > + return (((ptr & ~PAGE_MASK) / sizeof(pgd_t)) < KERNEL_PGD_BOUNDARY); > > +} > > One of the reasons to implement it the other way: > > - return (ptr & ~PAGE_MASK) < (PAGE_SIZE / 2); > > is that the compiler can do this all quickly. KERNEL_PGD_BOUNDARY > depends on PAGE_OFFSET which depends on a variable. IOW, the compiler > can't do it. > > How much worse is the code that this generates?
I havn't looked at the actual code this generates, but the (PAGE_SIZE / 2) comparison doesn't work on 32 bit where the address space is not always evenly split. I'll look into a better way to check this.
Thanks,
Joerg
| |