2014-01-11, José Vázquez <[email protected]>:
> 2014/1/3, danitool <[email protected]>:
>> I'm also having these problems. The bug is very easy to reproduce. Just
>> using the jffs2 image instead of squashfs, the problems are shown with
>> the
>> first boot, and you can see lot of funny names just listing /etc/init.d
>>
>> root@(none):/# ls -l /etc/init.d/
>> -rwxr-xr-x 1 root root 1993 Jan 2 2014 boot
>> -rwxr-xr-x 1 root root 368 Dec 20 2013 ciciixixmeme
>> -rwxr-xr-x 1 root root 729 Dec 20 2013 cron
>> -rwxr-xr-x 1 root root 3920 Jan 2 2014 dropbear
>> -rwxr-xr-x 1 root root 4173 Jan 2 2014 eleld?d
>> -rwxr-xr-x 1 root root 262 Jan 2 2014 firellll
>> -rwxr-xr-x 1 root root 2015 Dec 20 2013 led
>> -rwxr-xr-x 1 root root 926 Dec 20 2013 lnlnet
>> -rwxr-xr-x 1 root root 1694 Jan 2 2014 log
>> -rwxr-xr-x 1 root root 835 Dec 20 2013
>> lucihchcmimigrate
>> -rwxr-xr-x 1 root root 308 Dec 20 2013 nene
>> -rwxr-xr-x 1 root root 125 Dec 20 2013 scsctl
>> -rwxr-xr-x 1 root root 13640 Jan 2 2014 smsmq?q
>> -rwxr-xr-x 1 root root 718 Dec 20 2013 snsnd?d
>> -rwxr-xr-x 1 root root 945 Jan 2 2014 twtwk?k
>> -rwxr-xr-x 1 root root 3324 Jan 2 2014 uhttpd
>> -rwxr-xr-x 1 root root 106 Jan 2 2014 umount
>> -rwxr-xr-x 1 root root 522 Dec 20 2013 ununndnd
>>
>> It's like a baby learning to talk.
>>
>> Since this is happening when using a jffs2 image, overlayfs isn't used,
>> isn't it?, then the problem shouldn't be related to the overlayfs driver.
>>
Checking "Debug object operations" (DEBUG_OBJECTS) and its related
options, and "Lock debugging: prove locking correctness"
(PROVE_LOCKING) the kernel shows this warning in a board based in
BCM6368 (parallel flash), with and without SMP enabled:
[ 5.854166] hub 2-0:1.0: USB hub found
[ 5.854166] hub 2-0:1.0: 1 port detected
[ 5.874999] usbcore: registered new interface driver usb-storage
kmod: ran 1 iterations
[ 7.041666] jffs2: notice: (251) jffs2_build_xattr_subsystem:
complete building xattr subsystem, 1 of xdatum (0 unchecked,.
[ 7.062499] ------------[ cut here ]------------
[ 7.062499] WARNING: at lib/debugobjects.c:260 debug_print_object+0xb8/0xe4()
[ 7.062499] ODEBUG: assert_init not available (active state 0)
object type: timer_list hint: stub_timer+0x0/0x10
[ 7.062499] Modules linked in: usb_storage ohci_hcd ehci_platform
ehci_hcd sd_mod scsi_mod ext4 crc16 jbd2 mbcache usbcoreh
[ 7.062499] CPU: 0 PID: 251 Comm: block Not tainted 3.10.28 #3
[ 7.062499] Stack : 00000000 00000000 8040b842 00000032 00000000
83a24f10 803248a0 8039a1e3
000000fb 00000000 8040afe8 83a24f10 8381fa80 0045d65c
7f8b5630 8002dbd4
803a3288 8002afc4 00000000 00000000 80327888 830ebc8c
830ebc8c 803248a0
00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000
00000000 830ebc20
...
[ 7.062499] Call Trace:
[ 7.062499] [<80020e6c>] show_stack+0x48/0x70
[ 7.062499] [<8002b0b8>] warn_slowpath_common+0x78/0xa8
[ 7.062499] [<8002b114>] warn_slowpath_fmt+0x2c/0x38
[ 7.062499] [<8019b0b8>] debug_print_object+0xb8/0xe4
[ 7.062499] [<8019bfd4>] debug_object_assert_init+0xd0/0x13c
[ 7.062499] [<8003ae04>] del_timer+0x20/0x7c
[ 7.062499] [<80047ed4>] try_to_grab_pending+0x40/0x1c8
[ 7.062499] [<800495c8>] __cancel_work_timer+0x34/0x13c
[ 7.062499] [<801521e8>] jffs2_sync_fs+0x20/0x54
[ 7.062499] [<80108550>] sync_filesystem+0x60/0xbc
[ 7.062499] [<800dc158>] generic_shutdown_super+0x34/0xdc
[ 7.062499] [<801e0468>] kill_mtd_super+0x14/0x30
[ 7.062499] [<80152018>] jffs2_kill_sb+0x34/0x4c
[ 7.062499] [<800dbf8c>] deactivate_locked_super+0x48/0x84
[ 7.062499] [<800fab28>] SyS_umount+0x338/0x3ac
[ 7.062499] [<800128e8>] stack_done+0x20/0x44
[ 7.062499]
[ 7.062499] ---[ end trace 75b840b26e82af40 ]---
[ 7.229166] INFO: trying to register non-static key.
[ 7.229166] the code is fine but needs lockdep annotation.
[ 7.229166] turning off the locking correctness validator.
[ 7.229166] CPU: 0 PID: 251 Comm: block Tainted: G W 3.10.28 #3
[ 7.229166] Stack : 00000000 00000000 8040b842 0000003d 00000000
83a24f10 803248a0 8039a1e3
000000fb 00000000 8040afe8 83a24f10 83bb32a0 00000000
00000000 8002dbd4
00000002 8002af50 00000000 00000000 80327888 830ebc84
830ebc84 803248a0
00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000
00000000 830ebc18
...
[ 7.229166] Call Trace:
[ 7.229166] [<80020e6c>] show_stack+0x48/0x70
[ 7.229166] [<80070ab4>] __lock_acquire.isra.18+0x1ec/0xcb8
[ 7.229166] [<80071dd4>] lock_acquire+0xe0/0x160
[ 7.229166] [<800492dc>] flush_work+0x54/0x30c
[ 7.229166] [<80049668>] __cancel_work_timer+0xd4/0x13c
[ 7.229166] [<801521e8>] jffs2_sync_fs+0x20/0x54
[ 7.229166] [<80108550>] sync_filesystem+0x60/0xbc
[ 7.229166] [<800dc158>] generic_shutdown_super+0x34/0xdc
[ 7.229166] [<801e0468>] kill_mtd_super+0x14/0x30
[ 7.229166] [<80152018>] jffs2_kill_sb+0x34/0x4c
[ 7.229166] [<800dbf8c>] deactivate_locked_super+0x48/0x84
[ 7.229166] [<800fab28>] SyS_umount+0x338/0x3ac
[ 7.229166] [<800128e8>] stack_done+0x20/0x44
[ 7.229166]
mount_root: jffs2 is ready
[ 7.374999] jffs2: notice: (248) jffs2_build_xattr_subsystem:
complete building xattr subsystem, 1 of xdatum (0 unchecked,.
ifconfig: SIOCGIFFLAGS: No such device
procd: - early -
procd: - ubus -
procd: - init -
Please press Enter to activate this console.
[ 10.624999] Loading modules backported from Linux version
master-2013-11-05-0-gafa3093
This message appears too with BCM6358 (parallel flash); also note the
two "jffs2: notice:":
[ 10.248000] device: 'ep_00': device_add
[ 10.288000] jffs2: notice: (318) jffs2_build_xattr_subsystem:
complete building xattr subsystem, 1 of xdatum (0 unchecked,.
[ 10.308000] ------------[ cut here ]------------
[ 10.308000] WARNING: at lib/debugobjects.c:260 debug_print_object+0xb8/0xe4()
[ 10.308000] ODEBUG: assert_init not available (active state 0)
object type: timer_list hint: stub_timer+0x0/0x10
[ 10.308000] Modules linked in: usb_storage ohci_hcd ehci_platform
ehci_hcd sd_mod scsi_mod ext4 crc16 jbd2 mbcache usbcoreh
[ 10.308000] CPU: 0 PID: 318 Comm: block Not tainted 3.10.28 #8
[ 10.308000] Stack : 00000000 00000000 00000000 00000000 8037b762
00000032 82cc68c0 0045c96c
802a94f8 803070bb 0000013e 8037af18 82cc68c0 0045c96c
83819be0 0045d65c
7fc9bb80 8002a944 00000003 8002806c 00000000 00000000
802ac7ec 82fbbc94
00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000
00000000 82fbbc20
...
[ 10.308000] Call Trace:
[ 10.308000] [<8001f3f8>] show_stack+0x48/0x70
[ 10.308000] [<80028160>] warn_slowpath_common+0x78/0xa8
[ 10.308000] [<800281bc>] warn_slowpath_fmt+0x2c/0x38
[ 10.308000] [<80168454>] debug_print_object+0xb8/0xe4
[ 10.308000] [<801692a4>] debug_object_assert_init+0xdc/0x110
[ 10.308000] [<80036a60>] del_timer+0x20/0x7c
[ 10.308000] [<8004265c>] try_to_grab_pending+0x40/0x1c0
[ 10.308000] [<80043d5c>] __cancel_work_timer+0x34/0x138
[ 10.308000] [<8012793c>] jffs2_sync_fs+0x20/0x50
[ 10.308000] [<800e18b8>] sync_filesystem+0x60/0xbc
[ 10.308000] [<800b8d00>] generic_shutdown_super+0x34/0xdc
[ 10.308000] [<801ab408>] kill_mtd_super+0x14/0x30
[ 10.308000] [<8012776c>] jffs2_kill_sb+0x34/0x4c
[ 10.308000] [<800b8b34>] deactivate_locked_super+0x48/0x84
[ 10.308000] [<800d4968>] SyS_umount+0x328/0x39c
[ 10.308000] [<800127fc>] stack_done+0x20/0x44
[ 10.308000]
[ 10.308000] ---[ end trace 8df3a1bac73ffb9b ]---
mount_root: jffs2 is ready
[ 10.520000] jffs2: notice: (315) jffs2_build_xattr_subsystem:
complete building xattr subsystem, 1 of xdatum (0 unchecked,.
As reference tested the same options in other boards based in BCM6328
(SPI flash), RT3052 (SPI flash) and Lantiq Danube (parallel flash)
only shows a warning when issuing "sync" or "reboot"; the BCM6358 and
BCM6368 show the same message too:
root@OpenWrt:/# sync
[ 49.464000] ------------[ cut here ]------------
[ 49.464000] WARNING: at lib/debugobjects.c:260 debug_print_object+0xb8/0xe4()
[ 49.464000] ODEBUG: assert_init not available (active state 0)
object type: timer_list hint: stub_timer+0x0/0x10
[ 49.464000] Modules linked in: iptable_nat ath5k ath nf_nat_ipv4
nf_conntrack_ipv4 mac80211 iptable_raw iptable_mangle iptg
[ 49.464000] CPU: 0 PID: 708 Comm: sync Not tainted 3.10.28 #1
[ 49.464000] Stack : 00000000 00000000 00000000 00000000 805f339a
00000031 805f339a 20000000
803a2320 80585d3b 000002c4 805f2b3c 82950378 20000000
805a0000 82b55f24
801011e4 80025fb8 00000003 80023538 00000000 00000000
803a4d50 82b55d1c
00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000
00000000 82b55ca8
...
[ 49.464000] Call Trace:
[ 49.464000] [<80017e1c>] show_stack+0x48/0x70
[ 49.464000] [<8002362c>] warn_slowpath_common+0x78/0xa8
[ 49.464000] [<80023688>] warn_slowpath_fmt+0x2c/0x38
[ 49.464000] [<801a340c>] debug_print_object+0xb8/0xe4
[ 49.464000] [<801a4290>] debug_object_assert_init+0xe4/0x118
[ 49.464000] [<800330cc>] del_timer+0x20/0x7c
[ 49.464000] [<800402c4>] try_to_grab_pending+0x58/0x1e8
[ 49.464000] [<80041c40>] __cancel_work_timer+0x34/0x13c
[ 49.464000] [<8014fc20>] jffs2_sync_fs+0x20/0x54
[ 49.464000] [<800d6834>] iterate_supers+0xa4/0x124
[ 49.464000] [<80101588>] sys_sync+0x44/0x9c
[ 49.464000] [<800081b0>] stack_done+0x20/0x44
[ 49.464000]
[ 49.464000] ---[ end trace 45721bde3753589b ]---
I'm pretty sure that the jffs2 file name corruption problem doesn't
happen BCM63xx SoCs with spi flash and smp enabled, so, if this is
correct, seems to be a race condition between the flash type, jffs2
and some Broadcom SoCs, as Jonas pointed some time ago.
These warnings are easily reproducible enabling the mentioned options
in the kernel.
Initially my intention was to send this information to linux-mips but,
because these warnings can be repeated easily i think that this should
be discussed by more skilled and experienced people.
Some other options inside "Kernel hacking" couldn't be tested because
with them enabled the CFE of the VR-3025un was unable to uncompress
the firmware.
Regards:
José
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel