[Ubuntu 17.04] - JFS related call traces and system enters xmon when rebooted after installation
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
The Ubuntu-power-systems project |
Opinion
|
Medium
|
Canonical Kernel Team | ||
linux (Ubuntu) |
Opinion
|
Medium
|
Canonical Kernel Team | ||
Bug Description
Issue:
------------
JFS related call traces and system enters xmon when rebooted after installation
Steps to reproduce:
-------
1 - Install Ubuntu 17.04 the system with
- prepboot
- /root [JFS filesystem]
- swap space
2 -After installation when rebooted it gives out call traces like as below:
[ 3.895246] Unable to handle kernel paging request for data at address 0x00000000
[ 3.895278] Faulting instruction address: 0xd000000004c5df1c
[ 3.895284] Oops: Kernel access of bad area, sig: 11 [#1]
[ 3.895287] SMP NR_CPUS=2048 [ 3.895288] NUMA
[ 3.895290] pSeries
[ 3.895292] Modules linked in: ip_tables x_tables autofs4 jfs ibmvscsi crc32c_vpmsum
[ 3.895301] CPU: 30 PID: 923 Comm: ureadahead Not tainted 4.9.0-15-generic #16-Ubuntu
[ 3.895304] task: c000000381d3c800 task.stack: c000000381fd0000
[ 3.895307] NIP: d000000004c5df1c LR: d000000004c5deb0 CTR: c0000000001279d0
[ 3.895310] REGS: c000000381fd3500 TRAP: 0300 Not tainted (4.9.0-15-generic)
[ 3.895313] MSR: 800000000280b033 <SF,VEC,
[ 3.895324] CFAR: c000000000008a60 DAR: 0000000000000000 DSISR: 40000000 SOFTE: 1
GPR00: d000000004c5deb0 c000000381fd3780 d000000004c78c28 c0000003802f40f0
GPR04: d000000004c6f6f0 d000000004c72b58 0000000000000563 d000000004c78c28
GPR08: 0000000000000000 0000000000180e97 0000000000000000 d000000004c6a608
GPR12: c0000000001279d0 c00000000fb90e00 0000000000000000 0000000000000000
GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
GPR20: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
GPR24: 0000000000000000 0000000000001000 0000000000000000 d000000004c72b38
GPR28: 0000000000180e97 f000000000e1d5c0 c0000003812af240 c0000003802f40b0
NIP [d000000004c5df1c] __get_metapage+
[ 3.895372] LR [d000000004c5deb0] __get_metapage+
[ 3.895374] Call Trace:
[ 3.895378] [c000000381fd3780] [d000000004c5de6c] __get_metapage+
[ 3.895384] [c000000381fd3870] [d000000004c4c368] diRead+0x130/0x260 [jfs]
[ 3.895388] [c000000381fd3920] [d000000004c424f4] jfs_iget+0x6c/0x1e0 [jfs]
[ 3.895393] [c000000381fd3950] [d000000004c43adc] jfs_lookup+
[ 3.895398] [c000000381fd3a80] [c00000000032a120] lookup_
[ 3.895402] [c000000381fd3b00] [c00000000032e8a8] walk_component+
[ 3.895406] [c000000381fd3b70] [c00000000032eb94] link_path_
[ 3.895409] [c000000381fd3c00] [c000000000330c1c] path_openat+
[ 3.895413] [c000000381fd3c80] [c0000000003328ac] do_filp_
[ 3.895417] [c000000381fd3db0] [c00000000031863c] do_sys_
[ 3.895421] [c000000381fd3e30] [c00000000000bd84] system_
[ 3.895424] Instruction dump:
[ 3.895426] 7909f00e 7fc9f214 39200001 f93f0028 fbdf0030 e93d0000 71280800 41820460
[ 3.895433] ebdd0030 41920034 e91d0008 e93f0038 <e8e80000> 811e0000 80e70090 39080001
[ 3.895441] ---[ end trace c2aa9ba09ea05eac ]---
[ 3.895443]
[ 4.088560] systemd-
[ 4.362062] crypto_register_alg 'aes' = 0
[ 4.362112] crypto_register_alg 'cbc(aes)' = 0
[ 4.362150] crypto_register_alg 'ctr(aes)' = 0
[ 4.362191] crypto_register_alg 'xts(aes)' = 0
[ 4.366949] pseries_rng: Registering IBM pSeries RNG driver
When I first connected to the LPAR, it was unresponsive so I restarted it from the HMC and surprisingly it came up to the login prompt and I logged into the shell. I proceeded to install the matching linux-image-
I then restarted the LPAR with xmon enabled and it would drop to xmon immediately after attempting to remount / and at the same location as before at __get_metapage+
0xd00000000649df54 <__get_
0xd00000000649df58 <__get_
0xd00000000649df5c <__get_
Just to see if this was consistent, I rebooted the system another 6 times and it fell to xmon in the same location most of the time but one time it failed on release_metapage() instead.
[ 3.507823] Unable to handle kernel paging request for data at address 0x00000000
[ 3.507835] Faulting instruction address: 0xd00000000667db5c
cpu 0x16: Vector: 300 (Data Access) at [c000000639be3520]
pc: d00000000667db5c: release_
lr: d00000000667da90: release_
sp: c000000639be37a0
msr: 800000000280b033
dar: 0
dsisr: 40000000
current = 0xc000000639918c00
paca = 0xc00000000fb8c600 softe: 0 irq_happened: 0x01
pid = 946, comm = keyboard-setup.
Linux version 4.10.0-15-generic (buildd@
Fri Mar 24 17:50:37 UTC 2017 (Ubuntu 4.10.0-
enter ? for help
[c000000639be3820] d00000000666c3b4 diRead+0x17c/0x260 [jfs]
[c000000639be38d0] d0000000066624f4 jfs_iget+0x6c/0x1e0 [jfs]
[c000000639be3900] d000000006663adc jfs_lookup+
[c000000639be3a30] c00000000034fd60 lookup_
[c000000639be3ab0] c0000000003543d8 walk_component+
[c000000639be3b30] c000000000354724 link_path_
[c000000639be3bc0] c000000000354c98 path_lookupat+
[c000000639be3c00] c000000000357390 filename_
[c000000639be3d30] c000000000347f68 vfs_fstatat+
[c000000639be3d90] c0000000003485b8 SyS_newstat+
[c000000639be3e30] c00000000000b184 system_
--- Exception: c01 (System Call) at 00003fff81e80ab0
SP (3fffd930d6c0) is in userspace
During initrd process, the log replay of the filesystem was clean:
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.
Begin: Running /scripts/
Begin: Will now check root file system ... fsck from util-linux 2.29
[/sbin/fsck.jfs (1) -- /dev/sda2] fsck.jfs -a /dev/sda2
fsck.jfs version 1.1.15, 04-Mar-2011
processing started: 4/13/2017 0:32:47
The current device is: /dev/sda2
Block size in bytes: 4096
Filesystem size in blocks: 4882812
**Phase 0 - Replay Journal Log
Filesystem is clean.
done.
done.
and on my seventh attempt it ended up booting all the way to the login prompt again where I have left it.
I built a newer kernel based on 4.10.0-19.21 sources with CONFIG_JFS_DEBUG enabled and passed jfs.jfsloglevel=4 from the kernel command line and it took a few reboots but it hit the crash and extracted the traces. I need to review the output to see if there is anything there.
Just before it faults, it called chkSuper() as part of mount (or remount) of the / volume.
[ 3.978993] __get_metapage: returning = 0xc000000386731ba8 data = 0xc0000000fcfbb000
[ 3.978994] release_metapage: mp = 0xc000000386731ba8, flag = 0x1
[ 3.991206] jfs_lookup: name = blkid.conf
[ 3.991208] __get_metapage: ino = 32, lblock = 0x10020, abs=1
[ 3.991209] __get_metapage: returning = 0xc0000003852a8868 data = 0xc00000037d880000
[ 3.991211] release_metapage: mp = 0xc0000003852a8868, flag = 0x1
[ 3.991238] jfs_lookup: name = mount.jfs
[ 3.991239] __get_metapage: ino = 4114, lblock = 0x3c013b, abs=1
[ 3.991240] __get_metapage: returning = 0xc0000003852a8868 data = 0xc0000000fcfbb000
[ 3.991241] release_metapage: mp = 0xc0000003852a8868, flag = 0x1
[ 4.003520] superblock: flag:0x10200900 state:0x00000000 size:0x251ada0
[ 4.003521] Unable to handle kernel paging request for data at address 0x00000000
[ 4.003527] __get_metapage: ino = 16, lblock = 0x0, abs=0
[ 4.003529] __get_metapage: ino = 16, lblock = 0x100002, abs=1
[ 4.003533] Faulting instruction address: 0xd0000000062effc4
Since a successful boot wraps the kernel log buffer at the point it would have logged a successful chkSuper(), I don't have a baseline to compare but it is odd that there is no
__get_metapage: returning = 0xc000000387a19330 data = 0xc0000000fcbc4000
after the first
__get_metapage: ino = 16, lblock = 0x0, abs=0
and as mentioned now it seems with the debug code included, it takes maybe five or six boots between failures but it seems consistent. Here is another crash from a different boot:
[ 4.000793] jfs_lookup: name = mount.jfs
[ 4.000795] __get_metapage: ino = 4114, lblock = 0x3c013b, abs=1
[ 4.000796] __get_metapage: returning = 0xc000000639db5208 data = 0xc0000000fdf8b000
[ 4.000798] release_metapage: mp = 0xc000000639db5208, flag = 0x1
[ 4.010217] superblock: flag:0x10200900 state:0x00000000 size:0x251ada0
[ 4.010224] Unable to handle kernel paging request for data at address 0x00000000
[ 4.010227] __get_metapage: ino = 16, lblock = 0x0, abs=0
[ 4.010240] __get_metapage: ino = 16, lblock = 0x100002, abs=1
[ 4.010242] Faulting instruction address: 0xd000000006d6ffc4
Although JFS originated from IBM, we haven't had a Linux JFS developer in years so mirroring to Canonical for their awareness of this problem and to see if they happen to have anyone knowledgeable in JFS internals while we keep trying to isolate this further.
tags: | added: kernel-da-key |
Changed in ubuntu-power-systems: | |
status: | New → Incomplete |
tags: | added: ubuntu-17.04 |
Changed in linux (Ubuntu): | |
importance: | Undecided → High |
Changed in ubuntu-power-systems: | |
importance: | Undecided → High |
Changed in linux (Ubuntu): | |
assignee: | Taco Screen team (taco-screen-team) → Ubuntu on IBM Power Systems Bug Triage (ubuntu-power-triage) |
Changed in linux (Ubuntu): | |
assignee: | Ubuntu on IBM Power Systems Bug Triage (ubuntu-power-triage) → Canonical Kernel Team (canonical-kernel-team) |
status: | New → Incomplete |
tags: | added: triage-g |
Changed in ubuntu-power-systems: | |
assignee: | nobody → Canonical Kernel Team (canonical-kernel-team) |
Changed in ubuntu-power-systems: | |
status: | Incomplete → Opinion |
Changed in linux (Ubuntu): | |
status: | Incomplete → Opinion |
Changed in ubuntu-power-systems: | |
importance: | High → Medium |
Changed in linux (Ubuntu): | |
importance: | High → Medium |
Default Comment by Bridge