Wind River Support Network

HomeDefectsLIN9-6506
Fixed

LIN9-6506 : Oops in locked_inode_to_wb_and_lock_list()

Created: Mar 1, 2018    Updated: Dec 3, 2018
Resolved Date: Mar 15, 2018
Found In Version: 9.0.0.14
Fix Version: 9.0.0.15
Severity: Standard
Applicable for: Wind River Linux 9
Component/s: Kernel

Description

As a result of stress test for USB memory stick, we got following oops:

Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = ffffff8008c9d000
1+0 records in
1+0 records out[0
1024 bytes (1.0 kB, 1.0 KiB) copied, 0.0282252 s, 36.3 kB/s
0000000] *pgd=00000003ffffe003, *pud=00000003ffffe003, *pmd=0000000000000000
Internal error: Oops: 96000006 [#1] PREEMPT SMP
Modules linked in: snps_udc udc_core iproc_rng200 rng_core softdog
CPU: 2 PID: 6 Comm: kworker/u8:0 Not tainted 4.8.26-WR9.0.0.14_standard #1
Hardware name: Broadcom NS2 SVK (DT)
Workqueue: writeback wb_workfn (flush-8:0)
task: ffffffc3701cbc00 task.stack: ffffffc370200000
PC is at locked_inode_to_wb_and_lock_list+0x40/0x2c8
LR is at writeback_sb_inodes+0x2bc/0x430
pc : [<ffffff800822f838>] lr : [<ffffff8008232bcc>] pstate: 80000145
sp : ffffffc370203a60
x29: ffffffc370203a60 x28: ffffffc36ef301c0 
x27: ffffffc36ef00b00 x26: ffffffc370200000 
x25: ffffffffffffffff x24: ffffffc370200000 
x23: ffffffc36d4ff568 x22: ffffffc370200000 
x21: ffffffc36d4ff4e0 x20: ffffffc370011000 
x19: 0000000000000000 x18: 0000000000000000 
x17: 0000007fb7396820 x16: ffffff80082380c0 
x15: 00000000000007e4 x14: 0000000000000000 
x13: 00000003e8000000 x12: 0000000000000018 
x11: 0000000000000000 x10: 0000000000000000 
x9 : 0000000000000100 x8 : ffffffc3701cc4a0 
x7 : ffffffc370098376 x6 : 0000000000000000 
x5 : ffffffc37ff8f090 x4 : ffffffc370203ac0 
x3 : ffffff8008232bc4 x2 : 0000000000000000 
x1 : 0000000000000000 x0 : ffffff8008232bcc 

Process kworker/u8:0 (pid: 6, stack limit = 0xffffffc370200020)
Stack: (0xffffffc370203a60 to 0xffffffc370204000)
3a60: ffffffc370203ac0 ffffff8008232bcc ffffffc36ef301e8 ffffffc370011000
3a80: ffffff8008be9a20 ffffff8008c6de80 0000000000000000 ffffff8008b15000
3aa0: ffffffc36d4ff4e0 ffffffc36d4ff5d0 ffffffc36ef00b00 ffffff8008c6de80
3ac0: ffffffc370203ba0 ffffff8008232de4 ffffffc36ef301c0 ffffffc370011000
3ae0: 0000000000000000 ffffffc36d4ff4e0 ffffffc36ef00b00 ffffffc36ef301e8
3b00: 00000000ffff650c ffffff8008b15000 ffffff8008b42218 ffffffc36ef00b28
3b20: 0000000000000400 ffffffc36ef30218 ffffffc36d4ff568 00000000ffff64f3
3b40: 0000000000000400 0000000000000000 0000000000000000 7fffffffffffffff
3b60: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
3b80: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
3ba0: ffffffc370203bf0 ffffff80082331c8 ffffffc36ef301c0 ffffffc36ef00b00
3bc0: ffffff8008be9a20 0000000000000000 000000000000000a 00000000ffff64f3
3be0: ffffffc36ef30218 ffffff8008b15000 ffffffc370203ca0 ffffff8008233b84
3c00: ffffffc36ef00b00 0000000000000000 ffffffc36ef301c0 0000000000000000
3c20: ffffffc36ef30334 ffffffc36ef30148 ffffffc36ef30348 ffffff8008be8000
3c40: ffffffc370200000 ffffffc36ef00b28 ffffffc370200000 000000000000324b
3c60: ffffffc370203c80 00000000ffff64f3 ffffffc370203c70 ffffffc370203c70
3c80: ffffffc370203c80 ffffffc370203c80 ffffffc370203c90 ffffffc370203c90
3ca0: ffffffc370203d70 ffffff80080b89f8 ffffffc36ef30348 ffffffc370098300
3cc0: ffffffc36f81be00 ffffffc370091000 0000000000000000 ffffffc370200000
3ce0: 0000000000000000 ffffff8008be8000 ffffffc370091078 ffffffc3700912a8
3d00: ffffffc36cfd3000 ffffffc36ef301c8 ffffffc370200000 ffffff8008b159c8
3d20: ffffff8008be9a20 ffffffc36ef30338 ffffffc370203d50 ffffff80088275e0
3d40: ffffffc370091000 ffffff80080c7480 ffffffc370203d70 ffffff80080b89d8
3d60: ffffffc36ef30348 ffffffc370098300 ffffffc370203dc0 ffffff80080b8d20
3d80: ffffffc370098300 ffffffc370091000 ffffffc370098330 ffffffc370091020
3da0: ffffff8008b15000 ffffffc370200000 ffffff8008be81ed ffffffc370091020
3dc0: ffffffc370203e20 ffffff80080bf540 ffffffc37009b580 ffffff8008bf3798
3de0: ffffff8008956380 ffffffc370200000 ffffffc370098300 ffffff80080b8cd0
3e00: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
3e20: 0000000000000000 ffffff8008083690 ffffff80080bf458 ffffffc37009b580
3e40: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
3e60: ffffffc3701cb000 0000000000000000 0000000000000000 ffffffc370098300
3e80: ffffffc300000000 ffffff8000000000 ffffffc370203e90 ffffffc370203e90
3ea0: 0000000000000000 ffffff8000000000 ffffffc370203eb0 ffffffc370203eb0
3ec0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
3ee0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
3f00: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
3f20: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
3f40: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
3f60: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
3f80: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
3fa0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
3fc0: 0000000000000000 0000000000000005 0000000000000000 0000000000000000
3fe0: 0000000000000000 0000000000000000 00000003f0203ff0 00000003f0203ff8
Call trace:
Exception stack(0xffffffc370203890 to 0xffffffc3702039c0)
3880:                                   0000000000000000 0000008000000000
38a0: ffffffc370203a60 ffffff800822f838 ffffffc36d4ff658 ffffffc370203b40
38c0: ffffffc370203b40 ffffff8008c6de80 0000000000000400 ffffff8008b15000
38e0: ffffffc36d4ff658 ffffffc36d4ff5d0 ffffffc36ef00b00 ffffffc36ef301c0
3900: ffffffc36e51b080 ffffff80086a1998 0000000170203950 ffffff8008b159c8
3920: ffffffc370203960 ffffff800847a4d4 ffffff8008232bcc 0000000000000000
3940: 0000000000000000 ffffff8008232bc4 ffffffc370203ac0 ffffffc37ff8f090
3960: 0000000000000000 ffffffc370098376 ffffffc3701cc4a0 0000000000000100
3980: 0000000000000000 0000000000000000 0000000000000018 00000003e8000000
39a0: 0000000000000000 00000000000007e4 ffffff80082380c0 0000007fb7396820
[<ffffff800822f838>] locked_inode_to_wb_and_lock_list+0x40/0x2c8
[<ffffff8008232bcc>] writeback_sb_inodes+0x2bc/0x430
[<ffffff8008232de4>] __writeback_inodes_wb+0xa4/0xe8
[<ffffff80082331c8>] wb_writeback+0x2e8/0x3a0
[<ffffff8008233b84>] wb_workfn+0x114/0x4c8
[<ffffff80080b89f8>] process_one_work+0x1e8/0x4c0
[<ffffff80080b8d20>] worker_thread+0x50/0x4a0
[<ffffff80080bf540>] kthread+0xe8/0x100
[<ffffff8008083690>] ret_from_fork+0x10/0x40
Code: aa1603fa 92800019 d503201f f94082b3 (f9400260) 
---[ end trace db116105f9b5c8f5 ]---
note: kworker/u8:0[6] exited with preempt_count 1

After applied following patch from the upstream, the issue was resolved:

  - block: Fix oops in locked_inode_to_wb_and_lock_list()
    https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f759741d9d913eb57784a94b9bca78b376fc26a9

Steps to Reproduce

1. Set up the project:

   ./wrlinux-9/setup.sh --machine bcm-587xx

   I used BCM58712, but I think this issue doesn't depend on specific target.

2. Add stress package to the image:

   conf/local.conf:
   IMAGE_INSTALL += " stress"

3. Build the images:

   bitbake wrlinux-image-glibc-std

4. Boot the target

5. Insert USB memory stick with one partition to the target

6. Run attached test.sh (please replace /dev/sda1 with appropriate device file if the USB memory stick is recognized as different name)

I attached the log as oops.log.  The issue was reproduced less then 10 minutes on BCM58712.

Other Downloads


Live chat
Online