Kernel 4.7: PAGE_GUARDED and _PAGE_NO_CACHE

Christian Zigotzky chzigotzky at xenosoft.de
Wed Jun 8 08:14:10 AEST 2016


Hi All,

I replaced the file "slice.c" with the old one from kernel 4.6. It 
compiled but unfortunately it doesn't boot.

Cheers,

Christian

On 07 June 2016 at 10:17 PM, Christian Zigotzky wrote:
> 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