All of lore.kernel.org
 help / color / mirror / Atom feed
* newest 4.6.0-08907-g7639dad on sparc64 - possible irq lock inversion dependency detected
@ 2016-05-23 19:07 Meelis Roos
  2016-05-23 22:23 ` David Miller
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Meelis Roos @ 2016-05-23 19:07 UTC (permalink / raw)
  To: sparclinux

I tested todays 4.6.0-08907-g7639dad on most of my sparc64 computers, 
from Ultra 1 to T5120, doing local git clone + rm -rf to the cloned 
tree. All computers were fine except my V240 whete I have turned on some 
additional debugging options to catch a spontaneous reboot. On the V240, 
I get a "possible irq lock inversion dependency detected" warning 
(below, in the full dmesg).

This may or may not be related to the current changes - I rememeber 
having seen and reported another lockdep issue in the past but can't 
find the sent mail right now.


[    0.000000] PROMLIB: Sun IEEE Boot Prom 'OBP 4.30.4.a 2010/01/06 14:48'
[    0.000000] PROMLIB: Root node compatible: 
[    0.000000] Linux version 4.6.0-08907-g7639dad (mroos@v240) (gcc version 4.9.3 (Debian 4.9.3-2) ) #6 SMP Mon May 23 11:30:51 EEST 2016
[    0.000000] debug: ignoring loglevel setting.
[    0.000000] bootconsole [earlyprom0] enabled
[    0.000000] ARCH: SUN4U
[    0.000000] Ethernet address: 00:03:ba:5a:99:2d
[    0.000000] MM: PAGE_OFFSET is 0xfff0000000000000 (max_phys_bits = 42)
[    0.000000] MM: VMALLOC [0x0000000100000000 --> 0x000c000000000000]
[    0.000000] MM: VMEMMAP [0x000c000000000000 --> 0x0018000000000000]
[    0.000000] Kernel: Using 6 locked TLB entries for main kernel image.
[    0.000000] Remapping the kernel... done.
[    0.000000] kmemleak: Kernel memory leak detector disabled
[    0.000000] OF stdout device is: /pci@1e,600000/isa@7/serial@0,3f8
[    0.000000] PROM: Built device tree with 138973 bytes of memory.
[    0.000000] Top of RAM: 0x133feb8000, Total RAM: 0x17fe92000
[    0.000000] Memory hole size: 72704MB
[    0.000000] Allocated 40960 bytes for kernel page tables.
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x000000133feb7fff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000003fffffff]
[    0.000000]   node   0: [mem 0x0000000200000000-0x000000023fffffff]
[    0.000000]   node   0: [mem 0x0000000300000000-0x000000033fffffff]
[    0.000000]   node   0: [mem 0x0000001000000000-0x000000103fffffff]
[    0.000000]   node   0: [mem 0x0000001200000000-0x000000123fffffff]
[    0.000000]   node   0: [mem 0x0000001300000000-0x000000133effdfff]
[    0.000000]   node   0: [mem 0x000000133f000000-0x000000133fdb5fff]
[    0.000000]   node   0: [mem 0x000000133fdba000-0x000000133fe81fff]
[    0.000000]   node   0: [mem 0x000000133fe90000-0x000000133fe9ffff]
[    0.000000]   node   0: [mem 0x000000133feb2000-0x000000133feb7fff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000133feb7fff]
[    0.000000] On node 0 totalpages: 786249
[    0.000000]   Normal zone: 6911 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 786249 pages, LIFO batch:15
[    0.000000] Booting Linux...
[    0.000000] CPU CAPS: [flush,stbar,swap,muldiv,v9,ultra3,mul32,div32]
[    0.000000] CPU CAPS: [v8plus,vis,vis2]
[    0.000000] percpu: Embedded 9 pages/cpu @fff000133f800000 s35584 r8192 d29952 u2097152
[    0.000000] pcpu-alloc: s35584 r8192 d29952 u2097152 alloc=1*4194304
[    0.000000] pcpu-alloc: [0] 0 1 
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 779338
[    0.000000] Kernel command line: root=/dev/sda2 ro ignore_loglevel
[    0.000000] PID hash table entries: 4096 (order: 2, 32768 bytes)
[    0.000000] Dentry cache hash table entries: 1048576 (order: 10, 8388608 bytes)
[    0.000000] Inode-cache hash table entries: 524288 (order: 9, 4194304 bytes)
[    0.000000] Sorting __ex_table...
[    0.000000] Memory: 6157720K/6289992K available (5202K kernel code, 379K rwdata, 1440K rodata, 304K init, 13408K bss, 132272K reserved, 0K cma-reserved)
[    0.000000] Running RCU self tests
[    0.000000] Hierarchical RCU implementation.
[    0.000000] 	RCU lockdep checking is enabled.
[    0.000000] 	Build-time adjustment of leaf fanout to 64.
[    0.000000] NR_IRQS:2048 nr_irqs:2048 1
[   38.864048] clocksource: stick: mask: 0xffffffffffffffff max_cycles: 0x2c47f4ee7, max_idle_ns: 440795202497 ns
[   38.983748] clocksource: mult[53555555] shift[24]
[   39.039993] clockevent: mult[3126e98] shift[32]
[   39.094922] Console: colour dummy device 80x25
[   39.148239] console [tty0] enabled
[   39.188902] bootconsole [earlyprom0] disabled
[   39.241104] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[   39.241129] ... MAX_LOCKDEP_SUBCLASSES:  8
[   39.241145] ... MAX_LOCK_DEPTH:          48
[   39.241161] ... MAX_LOCKDEP_KEYS:        8191
[   39.241177] ... CLASSHASH_SIZE:          4096
[   39.241192] ... MAX_LOCKDEP_ENTRIES:     32768
[   39.241208] ... MAX_LOCKDEP_CHAINS:      65536
[   39.241224] ... CHAINHASH_SIZE:          32768
[   39.241241]  memory used by lock dependency info: 8159 kB
[   39.241259]  per task-struct memory footprint: 1920 bytes
[   39.241365] kmemleak: Early log buffer exceeded (2146), please increase DEBUG_KMEMLEAK_EARLY_LOG_SIZE
[   39.321300] Calibrating delay using timer specific routine.. 24.09 BogoMIPS (lpjH190)
[   39.321334] pid_max: default: 32768 minimum: 301
[   39.321748] Security Framework initialized
[   39.321904] Mount-cache hash table entries: 16384 (order: 4, 131072 bytes)
[   39.321937] Mountpoint-cache hash table entries: 16384 (order: 4, 131072 bytes)
[   39.332878] CPU 0: synchronized TICK with master CPU (last diff -1 cycles, maxerr 6 cycles)
[   39.333485] Brought up 2 CPUs
[   39.347020] devtmpfs: initialized
[   39.363576] Performance events: 
[   39.363618] Testing NMI watchdog ... 
[   39.443654] OK.
[   39.443674] Supported PMU type is 'ultra3i'
[   39.478753] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[   39.490284] prandom: seed boundary self test passed
[   39.493421] prandom: 100 self tests passed
[   39.515546] NET: Registered protocol family 16
[   39.521684] IRQ pre handler NOT supported.
[   39.521744] IRQ pre handler NOT supported.
[   39.521790] IRQ pre handler NOT supported.
[   39.521839] IRQ pre handler NOT supported.
[   39.521882] IRQ pre handler NOT supported.
[   39.522226] IRQ pre handler NOT supported.
[   39.522611] IRQ pre handler NOT supported.
[   39.522984] IRQ pre handler NOT supported.
[   39.523030] IRQ pre handler NOT supported.
[   39.523074] IRQ pre handler NOT supported.
[   39.523117] IRQ pre handler NOT supported.
[   39.523160] IRQ pre handler NOT supported.
[   39.524297] IRQ pre handler NOT supported.
[   39.530400] IRQ pre handler NOT supported.
[   39.530744] IRQ pre handler NOT supported.
[   39.531055] IRQ pre handler NOT supported.
[   39.531358] IRQ pre handler NOT supported.
[   39.531980] IRQ pre handler NOT supported.
[   39.532561] IRQ pre handler NOT supported.
[   39.532925] IRQ pre handler NOT supported.
[   39.533763] IRQ pre handler NOT supported.
[   39.534083] IRQ pre handler NOT supported.
[   39.534129] IRQ pre handler NOT supported.
[   39.534173] IRQ pre handler NOT supported.
[   39.534215] IRQ pre handler NOT supported.
[   39.534258] IRQ pre handler NOT supported.
[   39.534643] IRQ pre handler NOT supported.
[   39.535504] IRQ pre handler NOT supported.
[   39.536333] IRQ pre handler NOT supported.
[   39.536379] IRQ pre handler NOT supported.
[   39.536422] IRQ pre handler NOT supported.
[   39.536471] IRQ pre handler NOT supported.
[   39.536514] IRQ pre handler NOT supported.
[   39.536848] IRQ pre handler NOT supported.
[   39.537190] IRQ pre handler NOT supported.
[   39.540451] /pci@1f,700000: TOMATILLO PCI Bus Module ver[4:0]
[   39.540498] /pci@1f,700000: PCI IO[7f601000000] MEM[7f700000000] MEM64[7f700000000]
[   39.542654] PCI: Scanning PBM /pci@1f,700000
[   39.543314] schizo f0069c00: PCI host bridge to bus 0000:00
[   39.543361] pci_bus 0000:00: root bus resource [io  0x7f601000000-0x7f601ffffff] (bus address [0x0000-0xffffff])
[   39.543417] pci_bus 0000:00: root bus resource [mem 0x7f700000000-0x7f7ffffffff] (bus address [0x00000000-0xffffffff])
[   39.543473] pci_bus 0000:00: root bus resource [mem 0x7f700000000-0x7f7ffffffff] (bus address [0x00000000-0xffffffff])
[   39.543532] pci_bus 0000:00: root bus resource [bus 00]
[   39.543872] pci 0000:00:02.0: PME# supported from D3hot
[   39.544819] pci 0000:00:02.1: PME# supported from D3hot
[   39.546244] /pci@1e,600000: TOMATILLO PCI Bus Module ver[4:0]
[   39.546286] /pci@1e,600000: PCI IO[7fe01000000] MEM[7ff00000000] MEM64[7ff00000000]
[   39.548374] PCI: Scanning PBM /pci@1e,600000
[   39.548963] schizo f00732d0: PCI host bridge to bus 0001:00
[   39.549007] pci_bus 0001:00: root bus resource [io  0x7fe01000000-0x7fe01ffffff] (bus address [0x0000-0xffffff])
[   39.549063] pci_bus 0001:00: root bus resource [mem 0x7ff00000000-0x7ffffffffff] (bus address [0x00000000-0xffffffff])
[   39.549118] pci_bus 0001:00: root bus resource [mem 0x7ff00000000-0x7ffffffffff] (bus address [0x00000000-0xffffffff])
[   39.549175] pci_bus 0001:00: root bus resource [bus 00]
[   39.550039] pci 0001:00:06.0: quirk: [io  0x7fe01000800-0x7fe0100083f] claimed by ali7101 ACPI
[   39.550097] pci 0001:00:06.0: quirk: [io  0x7fe01000600-0x7fe0100061f] claimed by ali7101 SMB
[   39.550939] pci 0001:00:0a.0: PME# supported from D3cold
[   39.553141] pci 0001:00:07.0: can't claim BAR 0 [io  0x7fe01000000-0x7fe0100ffff]: address conflict with 0001:00:06.0 [io  0x7fe01000600-0x7fe0100061f]
[   39.553210] pci 0001:00:07.0: can't claim BAR 1 [mem 0x7ff00000000-0x7ff000fffff]: address conflict with Video RAM area [??? 0x7ff000a0000-0x7ff000bffff flags 0x80000000]
[   39.553286] pci 0001:00:07.0: can't claim BAR 2 [mem 0x7ff00000000-0x7ff000fffff]: address conflict with Video RAM area [??? 0x7ff000a0000-0x7ff000bffff flags 0x80000000]
[   39.553898] /pci@1c,600000: TOMATILLO PCI Bus Module ver[4:0]
[   39.553938] /pci@1c,600000: PCI IO[7ce01000000] MEM[7cf00000000] MEM64[7cf00000000]
[   39.556048] PCI: Scanning PBM /pci@1c,600000
[   39.556631] schizo f007c6ac: PCI host bridge to bus 0002:00
[   39.556675] pci_bus 0002:00: root bus resource [io  0x7ce01000000-0x7ce01ffffff] (bus address [0x0000-0xffffff])
[   39.556731] pci_bus 0002:00: root bus resource [mem 0x7cf00000000-0x7cfffffffff] (bus address [0x00000000-0xffffffff])
[   39.556787] pci_bus 0002:00: root bus resource [mem 0x7cf00000000-0x7cfffffffff] (bus address [0x00000000-0xffffffff])
[   39.556844] pci_bus 0002:00: root bus resource [bus 00]
[   39.557109] pci 0002:00:02.0: supports D1 D2
[   39.557869] pci 0002:00:02.1: supports D1 D2
[   39.559162] /pci@1d,700000: TOMATILLO PCI Bus Module ver[4:0]
[   39.559205] /pci@1d,700000: PCI IO[7c601000000] MEM[7c700000000] MEM64[7c700000000]
[   39.561271] PCI: Scanning PBM /pci@1d,700000
[   39.561873] schizo f00859d4: PCI host bridge to bus 0003:00
[   39.561920] pci_bus 0003:00: root bus resource [io  0x7c601000000-0x7c601ffffff] (bus address [0x0000-0xffffff])
[   39.561976] pci_bus 0003:00: root bus resource [mem 0x7c700000000-0x7c7ffffffff] (bus address [0x00000000-0xffffffff])
[   39.562031] pci_bus 0003:00: root bus resource [mem 0x7c700000000-0x7c7ffffffff] (bus address [0x00000000-0xffffffff])
[   39.562090] pci_bus 0003:00: root bus resource [bus 00]
[   39.562416] pci 0003:00:02.0: PME# supported from D3hot
[   39.563464] pci 0003:00:02.1: PME# supported from D3hot
[   39.588318] HugeTLB registered 8 MB page size, pre-allocated 0 pages
[   39.648073] vgaarb: loaded
[   39.655835] SCSI subsystem initialized
[   39.658962] /pci@1e,600000/isa@7/rtc@0,70: RTC regs at 0x7fe01000070
[   39.661284] clocksource: Switched to clocksource stick
[   39.793296] NET: Registered protocol family 2
[   39.837547] TCP established hash table entries: 65536 (order: 6, 524288 bytes)
[   39.839483] TCP bind hash table entries: 65536 (order: 9, 4194304 bytes)
[   39.858791] TCP: Hash tables configured (established 65536 bind 65536)
[   39.859549] UDP hash table entries: 4096 (order: 6, 655360 bytes)
[   39.862640] UDP-Lite hash table entries: 4096 (order: 6, 655360 bytes)
[   39.905289] NET: Registered protocol family 1
[   39.905489] pci 0001:00:07.0: Activating ISA DMA hang workarounds
[   39.905569] PCI: Enabling device: (0001:00:0a.0), cmd 2
[   39.961386] PCI: CLS 64 bytes, default 64
[   39.962199] power: Control reg at 7fe01000800
[   39.963465] chmc: UltraSPARC-IIIi memory controller at /memory-controller@0,0
[   39.963590] chmc: UltraSPARC-IIIi memory controller at /memory-controller@1,0
[   39.966180] futex hash table entries: 512 (order: 3, 65536 bytes)
[   39.978992] workingset: timestamp_bitsE max_order  bucket_order=0
[   40.170233] cryptomgr_test (33) used greatest stack depth: 10344 bytes left
[   40.170314] cryptomgr_test (34) used greatest stack depth: 10016 bytes left
[   40.173341] cryptomgr_test (45) used greatest stack depth: 8544 bytes left
[   40.189375] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[   40.189846] io scheduler noop registered
[   40.213274] io scheduler cfq registered (default)
[   40.213304] start plist test
[   40.221334] end plist test
[   40.274991] f00ac5a0: ttyS0 at MMIO 0x7fe010003f8 (irq = 15, base_baud = 115387) is a 16550A
[   40.275069] Console: ttyS0 (SU)
[   55.051785] console [ttyS0] enabled
[   55.099119] f00ae120: ttyS1 at MMIO 0x7fe010002e8 (irq = 15, base_baud = 115387) is a 16550A
[   55.212840] PCI: Enabling device: (0002:00:02.0), cmd 147
[   55.284800] sym0: <1010-66> rev 0x1 at pci 0002:00:02.0 irq 25
[   55.364396] sym0: No NVRAM, ID 7, Fast-80, LVD, parity checking
[   55.483162] sym0: SCSI BUS has been reset.
[   55.536978] scsi host0: sym-2.2.3
[   55.584239] PCI: Enabling device: (0002:00:02.1), cmd 147
[   55.656197] sym1: <1010-66> rev 0x1 at pci 0002:00:02.1 irq 26
[   55.735531] sym1: No NVRAM, ID 7, Fast-80, LVD, parity checking
[   55.854292] sym1: SCSI BUS has been reset.
[   55.908153] scsi host1: sym-2.2.3
[   55.957861] rtc_cmos rtc_cmos: rtc core: registered rtc_cmos as rtc0
[   56.041540] rtc_cmos rtc_cmos: no alarms, 114 bytes nvram
[   56.209327] NET: Registered protocol family 10
[   56.270196] NET: Registered protocol family 17
[   56.328996] Key type dns_resolver registered
[   56.386988] registered taskstats version 1
[   56.445132] Key type encrypted registered
[   56.499619] rtc_cmos rtc_cmos: setting system clock to 2016-05-23 14:13:37 UTC (1464012817)
[   58.610604] scsi 0:0:0:0: Direct-Access     SEAGATE  ST373307LSUN72G  0507 PQ: 0 ANSI: 3
[   58.717118] scsi target0:0:0: tagged command queuing enabled, command queue depth 16.
[   58.820230] scsi target0:0:0: Beginning Domain Validation
[   58.896497] scsi target0:0:0: FAST-80 WIDE SCSI 160.0 MB/s DT (12.5 ns, offset 31)
[   59.002404] scsi target0:0:0: Ending Domain Validation
[   59.072400] scsi 0:0:1:0: Direct-Access     SEAGATE  ST336607LSUN36G  0307 PQ: 0 ANSI: 3
[   59.178871] scsi target0:0:1: tagged command queuing enabled, command queue depth 16.
[   59.281933] scsi target0:0:1: Beginning Domain Validation
[   59.358170] scsi target0:0:1: FAST-80 WIDE SCSI 160.0 MB/s DT (12.5 ns, offset 31)
[   59.464056] scsi target0:0:1: Ending Domain Validation
[   59.533655] scsi 0:0:2:0: Direct-Access     SEAGATE  ST336607LSUN36G  0507 PQ: 0 ANSI: 3
[   59.640125] scsi target0:0:2: tagged command queuing enabled, command queue depth 16.
[   59.744439] scsi target0:0:2: Beginning Domain Validation
[   59.820936] scsi target0:0:2: FAST-80 WIDE SCSI 160.0 MB/s DT (12.5 ns, offset 31)
[   59.927039] scsi target0:0:2: Ending Domain Validation
[   59.996959] scsi 0:0:3:0: Direct-Access     SEAGATE  ST336607LSUN36G  0507 PQ: 0 ANSI: 3
[   60.103501] scsi target0:0:3: tagged command queuing enabled, command queue depth 16.
[   60.206620] scsi target0:0:3: Beginning Domain Validation
[   60.282887] scsi target0:0:3: FAST-80 WIDE SCSI 160.0 MB/s DT (12.5 ns, offset 31)
[   60.388991] scsi target0:0:3: Ending Domain Validation
[   63.704279] sd 0:0:0:0: [sda] 143374738 512-byte logical blocks: (73.4 GB/68.4 GiB)
[   63.805560] sd 0:0:1:0: [sdb] 71132959 512-byte logical blocks: (36.4 GB/33.9 GiB)
[   63.806278] sd 0:0:2:0: [sdc] 71132959 512-byte logical blocks: (36.4 GB/33.9 GiB)
[   63.806746] sd 0:0:0:0: [sda] Write Protect is off
[   63.806756] sd 0:0:0:0: [sda] Mode Sense: db 00 10 08
[   63.807549] sd 0:0:3:0: [sdd] 71132959 512-byte logical blocks: (36.4 GB/33.9 GiB)
[   63.807969] sd 0:0:2:0: [sdc] Write Protect is off
[   63.807978] sd 0:0:2:0: [sdc] Mode Sense: db 00 10 08
[   63.809033] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, supports DPO and FUA
[   63.809250] sd 0:0:3:0: [sdd] Write Protect is off
[   63.809259] sd 0:0:3:0: [sdd] Mode Sense: db 00 10 08
[   63.811419] sd 0:0:2:0: [sdc] Write cache: disabled, read cache: enabled, supports DPO and FUA
[   63.813329] sd 0:0:3:0: [sdd] Write cache: disabled, read cache: enabled, supports DPO and FUA
[   64.022595]  sdc: sdc1 sdc3
[   64.024321]  sdd: sdd1 sdd3
[   64.025054]  sda: sda1 sda2 sda3 sda4
[   64.036649] sd 0:0:3:0: [sdd] Attached SCSI disk
[   64.036881] sd 0:0:2:0: [sdc] Attached SCSI disk
[   64.038892] sd 0:0:0:0: [sda] Attached SCSI disk
[   65.137614] sd 0:0:1:0: [sdb] Write Protect is off
[   65.200610] sd 0:0:1:0: [sdb] Mode Sense: db 00 10 08
[   65.269201] sd 0:0:1:0: [sdb] Write cache: disabled, read cache: enabled, supports DPO and FUA
[   65.401560]  sdb: sdb1 sdb2 sdb3 sdb4
[   65.458640] sd 0:0:1:0: [sdb] Attached SCSI disk
[   65.527994] EXT4-fs (sda2): couldn't mount as ext3 due to feature incompatibilities
[   65.629886] EXT4-fs (sda2): couldn't mount as ext2 due to feature incompatibilities
[   65.789504] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null)
[   65.890358] VFS: Mounted root (ext4 filesystem) readonly on device 8:2.
[   66.002080] devtmpfs: mounted
[   66.041760] This architecture does not have kernel memory protection.
[   66.706648] stty (109) used greatest stack depth: 7024 bytes left
[   66.926071] tput (113) used greatest stack depth: 3632 bytes left
[   67.947726] random: udevd urandom read with 21 bits of entropy available
[   68.606267] pps_core: LinuxPPS API ver. 1 registered
[   68.675416] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[   68.808653] PTP clock support registered
[   68.888078] tg3.c:v3.137 (May 11, 2014)
[   68.942989] PCI: Enabling device: (0000:00:02.0), cmd 2
[   69.120040] alim7101_wdt: Steve Hill <steve@navaho.co.uk>
[   69.187707] tg3 0000:00:02.0 (unnamed net_device) (uninitialized): Cannot get nvram lock, tg3_nvram_init failed
[   69.195137] PCI: Enabling device: (0001:00:03.0), cmd 3
[   69.195227] skge: 1.14 addr 0x7ff00100000 irq 19 chip Genesis rev 0
[   69.198206] skge 0001:00:03.0 eth0: addr 00:00:5a:9a:43:58
[   69.202047] sd 0:0:0:0: Attached scsi generic sg0 type 0
[   69.202906] sd 0:0:1:0: Attached scsi generic sg1 type 0
[   69.203420] sd 0:0:2:0: Attached scsi generic sg2 type 0
[   69.203902] sd 0:0:3:0: Attached scsi generic sg3 type 0
[   69.216647] PCI: Enabling device: (0001:00:06.0), cmd 1
[   69.529502] tg3 0000:00:02.0 eth1: Tigon3 [partno(none) rev 2003] (PCI:66MHz:64-bit) MAC address 00:03:ba:5a:99:2d
[   69.529511] tg3 0000:00:02.0 eth1: attached PHY is 5704 (10/100/1000Base-T Ethernet) (WireSpeed[1], EEE[0])
[   69.529519] tg3 0000:00:02.0 eth1: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] TSOcap[1]
[   69.529526] tg3 0000:00:02.0 eth1: dma_rwctrl[763f0000] dma_mask[32-bit]
[   69.529689] PCI: Enabling device: (0000:00:02.1), cmd 2
[   69.893431] tg3 0000:00:02.1 (unnamed net_device) (uninitialized): Cannot get nvram lock, tg3_nvram_init failed
[   70.235095] tg3 0000:00:02.1 eth2: Tigon3 [partno(none) rev 2003] (PCI:66MHz:64-bit) MAC address 00:03:ba:5a:99:2e
[   70.235104] tg3 0000:00:02.1 eth2: attached PHY is 5704 (10/100/1000Base-T Ethernet) (WireSpeed[1], EEE[0])
[   70.235112] tg3 0000:00:02.1 eth2: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] TSOcap[1]
[   70.235120] tg3 0000:00:02.1 eth2: dma_rwctrl[763f0000] dma_mask[32-bit]
[   70.235440] PCI: Enabling device: (0003:00:02.0), cmd 2
[   70.313717] skge 0001:00:03.0 eth4: renamed from eth0
[   70.480158] tg3 0003:00:02.0 (unnamed net_device) (uninitialized): Cannot get nvram lock, tg3_nvram_init failed
[   70.863548] tg3 0003:00:02.0 eth0: Tigon3 [partno(none) rev 2003] (PCI:66MHz:64-bit) MAC address 00:03:ba:5a:99:2f
[   70.863558] tg3 0003:00:02.0 eth0: attached PHY is 5704 (10/100/1000Base-T Ethernet) (WireSpeed[1], EEE[0])
[   70.863566] tg3 0003:00:02.0 eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] TSOcap[1]
[   70.863573] tg3 0003:00:02.0 eth0: dma_rwctrl[763f0000] dma_mask[32-bit]
[   70.863767] PCI: Enabling device: (0003:00:02.1), cmd 2
[   71.134735] tg3 0003:00:02.1 (unnamed net_device) (uninitialized): Cannot get nvram lock, tg3_nvram_init failed
[   71.476179] tg3 0003:00:02.1 eth3: Tigon3 [partno(none) rev 2003] (PCI:66MHz:64-bit) MAC address 00:03:ba:5a:99:30
[   71.476189] tg3 0003:00:02.1 eth3: attached PHY is 5704 (10/100/1000Base-T Ethernet) (WireSpeed[1], EEE[0])
[   71.476196] tg3 0003:00:02.1 eth3: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] TSOcap[1]
[   71.476203] tg3 0003:00:02.1 eth3: dma_rwctrl[763f0000] dma_mask[32-bit]
[   71.522396] tg3 0000:00:02.1 rename4: renamed from eth2
[   71.934047] tg3 0000:00:02.0 rename3: renamed from eth1
[   72.370583] tg3 0003:00:02.0 eth2: renamed from eth0
[   72.703663] tg3 0000:00:02.1 eth1: renamed from rename4
[   72.829805] alim7101_wdt: Detected old alim7101 revision 'a1d'.  If this is a cobalt board, set the 'use_gpio' module parameter.
[   72.994825] tg3 0000:00:02.0 eth0: renamed from rename3
[   73.108835] alim7101_wdt: Steve Hill <steve@navaho.co.uk>
[   73.180307] alim7101_wdt: Detected old alim7101 revision 'a1d'.  If this is a cobalt board, set the 'use_gpio' module parameter.
[   74.038584] Adding 3084472k swap on /dev/sda4.  Priority:-1 extents:1 across:3084472k 
[   74.276174] EXT4-fs (sda2): re-mounted. Opts: (null)
[   74.579559] EXT4-fs (sda2): re-mounted. Opts: errors=remount-ro
[   76.059004] loop: module loaded
[   76.331013] EXT4-fs (sda1): mounting ext2 file system using the ext4 subsystem
[   76.453893] EXT4-fs (sda1): mounted filesystem without journal. Opts: (null)
[   79.510933] tg3 0000:00:02.0 eth0: No firmware running
[   79.983753] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   80.061802] ip (910) used greatest stack depth: 2344 bytes left
[   81.532169] tg3 0000:00:02.0 eth0: Link is up at 100 Mbps, full duplex
[   81.618034] tg3 0000:00:02.0 eth0: Flow control is off for TX and off for RX
[   81.711123] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[  147.350670] random: nonblocking pool is initialized

[  176.659456] ============================[  176.744087] [ INFO: possible irq lock inversion dependency detected ]
[  176.828729] 4.6.0-08907-g7639dad #6 Not tainted
[  176.888198] ---------------------------------------------------------
[  176.972842] git/1562 just changed the state of lock:
[  177.038035]  (ctx_alloc_lock){+.....}, at: [<0000000000451a44>] hugetlb_setup+0xe4/0x160
[  177.144412] but this lock was taken by another, HARDIRQ-safe lock in the past:
[  177.239348]  (&rq->lock){-.-.-.}
               
               and interrupts could create inverse lock ordering between them.

[  177.360601] 
               other info that might help us debug this:
[  177.446475] Chain exists of:
                 &rq->lock --> &(&mm->context.lock)->rlock --> ctx_alloc_lock

[  177.559695]  Possible interrupt unsafe locking scenario:

[  177.648925]        CPU0                    CPU1
[  177.708389]        ----                    ----
[  177.767865]   lock(ctx_alloc_lock);
[  177.813607]                                local_irq_disable();
[  177.891397]                                lock(&rq->lock);
[  177.964586]                                lock(&(&mm->context.lock)->rlock);
[  178.058376]   <Interrupt>
[  178.092693]     lock(&rq->lock);
[  178.135008] 
                *** DEADLOCK ***

[  178.212813] no locks held by git/1562.
[  178.261977] 
               the shortest dependencies between 2nd lock and 1st lock:
[  178.364933]   -> (&rq->lock){-.-.-.} ops: 729036338757632 {
[  178.438110]      IN-HARDIRQ-W at:
[  178.481575]                         [<00000000004b2330>] lock_acquire+0x50/0x80
[  178.577666]                         [<0000000000917f88>] _raw_spin_lock+0x28/0x40
[  178.676032]                         [<000000000048ce90>] scheduler_tick+0x30/0xe0
[  178.774396]                         [<00000000004d2e48>] update_process_times+0x48/0x60
[  178.879625]                         [<00000000004e0a9c>] tick_periodic+0xbc/0xe0
[  178.976844]                         [<00000000004e0acc>] tick_handle_periodic+0xc/0xa0
[  179.080929]                         [<0000000000430034>] timer_interrupt+0x94/0xc0
[  179.180437]                         [<0000000000426bf4>] sys_call_table+0x654/0x7e0
[  179.281090]                         [<00000000004c1b9c>] console_unlock+0x4bc/0x620
[  179.381741]                         [<0000000000b02c2c>] con_init+0x260/0x280
[  179.475523]                         [<0000000000b022ac>] console_init+0x1c/0x38
[  179.571609]                         [<0000000000aea91c>] start_kernel+0x30c/0x414
[  179.669974]                         [<0000000000aec084>] start_early_boot+0x274/0x284
[  179.772914]                         [<0000000000910e08>] tlb_fixup_done+0x4c/0x64
[  179.871279]                         [<          (null)>]           (null)
[  179.960486]      IN-SOFTIRQ-W at:
[  180.003943]                         [<00000000004b2330>] lock_acquire+0x50/0x80
[  180.100034]                         [<00000000009180e0>] _raw_spin_lock_irqsave+0x40/0x60
[  180.207550]                         [<00000000004950c8>] update_blocked_averages+0x28/0x660
[  180.317352]                         [<000000000049fba4>] rebalance_domains+0x24/0x400
[  180.420291]                         [<00000000004a01a8>] run_rebalance_domains+0x228/0x240
[  180.528952]                         [<00000000004659e8>] __do_softirq+0xe8/0x240
[  180.626173]                         [<000000000042be4c>] do_softirq_own_stack+0x2c/0x40
[  180.731399]                         [<0000000000465e28>] irq_exit+0x48/0xc0
[  180.822894]                         [<000000000043003c>] timer_interrupt+0x9c/0xc0
[  180.922409]                         [<0000000000426bf4>] sys_call_table+0x654/0x7e0
[  181.023063]                         [<000000000042c5ac>] arch_cpu_idle+0x2c/0x100
[  181.121426]                         [<00000000004a8d94>] default_idle_call+0x34/0x60
[  181.223224]                         [<00000000004a8f74>] cpu_startup_entry+0x1b4/0x240
[  181.327308]                         [<000000000043e6e0>] smp_callin+0x180/0x1a0
[  181.423383]                         [<0000000000a9d544>] after_lock_tlb+0x1a8/0x1bc
[  181.524036]                         [<0000000040000000>] 0x40000000
[  181.606380]      IN-RECLAIM_FS-W at:
[  181.653269]                            [<00000000004b2330>] lock_acquire+0x50/0x80
[  181.752792]                            [<0000000000917f88>] _raw_spin_lock+0x28/0x40
[  181.854587]                            [<00000000004890bc>] task_rq_lock+0x3c/0xe0
[  181.954096]                            [<000000000048ade8>] __set_cpus_allowed_ptr+0x8/0x260
[  182.065045]                            [<000000000048b04c>] set_cpus_allowed_ptr+0xc/0x20
[  182.172560]                            [<00000000005397d0>] kswapd+0x30/0x880
[  182.266339]                            [<00000000004823a4>] kthread+0xc4/0xe0
[  182.360130]                            [<00000000004060e4>] ret_from_fork+0x1c/0x2c
[  182.460789]                            [<          (null)>]           (null)
[  182.553428]      INITIAL USE at:
[  182.595740]                        [<00000000004b2330>] lock_acquire+0x50/0x80
[  182.690688]                        [<00000000009180e0>] _raw_spin_lock_irqsave+0x40/0x60
[  182.797062]                        [<0000000000488464>] rq_attach_root+0x4/0x240
[  182.894280]                        [<0000000000af33c4>] sched_init+0x2f8/0x494
[  182.989214]                        [<0000000000aea838>] start_kernel+0x228/0x414
[  183.086435]                        [<0000000000aec084>] start_early_boot+0x274/0x284
[  183.188234]                        [<0000000000910e08>] tlb_fixup_done+0x4c/0x64
[  183.285454]                        [<          (null)>]           (null)
[  183.373516]    }
[  183.397533]    ... key      at: [<0000000000b3cd08>] __key.48021+0x0/0x38
[  183.486750]    ... acquired at:
[  183.527924]    [<00000000009180e0>] _raw_spin_lock_irqsave+0x40/0x60
[  183.611423]    [<00000000009130ac>] __schedule+0x64c/0x894
[  183.683480]    [<0000000000913574>] schedule+0x74/0xa0
[  183.750961]    [<000000000091390c>] schedule_preempt_disabled+0xc/0x40
[  183.836748]    [<00000000004a8e4c>] cpu_startup_entry+0x8c/0x240
[  183.915668]    [<0000000000910f94>] rest_init+0x174/0x1a0
[  183.986581]    [<0000000000aeaa14>] start_kernel+0x404/0x414
[  184.060926]    [<0000000000aec084>] start_early_boot+0x274/0x284
[  184.139849]    [<0000000000910e08>] tlb_fixup_done+0x4c/0x64
[  184.214193]    [<          (null)>]           (null)

[  184.298828]  -> (&(&mm->context.lock)->rlock){......} ops: 1510999559503872 {
[  184.392615]     INITIAL USE at:
[  184.433791]                      [<00000000004b2330>] lock_acquire+0x50/0x80
[  184.526445]                      [<00000000009180e0>] _raw_spin_lock_irqsave+0x40/0x60
[  184.630536]                      [<000000000044f240>] tsb_grow+0xe0/0x480
[  184.719741]                      [<000000000044f628>] init_new_context+0x48/0x80
[  184.816970]                      [<000000000045d154>] mm_init+0x134/0x160
[  184.906178]                      [<000000000045d854>] mm_alloc+0x34/0x60
[  184.994248]                      [<0000000000597fe8>] do_execveat_common.isra.34+0x368/0x7a0
[  185.105204]                      [<000000000059843c>] do_execve+0x1c/0x40
[  185.194410]                      [<0000000000426da0>] run_init_process+0x20/0x40
[  185.291639]                      [<0000000000426dc4>] try_to_run_init_process+0x4/0x40
[  185.395725]                      [<0000000000911064>] kernel_init+0xa4/0x120
[  185.488361]                      [<00000000004060e4>] ret_from_fork+0x1c/0x2c
[  185.582152]                      [<          (null)>]           (null)
[  185.667934]   }
[  185.690805]   ... key      at: [<0000000000b37960>] __key.29389+0x0/0x8
[  185.777737]   ... acquired at:
[  185.817767]    [<0000000000917f88>] _raw_spin_lock+0x28/0x40
[  185.892115]    [<0000000000451250>] get_new_mmu_context+0x10/0x140
[  185.973324]    [<0000000000597388>] flush_old_exec+0x428/0x700
[  186.049956]    [<00000000005eee54>] load_elf_binary+0x294/0x11e0
[  186.128878]    [<0000000000596c20>] search_binary_handler+0x60/0x2a0
[  186.212373]    [<0000000000598298>] do_execveat_common.isra.34+0x618/0x7a0
[  186.302734]    [<000000000059843c>] do_execve+0x1c/0x40
[  186.371356]    [<0000000000426da0>] run_init_process+0x20/0x40
[  186.447991]    [<0000000000426dc4>] try_to_run_init_process+0x4/0x40
[  186.531488]    [<0000000000911064>] kernel_init+0xa4/0x120
[  186.603543]    [<00000000004060e4>] ret_from_fork+0x1c/0x2c
[  186.676745]    [<          (null)>]           (null)

[  186.761381] -> (ctx_alloc_lock){+.....} ops: 21045339750400 {
[  186.836867]    HARDIRQ-ON-W at:
[  186.878044]                     [<00000000004b2330>] lock_acquire+0x50/0x80
[  186.969553]                     [<0000000000917f88>] _raw_spin_lock+0x28/0x40
[  187.063342]                     [<0000000000451a44>] hugetlb_setup+0xe4/0x160
[  187.157133]                     [<0000000000450568>] do_sparc64_fault+0x508/0x7a0
[  187.255504]                     [<0000000000407cb0>] sparc64_realfault_common+0x10/0x20
[  187.360735]    INITIAL USE at:
[  187.400750]                    [<00000000004b2330>] lock_acquire+0x50/0x80
[  187.491116]                    [<0000000000917f88>] _raw_spin_lock+0x28/0x40
[  187.583760]                    [<0000000000451250>] get_new_mmu_context+0x10/0x140
[  187.683278]                    [<0000000000597388>] flush_old_exec+0x428/0x700
[  187.778210]                    [<00000000005eee54>] load_elf_binary+0x294/0x11e0
[  187.875432]                    [<0000000000596c20>] search_binary_handler+0x60/0x2a0
[  187.977228]                    [<0000000000598298>] do_execveat_common.isra.34+0x618/0x7a0
[  188.085889]                    [<000000000059843c>] do_execve+0x1c/0x40
[  188.172805]                    [<0000000000426da0>] run_init_process+0x20/0x40
[  188.267749]                    [<0000000000426dc4>] try_to_run_init_process+0x4/0x40
[  188.369544]                    [<0000000000911064>] kernel_init+0xa4/0x120
[  188.459896]                    [<00000000004060e4>] ret_from_fork+0x1c/0x2c
[  188.551396]                    [<          (null)>]           (null)
[  188.634892]  }
[  188.656619]  ... key      at: [<0000000000a9f1a8>] ctx_alloc_lock+0x18/0x70
[  188.748128]  ... acquired at:
[  188.787012]    [<00000000004af708>] mark_lock+0x4c8/0x860
[  188.857929]    [<00000000004b0390>] __lock_acquire+0x350/0x1f00
[  188.935706]    [<00000000004b2330>] lock_acquire+0x50/0x80
[  189.007762]    [<0000000000917f88>] _raw_spin_lock+0x28/0x40
[  189.082109]    [<0000000000451a44>] hugetlb_setup+0xe4/0x160
[  189.156456]    [<0000000000450568>] do_sparc64_fault+0x508/0x7a0
[  189.235377]    [<0000000000407cb0>] sparc64_realfault_common+0x10/0x20

[  189.340597] 
               stack backtrace:
[  189.397804] CPU: 1 PID: 1562 Comm: git Not tainted 4.6.0-08907-g7639dad #6
[  189.488157] Call Trace:
[  189.520179]  [00000000004ae44c] print_irq_inversion_bug+0x1ec/0x200
[  189.602540]  [00000000004ae67c] check_usage_backwards+0xfc/0x120
[  189.681459]  [00000000004af708] mark_lock+0x4c8/0x860
[  189.747796]  [00000000004b0390] __lock_acquire+0x350/0x1f00
[  189.820997]  [00000000004b2330] lock_acquire+0x50/0x80
[  189.888479]  [0000000000917f88] _raw_spin_lock+0x28/0x40
[  189.958249]  [0000000000451a44] hugetlb_setup+0xe4/0x160
[  190.028021]  [0000000000450568] do_sparc64_fault+0x508/0x7a0
[  190.102367]  [0000000000407cb0] sparc64_realfault_common+0x10/0x20


-- 
Meelis Roos (mroos@linux.ee)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: newest 4.6.0-08907-g7639dad on sparc64 - possible irq lock inversion dependency detected
  2016-05-23 19:07 newest 4.6.0-08907-g7639dad on sparc64 - possible irq lock inversion dependency detected Meelis Roos
@ 2016-05-23 22:23 ` David Miller
  2016-05-24 19:34 ` Meelis Roos
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: David Miller @ 2016-05-23 22:23 UTC (permalink / raw)
  To: sparclinux

From: Meelis Roos <mroos@linux.ee>
Date: Mon, 23 May 2016 22:07:12 +0300 (EEST)

> I tested todays 4.6.0-08907-g7639dad on most of my sparc64 computers, 
> from Ultra 1 to T5120, doing local git clone + rm -rf to the cloned 
> tree. All computers were fine except my V240 whete I have turned on some 
> additional debugging options to catch a spontaneous reboot. On the V240, 
> I get a "possible irq lock inversion dependency detected" warning 
> (below, in the full dmesg).
> 
> This may or may not be related to the current changes - I rememeber 
> having seen and reported another lockdep issue in the past but can't 
> find the sent mail right now.

Thanks for the report.  This code path only runs on cheetah+ cpus,
which is why your V240 is one machine where you see this.

Please test the following patch, thanks again!

==========
sparc64: Take ctx_alloc_lock properly in hugetlb_setup().

On cheetahplus chips we take the ctx_alloc_lock in order to
modify the TLB lookup parameters for the indexed TLBs, which
are stored in the context register.

This is called with interrupts disabled, however ctx_alloc_lock
is an IRQ safe lock, therefore we must take acquire/release it
properly with spin_{lock,unlock}_irq().

Reported-by: Meelis Roos <mroos@linux.ee>
Signed-off-by: David S. Miller <davem@davemloft.net>

diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
index 652683c..52f9aec 100644
--- a/arch/sparc/mm/init_64.c
+++ b/arch/sparc/mm/init_64.c
@@ -2826,7 +2826,7 @@ void hugetlb_setup(struct pt_regs *regs)
 	if (tlb_type = cheetah_plus) {
 		unsigned long ctx;
 
-		spin_lock(&ctx_alloc_lock);
+		spin_lock_irq(&ctx_alloc_lock);
 		ctx = mm->context.sparc64_ctx_val;
 		ctx &= ~CTX_PGSZ_MASK;
 		ctx |= CTX_PGSZ_BASE << CTX_PGSZ0_SHIFT;
@@ -2847,7 +2847,7 @@ void hugetlb_setup(struct pt_regs *regs)
 			mm->context.sparc64_ctx_val = ctx;
 			on_each_cpu(context_reload, mm, 0);
 		}
-		spin_unlock(&ctx_alloc_lock);
+		spin_unlock_irq(&ctx_alloc_lock);
 	}
 }
 #endif

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: newest 4.6.0-08907-g7639dad on sparc64 - possible irq lock inversion dependency detected
  2016-05-23 19:07 newest 4.6.0-08907-g7639dad on sparc64 - possible irq lock inversion dependency detected Meelis Roos
  2016-05-23 22:23 ` David Miller
@ 2016-05-24 19:34 ` Meelis Roos
  2016-05-24 21:16 ` David Miller
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Meelis Roos @ 2016-05-24 19:34 UTC (permalink / raw)
  To: sparclinux

> Thanks for the report.  This code path only runs on cheetah+ cpus,
> which is why your V240 is one machine where you see this.
> 
> Please test the following patch, thanks again!
> 
> ==========
> sparc64: Take ctx_alloc_lock properly in hugetlb_setup().

This seems to work fine - ran "git clone-" for hours and the warning did 
not reappear.

However, I have seen this during the hours in dmesg, sooin after start:

[  698.710915] ------------[ cut here ]------------
[  698.771673] WARNING: CPU: 1 PID: 1565 at kernel/smp.c:416 smp_call_function_many+0xc0/0x400
[  698.881558] Modules linked in: loop sg tg3 i2c_ali15x3 hwmon i2c_ali1535 ptp pps_core skge i2c_core
[  699.000592] CPU: 1 PID: 1565 Comm: git Not tainted 4.6.0-08907-g7639dad-dirty #8
[  699.097834] Call Trace:
[  699.129850]  [00000000004602a4] __warn+0xa4/0xe0
[  699.190471]  [0000000000460378] warn_slowpath_null+0x18/0x40
[  699.264816]  [00000000004e7ae0] smp_call_function_many+0xc0/0x400
[  699.344882]  [00000000004e7e44] smp_call_function+0x24/0x40
[  699.418081]  [00000000004e7e7c] on_each_cpu+0x1c/0xa0
[  699.484422]  [0000000000451a80] hugetlb_setup+0x120/0x160
[  699.555335]  [0000000000450568] do_sparc64_fault+0x508/0x7a0
[  699.629683]  [0000000000407cb0] sparc64_realfault_common+0x10/0x20
[  699.710890] ---[ end trace d3b6e60a330e267d ]---
[  699.771506] ------------[ cut here ]------------
[  699.832130] WARNING: CPU: 1 PID: 1565 at kernel/smp.c:291 smp_call_function_single+0xc4/0x1c0
[  699.944230] Modules linked in: loop sg tg3 i2c_ali15x3 hwmon i2c_ali1535 ptp pps_core skge i2c_core
[  700.063160] CPU: 1 PID: 1565 Comm: git Tainted: G        W       4.6.0-08907-g7639dad-dirty #8
[  700.176419] Call Trace:
[  700.208530]  [00000000004602a4] __warn+0xa4/0xe0
[  700.269156]  [0000000000460378] warn_slowpath_null+0x18/0x40
[  700.343503]  [00000000004e76c4] smp_call_function_single+0xc4/0x1c0
[  700.425857]  [00000000004e7b80] smp_call_function_many+0x160/0x400
[  700.507063]  [00000000004e7e44] smp_call_function+0x24/0x40
[  700.580263]  [00000000004e7e7c] on_each_cpu+0x1c/0xa0
[  700.646602]  [0000000000451a80] hugetlb_setup+0x120/0x160
[  700.717518]  [0000000000450568] do_sparc64_fault+0x508/0x7a0
[  700.791865]  [0000000000407cb0] sparc64_realfault_common+0x10/0x20
[  700.873070] ---[ end trace d3b6e60a330e267e ]---
[ 1992.438454] kworker/dying (61) used greatest stack depth: 1760 bytes left



-- 
Meelis Roos (mroos@linux.ee)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: newest 4.6.0-08907-g7639dad on sparc64 - possible irq lock inversion dependency detected
  2016-05-23 19:07 newest 4.6.0-08907-g7639dad on sparc64 - possible irq lock inversion dependency detected Meelis Roos
  2016-05-23 22:23 ` David Miller
  2016-05-24 19:34 ` Meelis Roos
@ 2016-05-24 21:16 ` David Miller
  2016-05-25  5:11 ` Meelis Roos
  2016-05-25 20:48 ` David Miller
  4 siblings, 0 replies; 6+ messages in thread
From: David Miller @ 2016-05-24 21:16 UTC (permalink / raw)
  To: sparclinux

From: Meelis Roos <mroos@linux.ee>
Date: Tue, 24 May 2016 22:34:05 +0300 (EEST)

>> Thanks for the report.  This code path only runs on cheetah+ cpus,
>> which is why your V240 is one machine where you see this.
>> 
>> Please test the following patch, thanks again!
>> 
>> ==========
>> sparc64: Take ctx_alloc_lock properly in hugetlb_setup().
> 
> This seems to work fine - ran "git clone-" for hours and the warning did 
> not reappear.
> 
> However, I have seen this during the hours in dmesg, sooin after start:
> 
> [  698.710915] ------------[ cut here ]------------
> [  698.771673] WARNING: CPU: 1 PID: 1565 at kernel/smp.c:416 smp_call_function_many+0xc0/0x400
> [  698.881558] Modules linked in: loop sg tg3 i2c_ali15x3 hwmon i2c_ali1535 ptp pps_core skge i2c_core
> [  699.000592] CPU: 1 PID: 1565 Comm: git Not tainted 4.6.0-08907-g7639dad-dirty #8
> [  699.097834] Call Trace:
> [  699.129850]  [00000000004602a4] __warn+0xa4/0xe0
> [  699.190471]  [0000000000460378] warn_slowpath_null+0x18/0x40
> [  699.264816]  [00000000004e7ae0] smp_call_function_many+0xc0/0x400
> [  699.344882]  [00000000004e7e44] smp_call_function+0x24/0x40
> [  699.418081]  [00000000004e7e7c] on_each_cpu+0x1c/0xa0
> [  699.484422]  [0000000000451a80] hugetlb_setup+0x120/0x160

Oh, we can't do the context reload with interrupts disabled.

Here is a new version of the patch which should fix this problem as well.

Thanks!

diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
index 652683c..14bb0d5 100644
--- a/arch/sparc/mm/init_64.c
+++ b/arch/sparc/mm/init_64.c
@@ -2824,9 +2824,10 @@ void hugetlb_setup(struct pt_regs *regs)
 	 * the Data-TLB for huge pages.
 	 */
 	if (tlb_type = cheetah_plus) {
+		bool need_context_reload = false;
 		unsigned long ctx;
 
-		spin_lock(&ctx_alloc_lock);
+		spin_lock_irq(&ctx_alloc_lock);
 		ctx = mm->context.sparc64_ctx_val;
 		ctx &= ~CTX_PGSZ_MASK;
 		ctx |= CTX_PGSZ_BASE << CTX_PGSZ0_SHIFT;
@@ -2845,9 +2846,12 @@ void hugetlb_setup(struct pt_regs *regs)
 			 * also executing in this address space.
 			 */
 			mm->context.sparc64_ctx_val = ctx;
-			on_each_cpu(context_reload, mm, 0);
+			need_context_reload = true;
 		}
-		spin_unlock(&ctx_alloc_lock);
+		spin_unlock_irq(&ctx_alloc_lock);
+
+		if (need_context_reload)
+			on_each_cpu(context_reload, mm, 0);
 	}
 }
 #endif

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: newest 4.6.0-08907-g7639dad on sparc64 - possible irq lock inversion dependency detected
  2016-05-23 19:07 newest 4.6.0-08907-g7639dad on sparc64 - possible irq lock inversion dependency detected Meelis Roos
                   ` (2 preceding siblings ...)
  2016-05-24 21:16 ` David Miller
@ 2016-05-25  5:11 ` Meelis Roos
  2016-05-25 20:48 ` David Miller
  4 siblings, 0 replies; 6+ messages in thread
From: Meelis Roos @ 2016-05-25  5:11 UTC (permalink / raw)
  To: sparclinux

> Oh, we can't do the context reload with interrupts disabled.
> 
> Here is a new version of the patch which should fix this problem as well.

Yes, seems to work - git clones overnight with nothing in dmesg. Thanks!

-- 
Meelis Roos (mroos@linux.ee)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: newest 4.6.0-08907-g7639dad on sparc64 - possible irq lock inversion dependency detected
  2016-05-23 19:07 newest 4.6.0-08907-g7639dad on sparc64 - possible irq lock inversion dependency detected Meelis Roos
                   ` (3 preceding siblings ...)
  2016-05-25  5:11 ` Meelis Roos
@ 2016-05-25 20:48 ` David Miller
  4 siblings, 0 replies; 6+ messages in thread
From: David Miller @ 2016-05-25 20:48 UTC (permalink / raw)
  To: sparclinux

From: Meelis Roos <mroos@linux.ee>
Date: Wed, 25 May 2016 08:11:20 +0300 (EEST)

>> Oh, we can't do the context reload with interrupts disabled.
>> 
>> Here is a new version of the patch which should fix this problem as well.
> 
> Yes, seems to work - git clones overnight with nothing in dmesg. Thanks!

Thanks for testing.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-05-25 20:48 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-23 19:07 newest 4.6.0-08907-g7639dad on sparc64 - possible irq lock inversion dependency detected Meelis Roos
2016-05-23 22:23 ` David Miller
2016-05-24 19:34 ` Meelis Roos
2016-05-24 21:16 ` David Miller
2016-05-25  5:11 ` Meelis Roos
2016-05-25 20:48 ` David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.