Kernel 4.7: PAGE_GUARDED and _PAGE_NO_CACHE
Christian Zigotzky
chzigotzky at xenosoft.de
Wed Jun 8 06:17:08 AEST 2016
Hi Michael,
On 06 June 2016 at 02:51 AM, Michael Ellerman wrote:
> On Sat, 2016-06-04 at 17:07 +0200, Christian Zigotzky wrote:
>
>> Aneesh,
>>
>> Shall I bisect the kernel from the powerpc git?
> No just use linus' tree.
>
>> Shall I start with the following commit?
>>
>> https://git.kernel.org/cgit/linux/kernel/git/powerpc/linux.git/commit/?id=8ffb4103f5e28d7e7890ed4774d8e009f253f56e
> Yeah that would be a good one to start with.
>
> Then mark rc1 as bad and bisect should do the rest.
>
> cheers
>
>
"range.size, pgprot_val(pgprot_noncached(__pgprot(0))));" isn't the
problem. :-) It works.
764041e0f43cc7846f6d8eb246d65b53cc06c764 is the first bad commit
commit 764041e0f43cc7846f6d8eb246d65b53cc06c764
Author: Aneesh Kumar K.V <aneesh.kumar at linux.vnet.ibm.com>
Date: Fri Apr 29 23:26:09 2016 +1000
powerpc/mm/radix: Add checks in slice code to catch radix usage
Radix doesn't need slice support. Catch incorrect usage of slice code
when radix is enabled.
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar at linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe at ellerman.id.au>
Cheers,
Christian
Git Log:
git clone
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git linux-git
git bisect start
git bisect good 8ffb4103f5e28d7e7890ed4774d8e009f253f56e
git bisect bad 1a695a905c18548062509178b98bc91e67510864 (Linux 4.7-rc1)
Output:
Bisecting: 6333 revisions left to test after this (roughly 13 steps)
[4741526b83c5d3a3d661d1896f9e7414c5730bcb] mm, page_alloc: restore the
original nodemask if the fast path allocation failed
----
git bisect good (Linux AmigaoneX1000
4.6.0_A-EON_AmigaONE_X1000_Nemo-05145-g4741526-dirty #1 SMP Mon Jun 6
14:35:01 CEST 2016 ppc64 GNU/Linux)
Output:
Bisecting: 3014 revisions left to test after this (roughly 12 steps)
[2f37dd131c5d3a2eac21cd5baf80658b1b02a8ac] Merge tag 'staging-4.7-rc1'
of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging
----
I had to replace
__ioremap_at(range.cpu_addr, (void *)ISA_IO_BASE,
range.size, _PAGE_NO_CACHE|_PAGE_GUARDED);
with
__ioremap_at(range.cpu_addr, (void *)ISA_IO_BASE,
range.size,
pgprot_val(pgprot_noncached(__pgprot(0))));
in the file "pci-common.c". After that it compiled but it doesn't boot
so "git bisect bad"
Output:
Bisecting: 1693 revisions left to test after this (roughly 11 steps)
[54cf809b9512be95f53ed4a5e3b631d1ac42f0fa] locking,qspinlock: Fix
spin_is_locked() and spin_unlock_wait()
----
I had to replace
__ioremap_at(range.cpu_addr, (void *)ISA_IO_BASE,
range.size, _PAGE_NO_CACHE|_PAGE_GUARDED);
with
__ioremap_at(range.cpu_addr, (void *)ISA_IO_BASE,
range.size,
pgprot_val(pgprot_noncached(__pgprot(0))));
in the file "pci-common.c". After that it compiled but it doesn't boot
so "git bisect bad"
Output:
Bisecting: 721 revisions left to test after this (roughly 10 steps)
[f4c80d5a16eb4b08a0d9ade154af1ebdc63f5752] Merge tag 'sound-4.7-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
----
git bisect good (Linux AmigaoneX1000
4.6.0_A-EON_AmigaONE_X1000_Nemo-05931-gf4c80d5-dirty #1 SMP Mon Jun 6
19:13:42 CEST 2016 ppc64 GNU/Linux)
Output:
Bisecting: 324 revisions left to test after this (roughly 9 steps)
[c04a5880299eab3da8c10547db96ea9cdffd44a6] Merge tag 'powerpc-4.7-1' of
git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux
----
I had to replace
__ioremap_at(range.cpu_addr, (void *)ISA_IO_BASE,
range.size, _PAGE_NO_CACHE|_PAGE_GUARDED);
with
__ioremap_at(range.cpu_addr, (void *)ISA_IO_BASE,
range.size,
pgprot_val(pgprot_noncached(__pgprot(0))));
in the file "pci-common.c". After that it compiled but it doesn't boot
so "git bisect bad"
Output:
Bisecting: 186 revisions left to test after this (roughly 8 steps)
[e9ad9b9bd3a3b95c89a29b2a197476e662db4233] Merge tag 'docs-for-linus' of
git://git.lwn.net/linux
----
git bisect good (Linux AmigaoneX1000
4.6.0_A-EON_AmigaONE_X1000_Nemo-06141-ge9ad9b9-dirty #1 SMP Tue Jun 7
08:32:33 CEST 2016 ppc64 GNU/Linux)
Bisecting: 93 revisions left to test after this (roughly 7 steps)
[0e5b5ba17ac33a05d9f4a48b5eb8b5e30f2274d7] cxl: Remove duplicate #defines
----
I had to replace
__ioremap_at(range.cpu_addr, (void *)ISA_IO_BASE,
range.size, _PAGE_NO_CACHE|_PAGE_GUARDED);
with
__ioremap_at(range.cpu_addr, (void *)ISA_IO_BASE,
range.size,
pgprot_val(pgprot_noncached(__pgprot(0))));
in the file "pci-common.c". After that it compiled but it doesn't boot
so "git bisect bad"
Output:
Bisecting: 46 revisions left to test after this (roughly 6 steps)
[764041e0f43cc7846f6d8eb246d65b53cc06c764] powerpc/mm/radix: Add checks
in slice code to catch radix usage
----
It doesn't boot. Booting Linux via __start()... didn't appear in the CFE.
git bisect bad
Output:
Bisecting: 22 revisions left to test after this (roughly 5 steps)
[2e8735198af0392d9032a356ee6c82686afca779] powerpc/mm: Move common pte
bits and accessors to book3s/64/pgtable.h
----
I had to replace
__ioremap_at(range.cpu_addr, (void *)ISA_IO_BASE,
range.size, _PAGE_NO_CACHE|_PAGE_GUARDED);
with
__ioremap_at(range.cpu_addr, (void *)ISA_IO_BASE,
range.size,
pgprot_val(pgprot_noncached(__pgprot(0))));
in the file "pci-common.c". After that it compiled and booted with
"range.size, pgprot_val(pgprot_noncached(__pgprot(0))));". That means,
"range.size, pgprot_val(pgprot_noncached(__pgprot(0))));" isn't the
problem. :-)
git bisect good (Linux AmigaoneX1000
4.6.0-rc3_A-EON_AmigaONE_X1000_Nemo-00067-g2e87351-dirty #1 SMP Tue Jun
7 15:29:19 CEST 2016 ppc64 GNU/Linux)
Output:
Bisecting: 11 revisions left to test after this (roughly 4 steps)
[2bfd65e45e877fb5704730244da67c748d28a1b8] powerpc/mm/radix: Add radix
callbacks for early init routines
----
I had to replace
__ioremap_at(range.cpu_addr, (void *)ISA_IO_BASE,
range.size, _PAGE_NO_CACHE|_PAGE_GUARDED);
with
__ioremap_at(range.cpu_addr, (void *)ISA_IO_BASE,
range.size,
pgprot_val(pgprot_noncached(__pgprot(0))));
in the file "pci-common.c". After that it compiled and it also booted
with "range.size, pgprot_val(pgprot_noncached(__pgprot(0))));"!
git bisect good (Linux AmigaoneX1000
4.6.0-rc3_A-EON_AmigaONE_X1000_Nemo-00078-g2bfd65e-dirty #1 SMP Tue Jun
7 16:50:47 CEST 2016 ppc64 GNU/Linux)
Output:
Bisecting: 5 revisions left to test after this (roughly 3 steps)
[676012a66f651a98808459bc8ab75661828ed96f] powerpc/mm: Hash abstraction
for tlbflush routines
----
I had to replace
__ioremap_at(range.cpu_addr, (void *)ISA_IO_BASE,
range.size, _PAGE_NO_CACHE|_PAGE_GUARDED);
with
__ioremap_at(range.cpu_addr, (void *)ISA_IO_BASE,
range.size,
pgprot_val(pgprot_noncached(__pgprot(0))));
in the file "pci-common.c". After that it compiled and it also booted
with "range.size, pgprot_val(pgprot_noncached(__pgprot(0))));"!
git bisect good (Linux AmigaoneX1000
4.6.0-rc3_A-EON_AmigaONE_X1000_Nemo-00084-g676012a-dirty #1 SMP Tue Jun
7 19:03:59 CEST 2016 ppc64 GNU/Linux)
Output:
Bisecting: 2 revisions left to test after this (roughly 2 steps)
[a8ed87c92adf1fd45142323e04f15b522117d575] powerpc/mm/radix: Add
MMU_FTR_RADIX
----
I had to replace
__ioremap_at(range.cpu_addr, (void *)ISA_IO_BASE,
range.size, _PAGE_NO_CACHE|_PAGE_GUARDED);
with
__ioremap_at(range.cpu_addr, (void *)ISA_IO_BASE,
range.size,
pgprot_val(pgprot_noncached(__pgprot(0))));
in the file "pci-common.c". After that it compiled and it also booted
with "range.size, pgprot_val(pgprot_noncached(__pgprot(0))));"!
git bisect good (Linux AmigaoneX1000
4.6.0-rc3_A-EON_AmigaONE_X1000_Nemo-00087-ga8ed87c-dirty #1 SMP Tue Jun
7 20:25:11 CEST 2016 ppc64 GNU/Linux)
Output:
Bisecting: 0 revisions left to test after this (roughly 1 step)
[d8c476eeb697c9aac46b390e9cbd7af7032814f1] powerpc/mm/radix: Isolate
hash table function from pseries guest code
----
I had to replace
__ioremap_at(range.cpu_addr, (void *)ISA_IO_BASE,
range.size, _PAGE_NO_CACHE|_PAGE_GUARDED);
with
__ioremap_at(range.cpu_addr, (void *)ISA_IO_BASE,
range.size,
pgprot_val(pgprot_noncached(__pgprot(0))));
in the file "pci-common.c". After that it compiled and it also booted
with "range.size, pgprot_val(pgprot_noncached(__pgprot(0))));"!
git bisect good (Linux AmigaoneX1000
4.6.0-rc3_A-EON_AmigaONE_X1000_Nemo-00089-gd8c476e-dirty #1 SMP Tue Jun
7 21:53:24 CEST 2016 ppc64 GNU/Linux)
Output:
764041e0f43cc7846f6d8eb246d65b53cc06c764 is the first bad commit
commit 764041e0f43cc7846f6d8eb246d65b53cc06c764
Author: Aneesh Kumar K.V <aneesh.kumar at linux.vnet.ibm.com>
Date: Fri Apr 29 23:26:09 2016 +1000
powerpc/mm/radix: Add checks in slice code to catch radix usage
Radix doesn't need slice support. Catch incorrect usage of slice code
when radix is enabled.
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar at linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe at ellerman.id.au>
:040000 040000 e66f81f989a42a4de238a49a2191f787ae65d4a2
6b7b4380d14db00d9aae28b5990e5dd8d6cf23a0 M arch
More information about the Linuxppc-dev
mailing list