Created attachment 145944 [details]
5.4-rc7 with corrupted page table trace
Testing on a Skylake NUC6i5SYH.
In LibreELEC we use plymouth-lite to display a splash image (png) during initrd.
Since 5.4-rc1 whenever ply-image is executed the kernel produces a corrupted page table trace and the png image does not appear (as ply-image fails):
[ 1.712976] ply-image: Corrupted page table at address 7f4f8f2fffe0
[ 1.712999] PGD 80000001cbe3c067 P4D 80000001cbe3c067 PUD 2727a6067 PMD 1cbcec067 PTE 800fbfa2307e8237
[ 1.713024] Bad pagetable: 000f [#1] SMP PTI
[ 1.713035] CPU: 2 PID: 272 Comm: ply-image Not tainted 5.4.0-rc7 #1
[ 1.713052] Hardware name: /NUC6i5SYB, BIOS SYSKLi35.86A.0063.2017.1115.1550 11/15/2017
[ 1.713073] RIP: 0033:0x7f4f8fd8240e
[ 1.713083] Code: ff ff 0f 18 89 40 fe ff ff c5 fe 6f 01 c5 fe 6f 49 e0 c5 fe 6f 51 c0 c5 fe 6f 59 a0 48 81 e9 80 00 00 00 48 81 ea 80 00 00 00 <c4> c1 7d e7 01 c4 c1 7d e7 49 e0 c4 c1 7d e7 51 c0 c4 c1 7d e7 59
[ 1.713129] RSP: 002b:00007fff9e3a6e68 EFLAGS: 00010202
[ 1.713143] RAX: 00007f4f8eb17000 RBX: 00000000006454f0 RCX: 00007f4f8eb15f70
[ 1.713161] RDX: 00000000007e8f80 RSI: 00007f4f8e32d010 RDI: 00007f4f8eb17000
[ 1.713178] RBP: 00000000006454f0 R08: 0000000000000000 R09: 00007f4f8f2fffe0
[ 1.713195] R10: 00007f4f8f2feff0 R11: 00007f4f8f2fffe0 R12: 00000000006455d0
[ 1.713213] R13: 0000000000000780 R14: 00007f4f8db43010 R15: 0000000000000000
[ 1.713231] FS: 00007f4f8faea740 GS: 0000000000000000
[ 1.713245] Modules linked in:
[ 1.713254] ---[ end trace a347200260b0a1b5 ]---
[ 1.713269] RIP: 0033:0x7f4f8fd8240e
[ 1.713284] Code: ff ff 0f 18 89 40 fe ff ff c5 fe 6f 01 c5 fe 6f 49 e0 c5 fe 6f 51 c0 c5 fe 6f 59 a0 48 81 e9 80 00 00 00 48 81 ea 80 00 00 00 <c4> c1 7d e7 01 c4 c1 7d e7 49 e0 c4 c1 7d e7 51 c0 c4 c1 7d e7 59
[ 1.713328] RSP: 002b:00007fff9e3a6e68 EFLAGS: 00010202
[ 1.713341] RAX: 00007f4f8eb17000 RBX: 00000000006454f0 RCX: 00007f4f8eb15f70
[ 1.713358] RDX: 00000000007e8f80 RSI: 00007f4f8e32d010 RDI: 00007f4f8eb17000
[ 1.713375] RBP: 00000000006454f0 R08: 0000000000000000 R09: 00007f4f8f2fffe0
[ 1.713392] R10: 00007f4f8f2feff0 R11: 00007f4f8f2fffe0 R12: 00000000006455d0
[ 1.713410] R13: 0000000000000780 R14: 00007f4f8db43010 R15: 0000000000000000
[ 1.713428] FS: 00007f4f8faea740(0000) GS:ffffa35575b00000(0000) knlGS:0000000000000000
[ 1.713448] CS: 0033 DS: 0000 ES: 0000 CR0: 0000000080050033
(full log with drm.debug=0xe attached)
Bisecting the kernel from 5.3.0 (good) to 5.4-rc1 (bad) identifies the first bad commit as:
drm/i915: Disregard drm_mode_config.fb_base
Reverting this commit stops the trace appearing with all kernels 5.4-rc1 through to 5.4-rc7, and ply-image now successfully displays the splash image.
I have tested drm-tip and this also produces the same trace as 5.4-rc with the bad commit is present.
This version of plymouth-lite is working fine with all kernels prior to 5.4-rc1.
Is this a plymouth-lite issue, or a kernel 5.4 issue?
Created attachment 145945 [details]
5.4-rc7 with bad commit reverted - no trace, png image appears
Created attachment 145946 [details]
drm-tip with corrupted page table
(In reply to Chris Wilson from comment #3)
> Try https://patchwork.freedesktop.org/series/69415/
No, it's not the leak of the address that is the immediate issue, but that we are feeding garbage into fb_mmap() [drivers/video/fbdev/core/fbmem.c].
Updated patch at https://patchwork.freedesktop.org/patch/340663/?series=69416&rev=1
Watch this space for future revisions as we try again.
As expected, the patch in comment#3 had no obvious effect and the 5.4-rc7 kernel continues to complain about a corrupted page table.
However the patch in comment#4 is working a treat - the kernel trace is fixed, and the image is appearing.
If you push any further revisions please ping me on this bug and I'll re-test.
If you decide to go with the patch in comment#4 then I'm happy for you to include my details as "tested by: Neil MacLeod" etc.
Many thanks for the fix!
Patch drm/i915/fbdev: Restore physical addresses for fb_mmap() landed in drmtip.
Closing this issue as fixed.