From: Nicholas Piggin <npiggin@gmail.com>
To: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>,
mpe@ellerman.id.au, paulus@samba.org
Cc: Romain Dolbeau <romain@dolbeau.org>, linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH] powerpc/mm/hash: Fix the min context value used by userspace.
Date: Tue, 21 Jan 2020 21:05:06 +1000 [thread overview]
Message-ID: <1579593605.idinjkyxla.astroid@bobo.none> (raw)
In-Reply-To: <20200108054422.161384-1-aneesh.kumar@linux.ibm.com>
Aneesh Kumar K.V's on January 8, 2020 3:44 pm:
> Without this kernel can endup with SLB entries as below
>
> 04 c00c000008000000 00066bde000a7510 256M ESID=c00c00000 VSID= 66bde000a7 LLP:110
> 12 0000000008000000 00066bde000a7d90 256M ESID= 0 VSID= 66bde000a7 LLP:110
>
> Such SLB entries can result in machine check.
>
> We noticed this with 256MB segments because that resulted in the duplicate VSID
> with first vmemmap segment and first user segement. With 1TB segments we observe
> duplication with EAs like
>
> 0x100e64b vsid for EA 0xc00db50000000000 context 7
> 0x100e64b vsid for user EA 0x1b50000000000 context 7
>
> and those high addresses are not common and the kernel mapping in the above case
> is I/O remap range.
>
> [ 0.000000] vmalloc start = 0xc008000000000000
> [ 0.000000] IO start = 0xc00a000000000000
> [ 0.000000] vmemmap start = 0xc00c000000000000
>
> Fixes: 0034d395f89d ("powerpc/mm/hash64: Map all the kernel regions in the same 0xc range")
> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
> ---
> arch/powerpc/include/asm/book3s/64/mmu-hash.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/include/asm/book3s/64/mmu-hash.h b/arch/powerpc/include/asm/book3s/64/mmu-hash.h
> index 15b75005bc34..516db8a2e6ca 100644
> --- a/arch/powerpc/include/asm/book3s/64/mmu-hash.h
> +++ b/arch/powerpc/include/asm/book3s/64/mmu-hash.h
> @@ -601,7 +601,7 @@ extern void slb_set_size(u16 size);
> */
> #define MAX_USER_CONTEXT ((ASM_CONST(1) << CONTEXT_BITS) - 2)
> #define MIN_USER_CONTEXT (MAX_KERNEL_CTX_CNT + MAX_VMALLOC_CTX_CNT + \
> - MAX_IO_CTX_CNT + MAX_VMEMMAP_CTX_CNT)
> + MAX_IO_CTX_CNT + MAX_VMEMMAP_CTX_CNT + 1)
Good find and fix, but the changelog is a bit difficult to read.
The bug is an off-by-one error which means the first user context ID
allocated is the vmemmap ID, right? I would lead with that.
I'm not sure that machine checks are a primary symptom, different ESID
mapping the same VSID is allowed. My guess is the machine check happens
a little later, after the vmemmap gets corrupted via its new mapping.
Guessing this hasn't immediately resulted in wholesale mayhem because
- Init is pretty small, doesn't use many segments or pages.
- Low 1TB is mapped with 256MB segments which get a different VA hash
than the 1TB vmemmap segment.
- init tends to load itself at 256MB, so even with disable_1tb_segments,
it's clashing with the second vmmemap segment, which is for like the
second 256GB of memory on the first node, so not going to hit many
systems.
Anyway good find.
Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
Thanks,
Nick
prev parent reply other threads:[~2020-01-21 11:11 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-08 5:44 [PATCH] powerpc/mm/hash: Fix the min context value used by userspace Aneesh Kumar K.V
2020-01-21 11:05 ` Nicholas Piggin [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1579593605.idinjkyxla.astroid@bobo.none \
--to=npiggin@gmail.com \
--cc=aneesh.kumar@linux.ibm.com \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
--cc=paulus@samba.org \
--cc=romain@dolbeau.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox