Spinlock recursion after root nfs mount

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

Has anyone been trying to boot w/k.org lately?

I tried with:
- commit e0e736fc + 2 patches attached I got from patchworks
- 4430SDP w/ES2.1
- Busybox FS through NFS.

I see the attached log, which shows a spinlock recursion bug.

I did a git bisect, and found this offending commit:

34286d6662308d82aed891852d04c7c3a2649b16 is the first bad commit
commit 34286d6662308d82aed891852d04c7c3a2649b16
Author: Nick Piggin <npiggin@xxxxxxxxx>
Date:   Fri Jan 7 17:49:57 2011 +1100

    fs: rcu-walk aware d_revalidate method
    
    Require filesystems be aware of .d_revalidate being called in rcu-walk
    mode (nd->flags & LOOKUP_RCU). For now do a simple push down, returning
    -ECHILD from all implementations.
    
    Signed-off-by: Nick Piggin <npiggin@xxxxxxxxx>

:040000 040000 409693ac5c32f4daa0c9be786e85b04dea32a24f 1813b382a41b72ccb5d810c282639961e6d81b73 M	Documentation
:040000 040000 a51e00e2f5335f8804e9e5fab10a26b0d67ac302 333fc859d8d1f2badea9023072e1ab356f042215 M	drivers
:040000 040000 53158279a9808c50157dd4b6ec5c35951b3a60af 301c546b257a5b4f3f09289fc5e8f55e66b2b6b9 M	fs
:040000 040000 e68ac1512333db998dc539a40a2b43dcee9cb074 f238839ffc4021e276be9d39d4e9c510575c9f44 M	include

And I narrowed it down to this line:

In file fs/namei.c:

...
...
static int nameidata_dentry_drop_rcu(struct nameidata *nd, struct dentry *dentry)
{
	struct fs_struct *fs = current->fs;
	struct dentry *parent = nd->path.dentry;

	BUG_ON(!(nd->flags & LOOKUP_RCU));
	if (nd->root.mnt) {
		spin_lock(&fs->lock);
		if (nd->root.mnt != fs->root.mnt ||
				nd->root.dentry != fs->root.dentry)
			goto err_root;
	}
	spin_lock(&parent->d_lock);
	spin_lock_nested(&dentry->d_lock, DENTRY_D_LOCK_NESTED); <-- HERE THE RECURSION IS FIRED UP
...
...

I had been googling around and I just saw Uwe & Santosh reporting the problem in LKML, but nobody has answered.

Has anyone seen this aswell in other platforms? (OMAP3 based boards)

Regards,
Sergio

## Booting image at 80300000 ...
   Image Name:   Linux-2.6.37-03740-gbc4a241
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2941368 Bytes =  2.8 MB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
[    0.000000] Linux version 2.6.37-03740-gbc4a241 (x0091359@dtx0091359-ubuntu-1) (gcc version 4.4.1 (Sourcery G++ Lite 2010q1-202) ) #3 SMP Mon Jan 10 15:09:12 CST 2011
[    0.000000] CPU: ARMv7 Processor [411fc092] revision 2 (ARMv7), cr=10c53c7f
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine: OMAP4430 4430SDP board
[    0.000000] Memory policy: ECC disabled, Data cache writealloc
[    0.000000] Truncating RAM at a0000000-bfffffff to -afffffff (vmalloc region overlap).
[    0.000000] OMAP4430 ES2.0
[    0.000000] SRAM: Mapped pa 0x40300000 to va 0xfe400000 size: 0xe000
[    0.000000] FIXME: omap44xx_sram_init not implemented
[    0.000000] PERCPU: Embedded 7 pages/cpu @c115f000 s6048 r8192 d14432 u32768
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 181248
[    0.000000] Kernel command line: console=ttyO2,115200n8 root=/dev/nfs rw nfsroot=128.247.78.218:/home/x0091359/my-nfs/busybox,tcp,rsize=4096,wsize=4096 mem=458M@0x80000000 mem=512M@0xA0000000 noinitrd ip=dh"
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Memory: 458MB 512MB = 970MB total
[    0.000000] Memory: 712916k/712916k available, 18220k reserved, 0K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     DMA     : 0xffc00000 - 0xffe00000   (   2 MB)
[    0.000000]     vmalloc : 0xf0800000 - 0xf8000000   ( 120 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xf0000000   ( 768 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .init : 0xc0008000 - 0xc0052000   ( 296 kB)
[    0.000000]       .text : 0xc0052000 - 0xc0583a94   (5319 kB)
[    0.000000]       .data : 0xc0584000 - 0xc05f9240   ( 469 kB)
[    0.000000] Hierarchical RCU implementation.
[    0.000000]  RCU-based detection of stalled CPUs is disabled.
[    0.000000] NR_IRQS:402
[    0.000000] ------------[ cut here ]------------
[    0.000000] WARNING: at arch/arm/mach-omap2/clockdomain.c:876 omap2_clkdm_deny_idle+0x4c/0x7c()
[    0.000000] clockdomain: OMAP4 wakeup/sleep dependency support is not yet implemented
[    0.000000] Modules linked in:
[    0.000000] [<c0063290>] (unwind_backtrace+0x0/0xe4) from [<c0093f60>] (warn_slowpath_common+0x4c/0x64)
[    0.000000] [<c0093f60>] (warn_slowpath_common+0x4c/0x64) from [<c0093ff8>] (warn_slowpath_fmt+0x2c/0x3c)
[    0.000000] [<c0093ff8>] (warn_slowpath_fmt+0x2c/0x3c) from [<c0073bd4>] (omap2_clkdm_deny_idle+0x4c/0x7c)
[    0.000000] [<c0073bd4>] (omap2_clkdm_deny_idle+0x4c/0x7c) from [<c0074148>] (clkdm_init+0x134/0x178)
[    0.000000] [<c0074148>] (clkdm_init+0x134/0x178) from [<c000eef4>] (omap2_init_common_infrastructure+0x7c/0x14c)
[    0.000000] [<c000eef4>] (omap2_init_common_infrastructure+0x7c/0x14c) from [<c0018220>] (omap_4430sdp_init_irq+0x20/0x48)
[    0.000000] [<c0018220>] (omap_4430sdp_init_irq+0x20/0x48) from [<c000b534>] (init_IRQ+0x14/0x1c)
[    0.000000] [<c000b534>] (init_IRQ+0x14/0x1c) from [<c0008970>] (start_kernel+0x188/0x2fc)
[    0.000000] [<c0008970>] (start_kernel+0x188/0x2fc) from [<80008038>] (0x80008038)
[    0.000000] ---[ end trace 1b75b31a2719ed1c ]---
[    0.000000] omap_hwmod: l3_div_ck: missing clockdomain for l3_div_ck.
[    0.000000] omap_hwmod: dpll_mpu_m2_ck: missing clockdomain for dpll_mpu_m2_ck.
[    0.000000] GPMC revision 6.0
[    0.000000] OMAP clockevent source: GPTIMER1 at 32768 Hz
[    0.000000] Console: colour dummy device 80x30
[    0.000000] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[    0.000000] ... MAX_LOCKDEP_SUBCLASSES:  8
[    0.000000] ... MAX_LOCK_DEPTH:          48
[    0.000000] ... MAX_LOCKDEP_KEYS:        8191
[    0.000000] ... CLASSHASH_SIZE:          4096
[    0.000000] ... MAX_LOCKDEP_ENTRIES:     16384
[    0.000000] ... MAX_LOCKDEP_CHAINS:      32768
[    0.000000] ... CHAINHASH_SIZE:          16384
[    0.000000]  memory used by lock dependency info: 3695 kB
[    0.000000]  per task-struct memory footprint: 1152 bytes
[    0.000000] Calibrating delay loop... 2009.29 BogoMIPS (lpj=7847936)
[    0.000000] pid_max: default: 32768 minimum: 301
[    0.000000] Security Framework initialized
[    0.000000] Mount-cache hash table entries: 512
[    0.000000] CPU: Testing write buffer coherency: ok
[    0.000000] L310 cache controller enabled
[    0.000000] l2x0: 16 ways, CACHE_ID 0x410000c4, AUX_CTRL 0x7e470000, Cache size: 1048576 B
[    0.000000] CPU1: Booted secondary processor
[    0.000000] CPU1: Unknown IPI message 0x1
[    0.000000] Brought up 2 CPUs
[    0.000000] SMP: Total of 2 processors activated (4022.78 BogoMIPS).
[    0.000000] regulator: core version 0.5
[    0.000000] regulator: dummy: 
[    0.000000] NET: Registered protocol family 16
[    0.000000] OMAP GPIO hardware version 0.1
[    0.000000] OMAP GPIO hardware version 0.1
[    0.000000] OMAP GPIO hardware version 0.1
[    0.000000] OMAP GPIO hardware version 0.1
[    0.000000] OMAP GPIO hardware version 0.1
[    0.000000] OMAP GPIO hardware version 0.1
[    0.000000] omap_mux_init: Add partition: #1: core, flags: 2
[    0.000000] omap_mux_init: Add partition: #2: wkup, flags: 2
[    0.000000] hw-breakpoint: found 6 breakpoint and 1 watchpoint registers.
[    0.000000] hw-breakpoint: 1 breakpoint(s) reserved for watchpoint single-step.
[    0.000000] hw-breakpoint: maximum watchpoint size is 4 bytes.
[    0.000000] pm_dbg_init: only OMAP3 supported
[    0.000000] OMAP DMA hardware revision 0.0
[    0.000000] sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps every 131071999ms
[    0.020782] bio: create slab <bio-0> at 0
[    0.024902] SCSI subsystem initialized
[    0.028961] usbcore: registered new interface driver usbfs
[    0.029388] usbcore: registered new interface driver hub
[    0.029693] usbcore: registered new device driver usb
[    0.030395] omap_device: omap_i2c.1: new worst case activate latency 0: 30517
[    0.039581] omap_i2c omap_i2c.1: bus 1 rev4.0 at 400 kHz
[    0.056335] Skipping twl internal clock init and using bootloader value (unknown osc rate)
[    0.057159] twl6030: PIH (irq 39) chaining IRQs 368..387
[    0.103454] regulator: VMMC: 1200 <--> 3000 mV at 3000 mV normal standby
[    0.104614] regulator: VPP: 1800 <--> 2500 mV at 1900 mV normal standby
[    0.105712] regulator: VUSIM: 1200 <--> 2900 mV at 1800 mV normal standby
[    0.106628] regulator: VANA: 2100 mV normal standby
[    0.107543] regulator: VCXIO: 1800 mV normal standby
[    0.108520] regulator: VDAC: 1800 mV normal standby
[    0.109619] regulator: VAUX1_6030: 1000 <--> 3000 mV at 2800 mV normal standby
[    0.110900] regulator: VAUX2_6030: 1200 <--> 2800 mV at 1800 mV normal standby
[    0.111968] regulator: VAUX3_6030: 1000 <--> 3000 mV at 1200 mV normal standby
[    0.125427] omap_i2c omap_i2c.2: bus 2 rev4.0 at 400 kHz
[    0.125823] omap_device: omap_i2c.2: new worst case deactivate latency 0: 30517
[    0.141052] omap_i2c omap_i2c.3: bus 3 rev4.0 at 400 kHz
[    0.156677] omap_i2c omap_i2c.4: bus 4 rev4.0 at 400 kHz
[    0.160461] Switching to clocksource 32k_counter
[    0.164428] Clockevents: could not switch to one-shot mode:
[    0.164459] Clockevents: could not switch to one-shot mode: dummy_timer is not functional.
[    0.164459] Could not switch to high resolution mode on CPU 1
[    0.164459]  dummy_timer is not functional.
[    0.164489] Could not switch to high resolution mode on CPU 0
[    0.203369] NET: Registered protocol family 2
[    0.203765] IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.204833] TCP established hash table entries: 131072 (order: 8, 1048576 bytes)
[    0.207427] TCP bind hash table entries: 65536 (order: 9, 2359296 bytes)
[    0.222564] TCP: Hash tables configured (established 131072 bind 65536)
[    0.222717] TCP reno registered
[    0.222778] UDP hash table entries: 512 (order: 3, 40960 bytes)
[    0.223022] UDP-Lite hash table entries: 512 (order: 3, 40960 bytes)
[    0.223724] NET: Registered protocol family 1
[    0.224487] RPC: Registered udp transport module.
[    0.224487] RPC: Registered tcp transport module.
[    0.224517] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.225006] NetWinder Floating Point Emulator V0.97 (double precision)
[    0.357452] VFS: Disk quotas dquot_6.5.2
[    0.357604] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.358795] JFFS2 version 2.2. (NAND) (SUMMARY)  �© 2001-2006 Red Hat, Inc.
[    0.359344] msgmni has been set to 1392
[    0.361236] io scheduler noop registered
[    0.361236] io scheduler deadline registered
[    0.361328] io scheduler cfq registered (default)
[    0.363250] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.555511] omap_uart.0: ttyO0 at MMIO 0x4806a000 (irq = 104) is a OMAP UART0
[    0.633239] omap_uart.1: ttyO1 at MMIO 0x4806c000 (irq = 105) is a OMAP UART1
[    0.711364] omap_uart.2: ttyO2 at MMIO 0x48020000 (irq = 106) is a OMAP UART2
[    1.573364] console [ttyO2] enabled
[    1.633239] omap_uart.3: ttyO3 at MMIO 0x4806e000 (irq = 102) is a OMAP UART3
[    1.717437] brd: module loaded
[    1.727691] loop: module loaded
[    1.733734] mtdoops: mtd device (mtddev=name/number) must be supplied
[    1.740539] omap2-nand driver initializing
[    1.745117] OneNAND driver initializing
[    1.751617] ks8851 spi1.0: message enable is 0
[    1.760925] ks8851 spi1.0: eth0: revision 0, MAC aa:0a:d6:0b:de:e3, IRQ 194
[    1.769439] usbcore: registered new interface driver asix
[    1.775299] usbcore: registered new interface driver cdc_ether
[    1.781646] usbcore: registered new interface driver net1080
[    1.787750] usbcore: registered new interface driver cdc_subset
[    1.794189] usbcore: registered new interface driver zaurus
[    1.800048] cdc_ncm: 30-Nov-2010
[    1.803649] usbcore: registered new interface driver cdc_ncm
[    1.810546] usbcore: registered new interface driver cdc_wdm
[    1.816467] Initializing USB Mass Storage driver...
[    1.821838] usbcore: registered new interface driver usb-storage
[    1.828094] USB Mass Storage support registered.
[    1.833465] usbcore: registered new interface driver libusual
[    1.839721] usbcore: registered new interface driver usbtest
[    1.845672] udc: OMAP UDC driver, version: 4 October 2004 (iso) (dma)
[    1.853759] mousedev: PS/2 mouse device common for all mice
[    1.860687] input: gpio-keys as /devices/platform/gpio-keys/input/input0
[    1.870574] input: twl4030_pwrbutton as /devices/platform/omap/omap_i2c.1/i2c-1/1-0049/twl4030_pwrbutton/input/input1
[    1.883117] twl_rtc twl_rtc: rtc core: registered twl_rtc as rtc0
[    1.889617] omap_device: omap_i2c.1: new worst case activate latency 0: 61035
[    1.898864] i2c /dev entries driver
[    1.904846] Driver for 1-wire Dallas network protocol.
[    1.911041] omap_device: omap_wdt.-1: new worst case activate latency 0: 30517
[    1.919616] OMAP Watchdog Timer Rev 0x00: initial timeout 60 sec
[    1.926391] twl4030_wdt twl4030_wdt: Failed to register misc device
[    1.933166] twl4030_wdt: probe of twl4030_wdt failed with error -16
[    1.949035] usbcore: registered new interface driver usbhid
[    1.954895] usbhid: USB HID core driver
[    1.958892] oprofile: hardware counters not available
[    1.964263] oprofile: using timer interrupt.
[    1.969024] TCP cubic registered
[    1.972442] Initializing XFRM netlink socket
[    1.976989] NET: Registered protocol family 17
[    1.981689] NET: Registered protocol family 15
[    1.986602] Registering the dns_resolver key type
[    1.991760] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 1
[    2.000244] ThumbEE CPU extension supported.
[    2.009521] omap2_set_init_voltage: unable to find boot up OPP for vdd_mpu
[    2.016693] omap2_set_init_voltage: Unable to put vdd_mpu to its init voltage
[    2.016723] 
[    2.026214] omap2_set_init_voltage: unable to find boot up OPP for vdd_iva
[    2.033416] omap2_set_init_voltage: Unable to put vdd_iva to its init voltage
[    2.033447] 
[    2.042480] Power Management for TI OMAP4.
[    2.062255] clock: disabling unused clocks to save power
[    2.070251] regulator_init_complete: incomplete constraints, leaving VAUX3_6030 on
[    2.078430] regulator_init_complete: incomplete constraints, leaving VAUX2_6030 on
[    2.086791] regulator_init_complete: incomplete constraints, leaving VDAC on
[    2.094390] regulator_init_complete: incomplete constraints, leaving VCXIO on
[    2.102050] regulator_init_complete: incomplete constraints, leaving VANA on
[    2.109649] regulator_init_complete: incomplete constraints, leaving VUSIM on
[    2.117431] regulator_init_complete: incomplete constraints, leaving VPP on
[    2.125793] twl_rtc twl_rtc: setting system clock to 2000-01-01 01:21:35 UTC (946689695)
[    2.141754] mmc0: host does not support reading read-only switch. assuming write-enable.
[    2.152374] mmc0: new high speed SD card at address 88f7
[    2.159515] mmcblk0: mmc0:88f7 SD02G 1.84 GiB 
[    2.167419]  mmcblk0: p1 p2
[    2.321868] mmc1: new high speed MMC card at address 0001
[    2.328125] mmcblk1: mmc1:0001 SEM08G 7.39 GiB 
[    2.338836]  mmcblk1: unknown partition table
[    3.648803] Sending DHCP requests .., OK
[    6.672271] IP-Config: Got DHCP answer from 0.0.0.0, my address is 128.247.79.61
[    6.681243] IP-Config: Complete:
[    6.684631]      device=eth0, addr=128.247.79.61, mask=255.255.254.0, gw=128.247.78.2,
[    6.692657]      host=128.247.79.61, domain=am.dhcp.ti.com, nis-domain=(none),
[    6.700225]      bootserver=0.0.0.0, rootserver=128.247.78.218, rootpath=
[    6.875518] VFS: Mounted root (nfs filesystem) on device 0:13.
[    6.881774] Freeing init memory: 296K
[    8.000671] BUG: spinlock recursion on CPU#0, init/1
[    8.005859]  lock: ef5a1e0c, .magic: dead4ead, .owner: init/1, .owner_cpu: 0
[    8.013275] [<c0063290>] (unwind_backtrace+0x0/0xe4) from [<c024cbd4>] (do_raw_spin_lock+0x48/0x158)
[    8.022827] [<c024cbd4>] (do_raw_spin_lock+0x48/0x158) from [<c012f24c>] (nameidata_dentry_drop_rcu+0x84/0x17c)
[    8.033386] [<c012f24c>] (nameidata_dentry_drop_rcu+0x84/0x17c) from [<c012f374>] (d_revalidate+0x30/0x58)
[    8.043518] [<c012f374>] (d_revalidate+0x30/0x58) from [<c0131e8c>] (link_path_walk+0xb44/0xb64)
[    8.052734] [<c0131e8c>] (link_path_walk+0xb44/0xb64) from [<c01320a4>] (do_path_lookup+0x44/0xcc)
[    8.062103] [<c01320a4>] (do_path_lookup+0x44/0xcc) from [<c0132c74>] (do_filp_open+0xc8/0x56c)
[    8.071197] [<c0132c74>] (do_filp_open+0xc8/0x56c) from [<c0124594>] (do_sys_open+0x58/0xe4)
[    8.080047] [<c0124594>] (do_sys_open+0x58/0xe4) from [<c005c240>] (ret_fast_syscall+0x0/0x3c)


Attachment: 0002-omap3-clocks-Fix-build-error-CK_3430ES2-undeclared-h.patch
Description: 0002-omap3-clocks-Fix-build-error-CK_3430ES2-undeclared-h.patch

Attachment: 0001-Build-breakage-with-omap2plus_defconfig.patch
Description: 0001-Build-breakage-with-omap2plus_defconfig.patch


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux