Re: [PATCH v4 RESEND 4/11] x86/asm: Fix pud/pmd interfaces to handle large PAT bit

From: Toshi Kani
Date: Mon Nov 09 2015 - 18:23:09 EST


On Mon, 2015-11-09 at 17:36 -0500, Boris Ostrovsky wrote:
> On 11/09/2015 03:47 PM, Kirill A. Shutemov wrote:
> > On Mon, Nov 09, 2015 at 02:39:31PM -0500, Boris Ostrovsky wrote:
> > > On 11/09/2015 02:16 PM, Toshi Kani wrote:
> > > > On Mon, 2015-11-09 at 13:06 -0500, Boris Ostrovsky wrote:
> > > > > On 09/17/2015 02:24 PM, Toshi Kani wrote:
> > > > > > Now that we have pud/pmd mask interfaces, which handle pfn & flags
> > > > > > mask properly for the large PAT bit.
> > > > > >
> > > > > > Fix pud/pmd pfn & flags interfaces by replacing PTE_PFN_MASK and
> > > > > > PTE_FLAGS_MASK with the pud/pmd mask interfaces.
> > > > > >
> > > > > > Suggested-by: Juergen Gross <jgross@xxxxxxxx>
> > > > > > Signed-off-by: Toshi Kani <toshi.kani@xxxxxxx>
> > > > > > Cc: Juergen Gross <jgross@xxxxxxxx>
> > > > > > Cc: Konrad Wilk <konrad.wilk@xxxxxxxxxx>
> > > > > > Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> > > > > > Cc: H. Peter Anvin <hpa@xxxxxxxxx>
> > > > > > Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> > > > > > Cc: Borislav Petkov <bp@xxxxxxxxx>
> > > > > > ---
> > > > > > arch/x86/include/asm/pgtable.h | 14 ++++++++------
> > > > > > arch/x86/include/asm/pgtable_types.h | 4 ++--
> > > > > > 2 files changed, 10 insertions(+), 8 deletions(-)
> > > > > >
> > > > > Looks like this commit is causing this splat for 32-bit kernels. I am
> > > > > attaching my config file, just in case.
> > > > Thanks for the report! I'd like to reproduce the issue since I am not
> > > > sure how
> > > > this change caused it...
> > > >
> > > > I tried to build a kernel with the attached config file, and got the
> > > > following
> > > > error. Not sure what I am missing.
> > > >
> > > > ----
> > > > $ make -j24 ARCH=i386
> > > > :
> > > > LD drivers/built-in.o
> > > > LINK vmlinux
> > > > ./.config: line 44: $'\r': command not found
> > > I wonder whether my email client added ^Ms to the file that I send. It
> > > shouldn't have.
> > >
> > > > Makefile:929: recipe for target 'vmlinux' failed
> > > > make: *** [vmlinux] Error 127
> > > > ----
> > > >
> > > > Do you have steps to reproduce the issue? Or do you see it during boot
> > > > -time?
> > > This always happens just after system has booted, it may still be going
> > > over
> > > init scripts. I am booting with ramdisk, don't know whether it has
> > > anything
> > > to do with this problem.
> > >
> > > FWIW, it looks like pmd_pfn_mask() inline is causing this. Reverting it
> > > alone makes this crash go away.
> > Could you check the patch below?
>
>
> I does fix the problem on baremetal, thanks. My 32-bit Xen guests still
> fail which I thought was the same issue but now that I looked at it more
> carefully it has different signature.

I do not think Xen is hitting this, but I think page_level_mask() has the same
issue for a long time. I will set up 32-bit env on a system with >4GB memory to
verify this.

Thanks,
-Toshi

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