Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1541777 > unrolled thread
| Started by | Ard Biesheuvel <ard.biesheuvel@linaro.org> |
|---|---|
| First post | 2016-12-14 10:20 +0100 |
| Last post | 2016-12-16 03:00 +0100 |
| Articles | 3 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH 2/2] arm64: mm: enable CONFIG_HOLES_IN_ZONE for NUMA Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2016-12-14 10:20 +0100
Re: [PATCH 2/2] arm64: mm: enable CONFIG_HOLES_IN_ZONE for NUMA Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2016-12-15 17:10 +0100
Re: [PATCH 2/2] arm64: mm: enable CONFIG_HOLES_IN_ZONE for NUMA Hanjun Guo <hanjun.guo@linaro.org> - 2016-12-16 03:00 +0100
| From | Ard Biesheuvel <ard.biesheuvel@linaro.org> |
|---|---|
| Date | 2016-12-14 10:20 +0100 |
| Subject | [PATCH 2/2] arm64: mm: enable CONFIG_HOLES_IN_ZONE for NUMA |
| Message-ID | <sOdTb-4EN-3@gated-at.bofh.it> |
The NUMA code may get confused by the presence of NOMAP regions within zones, resulting in spurious BUG() checks where the node id deviates from the containing zone's node id. Since the kernel has no business reasoning about node ids of pages it does not own in the first place, enable CONFIG_HOLES_IN_ZONE to ensure that such pages are disregarded. Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> --- arch/arm64/Kconfig | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 111742126897..0472afe64d55 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -614,6 +614,10 @@ config NEED_PER_CPU_EMBED_FIRST_CHUNK def_bool y depends on NUMA +config HOLES_IN_ZONE + def_bool y + depends on NUMA + source kernel/Kconfig.preempt source kernel/Kconfig.hz -- 2.7.4
[toc] | [next] | [standalone]
| From | Ard Biesheuvel <ard.biesheuvel@linaro.org> |
|---|---|
| Date | 2016-12-15 17:10 +0100 |
| Message-ID | <sOGLv-7Up-1@gated-at.bofh.it> |
| In reply to | #1541777 |
On 15 December 2016 at 15:39, Robert Richter <robert.richter@cavium.com> wrote: > I was going to do some measurements but my kernel crashes now with a > page fault in efi_rtc_probe(): > > [ 21.663393] Unable to handle kernel paging request at virtual address 20251000 > [ 21.663396] pgd = ffff000009090000 > [ 21.663401] [20251000] *pgd=0000010ffff90003 > [ 21.663402] , *pud=0000010ffff90003 > [ 21.663404] , *pmd=0000000fdc030003 > [ 21.663405] , *pte=00e8832000250707 > > The sparsemem config requires the whole section to be initialized. > Your patches do not address this. > 96000047 is a third level translation fault, and the PTE address has RES0 bits set. I don't see how this is related to sparsemem, could you explain? > On 14.12.16 09:11:47, Ard Biesheuvel wrote: >> +config HOLES_IN_ZONE >> + def_bool y >> + depends on NUMA > > This enables pfn_valid_within() for arm64 and causes the check for > each page of a section. The arm64 implementation of pfn_valid() is > already expensive (traversing memblock areas). Now, this is increased > by a factor of 2^18 for 4k page size (16384 for 64k). We need to > initialize the whole section to avoid that. > I know that. But if you want something for -stable, we should have something that is correct first, and only then care about the performance hit (if there is one)
[toc] | [prev] | [next] | [standalone]
| From | Hanjun Guo <hanjun.guo@linaro.org> |
|---|---|
| Date | 2016-12-16 03:00 +0100 |
| Message-ID | <sOPYt-574-1@gated-at.bofh.it> |
| In reply to | #1541777 |
Hi Robert, On 2016/12/15 23:39, Robert Richter wrote: > I was going to do some measurements but my kernel crashes now with a > page fault in efi_rtc_probe(): > > [ 21.663393] Unable to handle kernel paging request at virtual address 20251000 > [ 21.663396] pgd = ffff000009090000 > [ 21.663401] [20251000] *pgd=0000010ffff90003 > [ 21.663402] , *pud=0000010ffff90003 > [ 21.663404] , *pmd=0000000fdc030003 > [ 21.663405] , *pte=00e8832000250707 > > The sparsemem config requires the whole section to be initialized. > Your patches do not address this. This patch set is running properly on D05, both the boot and LTP MM stress test are ok, seems it's a different configuration of memory mappings in firmware, just a stupid question, which part is related to this problem, is it only the Reserved memory? Thanks Hanjun
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web