lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 8 Mar 2011 11:22:54 +0200
From:	Alexey Dobriyan <adobriyan@...il.com>
To:	Linus Torvalds <torvalds@...ux-foundation.org>
Cc:	linux-kernel@...r.kernel.org, bskeggs@...hat.com
Subject: 2.6.38-rc8: lockdep vs nouveau

Happened at boot.

[drm] Initialized drm 1.1.0 20060810
nouveau 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
nouveau 0000:01:00.0: setting latency timer to 64
[drm] nouveau 0000:01:00.0: Detected an NV50 generation card (0x450100a2)
[drm] nouveau 0000:01:00.0: Attempting to load BIOS image from PRAMIN
[drm] nouveau 0000:01:00.0: ... appears to be valid
[drm] nouveau 0000:01:00.0: BIT BIOS found
[drm] nouveau 0000:01:00.0: Bios version 60.80.13.00
[drm] nouveau 0000:01:00.0: TMDS table version 2.0
[drm] nouveau 0000:01:00.0: BIT table 'd' not found
[drm] nouveau 0000:01:00.0: Found Display Configuration Block version 4.0
[drm] nouveau 0000:01:00.0: Raw DCB entry 0: 04000320 00000028
[drm] nouveau 0000:01:00.0: Raw DCB entry 1: 01000322 00000030
[drm] nouveau 0000:01:00.0: Raw DCB entry 2: 02011310 00000028
[drm] nouveau 0000:01:00.0: Raw DCB entry 3: 02011312 00000030
[drm] nouveau 0000:01:00.0: Raw DCB entry 4: 010223f1 00c1c020
[drm] nouveau 0000:01:00.0: DCB connector table: VHER 0x40 5 6 2
[drm] nouveau 0000:01:00.0:   0: 0x00001030: type 0x30 idx 0 tag 0x07
[drm] nouveau 0000:01:00.0:   1: 0x00002130: type 0x30 idx 1 tag 0x08
[drm] nouveau 0000:01:00.0:   2: 0x00000210: type 0x10 idx 2 tag 0xff
[drm] nouveau 0000:01:00.0:   3: 0x00000211: type 0x11 idx 3 tag 0xff
[drm] nouveau 0000:01:00.0:   4: 0x00000213: type 0x13 idx 4 tag 0xff
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 0 at offset 0xBC7E
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 1 at offset 0xBE86
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 2 at offset 0xD041
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 3 at offset 0xD130
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 4 at offset 0xD2E7
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table at offset 0xD34C
[drm] nouveau 0000:01:00.0: 0xD34C: Condition still not met after 20ms, skipping following opcodes
[drm] nouveau 0000:01:00.0: 1 available performance level(s)
[drm] nouveau 0000:01:00.0: 0: memory 900MHz core 576MHz shader 1350MHz voltage 1300mV fanspeed 100%
[drm] nouveau 0000:01:00.0: c: memory 396MHz core 198MHz shader 1188MHz
[TTM] Zone  kernel: Available graphics memory: 4074414 kiB.
[TTM] Zone   dma32: Available graphics memory: 2097152 kiB.
[TTM] Initializing pool allocator.
[drm] nouveau 0000:01:00.0: Detected 768MiB VRAM
mtrr: type mismatch for d0000000,10000000 old: write-back new: write-combining
[drm] nouveau 0000:01:00.0: 512 MiB GART (aperture)
[drm] nouveau 0000:01:00.0: DCB encoder 1 unknown
[drm] nouveau 0000:01:00.0: TV-1 has no encoders, removing
[drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[drm] No driver support for vblank timestamp query.

=========================================================
[ INFO: possible irq lock inversion dependency detected ]
2.6.38-rc8 #9
---------------------------------------------------------
kworker/0:1/0 just changed the state of lock:
 (&(&dev_priv->context_switch_lock)->rlock){-.....}, at: [<ffffffff812a6727>] nouveau_irq_handler+0x57/0x150
but this lock took another, HARDIRQ-unsafe lock in the past:
 (&(&dev_priv->ramin_lock)->rlock){+.+...}

and interrupts could create inverse lock ordering between them.


other info that might help us debug this:
no locks held by kworker/0:1/0.

the shortest dependencies between 2nd lock and 1st lock:
 -> (&(&dev_priv->ramin_lock)->rlock){+.+...} ops: 24866 {
    HARDIRQ-ON-W at:
                                         [<ffffffff8109ba2e>] __lock_acquire+0xbee/0x1c40
                                         [<ffffffff8109cada>] lock_acquire+0x5a/0x70
                                         [<ffffffff814c5846>] _raw_spin_lock+0x36/0x50
                                         [<ffffffff812a555b>] nouveau_gpuobj_new+0xab/0x2e0
                                         [<ffffffff813011de>] nv50_instmem_init+0x12e/0x6d0
                                         [<ffffffff812a0c86>] nouveau_card_init+0x446/0x1680
                                         [<ffffffff812a22f3>] nouveau_load+0x433/0x700
                                         [<ffffffff8128b08a>] drm_get_pci_dev+0x18a/0x2a0
                                         [<ffffffff814bf023>] nouveau_pci_probe+0x10/0x12
                                         [<ffffffff8120ffe2>] local_pci_probe+0x12/0x20
                                         [<ffffffff812102a0>] pci_device_probe+0x80/0xb0
                                         [<ffffffff81325c09>] driver_probe_device+0x89/0x1a0
                                         [<ffffffff81325dbb>] __driver_attach+0x9b/0xa0
                                         [<ffffffff813252f8>] bus_for_each_dev+0x68/0x90
                                         [<ffffffff81325a49>] driver_attach+0x19/0x20
                                         [<ffffffff81324b68>] bus_add_driver+0x1a8/0x270
                                         [<ffffffff813260a8>] driver_register+0x78/0x140
                                         [<ffffffff81210521>] __pci_register_driver+0x61/0xe0
                                         [<ffffffff8128b26a>] drm_pci_init+0xca/0xe0
                                         [<ffffffff81283f13>] drm_init+0x53/0x70
                                         [<ffffffff818fc779>] nouveau_init+0x48/0x4a
                                         [<ffffffff818de5f6>] do_one_initcall+0x7a/0x12e
                                         [<ffffffff818de80c>] kernel_init+0x142/0x1c6
                                         [<ffffffff81032f14>] kernel_thread_helper+0x4/0x10
    SOFTIRQ-ON-W at:
                                         [<ffffffff8109ba64>] __lock_acquire+0xc24/0x1c40
                                         [<ffffffff8109cada>] lock_acquire+0x5a/0x70
                                         [<ffffffff814c5846>] _raw_spin_lock+0x36/0x50
                                         [<ffffffff812a555b>] nouveau_gpuobj_new+0xab/0x2e0
                                         [<ffffffff813011de>] nv50_instmem_init+0x12e/0x6d0
                                         [<ffffffff812a0c86>] nouveau_card_init+0x446/0x1680
                                         [<ffffffff812a22f3>] nouveau_load+0x433/0x700
                                         [<ffffffff8128b08a>] drm_get_pci_dev+0x18a/0x2a0
                                         [<ffffffff814bf023>] nouveau_pci_probe+0x10/0x12
                                         [<ffffffff8120ffe2>] local_pci_probe+0x12/0x20
                                         [<ffffffff812102a0>] pci_device_probe+0x80/0xb0
                                         [<ffffffff81325c09>] driver_probe_device+0x89/0x1a0
                                         [<ffffffff81325dbb>] __driver_attach+0x9b/0xa0
                                         [<ffffffff813252f8>] bus_for_each_dev+0x68/0x90
                                         [<ffffffff81325a49>] driver_attach+0x19/0x20
                                         [<ffffffff81324b68>] bus_add_driver+0x1a8/0x270
                                         [<ffffffff813260a8>] driver_register+0x78/0x140
                                         [<ffffffff81210521>] __pci_register_driver+0x61/0xe0
                                         [<ffffffff8128b26a>] drm_pci_init+0xca/0xe0
                                         [<ffffffff81283f13>] drm_init+0x53/0x70
                                         [<ffffffff818fc779>] nouveau_init+0x48/0x4a
                                         [<ffffffff818de5f6>] do_one_initcall+0x7a/0x12e
                                         [<ffffffff818de80c>] kernel_init+0x142/0x1c6
                                         [<ffffffff81032f14>] kernel_thread_helper+0x4/0x10
    INITIAL USE at:
                                        [<ffffffff8109b2fb>] __lock_acquire+0x4bb/0x1c40
                                        [<ffffffff8109cada>] lock_acquire+0x5a/0x70
                                        [<ffffffff814c5846>] _raw_spin_lock+0x36/0x50
                                        [<ffffffff812a555b>] nouveau_gpuobj_new+0xab/0x2e0
                                        [<ffffffff813011de>] nv50_instmem_init+0x12e/0x6d0
                                        [<ffffffff812a0c86>] nouveau_card_init+0x446/0x1680
                                        [<ffffffff812a22f3>] nouveau_load+0x433/0x700
                                        [<ffffffff8128b08a>] drm_get_pci_dev+0x18a/0x2a0
                                        [<ffffffff814bf023>] nouveau_pci_probe+0x10/0x12
                                        [<ffffffff8120ffe2>] local_pci_probe+0x12/0x20
                                        [<ffffffff812102a0>] pci_device_probe+0x80/0xb0
                                        [<ffffffff81325c09>] driver_probe_device+0x89/0x1a0
                                        [<ffffffff81325dbb>] __driver_attach+0x9b/0xa0
                                        [<ffffffff813252f8>] bus_for_each_dev+0x68/0x90
                                        [<ffffffff81325a49>] driver_attach+0x19/0x20
                                        [<ffffffff81324b68>] bus_add_driver+0x1a8/0x270
                                        [<ffffffff813260a8>] driver_register+0x78/0x140
                                        [<ffffffff81210521>] __pci_register_driver+0x61/0xe0
                                        [<ffffffff8128b26a>] drm_pci_init+0xca/0xe0
                                        [<ffffffff81283f13>] drm_init+0x53/0x70
                                        [<ffffffff818fc779>] nouveau_init+0x48/0x4a
                                        [<ffffffff818de5f6>] do_one_initcall+0x7a/0x12e
                                        [<ffffffff818de80c>] kernel_init+0x142/0x1c6
                                        [<ffffffff81032f14>] kernel_thread_helper+0x4/0x10
  }
  ... key      at: [<ffffffff822bd7b8>] __key.40392+0x0/0x8
  ... acquired at:
   [<ffffffff8109cada>] lock_acquire+0x5a/0x70
   [<ffffffff814c5846>] _raw_spin_lock+0x36/0x50
   [<ffffffff81300bbd>] nv50_instmem_flush+0x1d/0x90
   [<ffffffff812d2050>] nv50_fifo_create_context+0x260/0x340
   [<ffffffff812a2f9d>] nouveau_channel_alloc+0x33d/0x6d0
   [<ffffffff812a0dea>] nouveau_card_init+0x5aa/0x1680
   [<ffffffff812a22f3>] nouveau_load+0x433/0x700
   [<ffffffff8128b08a>] drm_get_pci_dev+0x18a/0x2a0
   [<ffffffff814bf023>] nouveau_pci_probe+0x10/0x12
   [<ffffffff8120ffe2>] local_pci_probe+0x12/0x20
   [<ffffffff812102a0>] pci_device_probe+0x80/0xb0
   [<ffffffff81325c09>] driver_probe_device+0x89/0x1a0
   [<ffffffff81325dbb>] __driver_attach+0x9b/0xa0
   [<ffffffff813252f8>] bus_for_each_dev+0x68/0x90
   [<ffffffff81325a49>] driver_attach+0x19/0x20
   [<ffffffff81324b68>] bus_add_driver+0x1a8/0x270
   [<ffffffff813260a8>] driver_register+0x78/0x140
   [<ffffffff81210521>] __pci_register_driver+0x61/0xe0
   [<ffffffff8128b26a>] drm_pci_init+0xca/0xe0
   [<ffffffff81283f13>] drm_init+0x53/0x70
   [<ffffffff818fc779>] nouveau_init+0x48/0x4a
   [<ffffffff818de5f6>] do_one_initcall+0x7a/0x12e
   [<ffffffff818de80c>] kernel_init+0x142/0x1c6
   [<ffffffff81032f14>] kernel_thread_helper+0x4/0x10

-> (&(&dev_priv->context_switch_lock)->rlock){-.....} ops: 6 {
   IN-HARDIRQ-W at:
                                       [<ffffffff8109bb7c>] __lock_acquire+0xd3c/0x1c40
                                       [<ffffffff8109cada>] lock_acquire+0x5a/0x70
                                       [<ffffffff814c5961>] _raw_spin_lock_irqsave+0x41/0x60
                                       [<ffffffff812a6727>] nouveau_irq_handler+0x57/0x150
                                       [<ffffffff810adfca>] handle_IRQ_event+0x3a/0xe0
                                       [<ffffffff810b0778>] handle_fasteoi_irq+0x78/0x100
                                       [<ffffffff81034e3d>] handle_irq+0x1d/0x30
                                       [<ffffffff81034338>] do_IRQ+0x58/0xd0
                                       [<ffffffff814c66d3>] ret_from_intr+0x0/0x13
                                       [<ffffffff8103129b>] cpu_idle+0xab/0x110
                                       [<ffffffff8190ab59>] start_secondary+0x1e2/0x1e9
   INITIAL USE at:
                                      [<ffffffff8109b2fb>] __lock_acquire+0x4bb/0x1c40
                                      [<ffffffff8109cada>] lock_acquire+0x5a/0x70
                                      [<ffffffff814c5961>] _raw_spin_lock_irqsave+0x41/0x60
                                      [<ffffffff812a667a>] nouveau_irq_register+0x3a/0x70
                                      [<ffffffff8131b8ed>] nv50_gpio_init+0x7d/0x130
                                      [<ffffffff812a0cc3>] nouveau_card_init+0x483/0x1680
                                      [<ffffffff812a22f3>] nouveau_load+0x433/0x700
                                      [<ffffffff8128b08a>] drm_get_pci_dev+0x18a/0x2a0
                                      [<ffffffff814bf023>] nouveau_pci_probe+0x10/0x12
                                      [<ffffffff8120ffe2>] local_pci_probe+0x12/0x20
                                      [<ffffffff812102a0>] pci_device_probe+0x80/0xb0
                                      [<ffffffff81325c09>] driver_probe_device+0x89/0x1a0
                                      [<ffffffff81325dbb>] __driver_attach+0x9b/0xa0
                                      [<ffffffff813252f8>] bus_for_each_dev+0x68/0x90
                                      [<ffffffff81325a49>] driver_attach+0x19/0x20
                                      [<ffffffff81324b68>] bus_add_driver+0x1a8/0x270
                                      [<ffffffff813260a8>] driver_register+0x78/0x140
                                      [<ffffffff81210521>] __pci_register_driver+0x61/0xe0
                                      [<ffffffff8128b26a>] drm_pci_init+0xca/0xe0
                                      [<ffffffff81283f13>] drm_init+0x53/0x70
                                      [<ffffffff818fc779>] nouveau_init+0x48/0x4a
                                      [<ffffffff818de5f6>] do_one_initcall+0x7a/0x12e
                                      [<ffffffff818de80c>] kernel_init+0x142/0x1c6
                                      [<ffffffff81032f14>] kernel_thread_helper+0x4/0x10
 }
 ... key      at: [<ffffffff822bd798>] __key.41016+0x0/0x8
 ... acquired at:
   [<ffffffff81099cd2>] check_usage_forwards+0xa2/0x110
   [<ffffffff810990b7>] mark_lock+0x1f7/0x630
   [<ffffffff8109bb7c>] __lock_acquire+0xd3c/0x1c40
   [<ffffffff8109cada>] lock_acquire+0x5a/0x70
   [<ffffffff814c5961>] _raw_spin_lock_irqsave+0x41/0x60
   [<ffffffff812a6727>] nouveau_irq_handler+0x57/0x150
   [<ffffffff810adfca>] handle_IRQ_event+0x3a/0xe0
   [<ffffffff810b0778>] handle_fasteoi_irq+0x78/0x100
   [<ffffffff81034e3d>] handle_irq+0x1d/0x30
   [<ffffffff81034338>] do_IRQ+0x58/0xd0
   [<ffffffff814c66d3>] ret_from_intr+0x0/0x13
   [<ffffffff8103129b>] cpu_idle+0xab/0x110
   [<ffffffff8190ab59>] start_secondary+0x1e2/0x1e9


stack backtrace:
Pid: 0, comm: kworker/0:1 Not tainted 2.6.38-rc8 #9
Call Trace:
 <IRQ>  [<ffffffff81099c09>] ? print_irq_inversion_bug+0x139/0x160
 [<ffffffff81099c30>] ? check_usage_forwards+0x0/0x110
 [<ffffffff81099cd2>] ? check_usage_forwards+0xa2/0x110
 [<ffffffff810990b7>] ? mark_lock+0x1f7/0x630
 [<ffffffff8109bb7c>] ? __lock_acquire+0xd3c/0x1c40
 [<ffffffff8109b2fb>] ? __lock_acquire+0x4bb/0x1c40
 [<ffffffff81099755>] ? trace_hardirqs_on_caller+0x65/0x180
 [<ffffffff810b244a>] ? check_for_new_grace_period+0xaa/0x120
 [<ffffffff8109cada>] ? lock_acquire+0x5a/0x70
 [<ffffffff812a6727>] ? nouveau_irq_handler+0x57/0x150
 [<ffffffff814c5961>] ? _raw_spin_lock_irqsave+0x41/0x60
 [<ffffffff812a6727>] ? nouveau_irq_handler+0x57/0x150
 [<ffffffff812a6727>] ? nouveau_irq_handler+0x57/0x150
 [<ffffffff810adfca>] ? handle_IRQ_event+0x3a/0xe0
 [<ffffffff810b0778>] ? handle_fasteoi_irq+0x78/0x100
 [<ffffffff81034e3d>] ? handle_irq+0x1d/0x30
 [<ffffffff81034338>] ? do_IRQ+0x58/0xd0
 [<ffffffff814c66d3>] ? ret_from_intr+0x0/0x13
 <EOI>  [<ffffffff8103a749>] ? mwait_idle+0x89/0xc0
 [<ffffffff8103a740>] ? mwait_idle+0x80/0xc0
 [<ffffffff8103129b>] ? cpu_idle+0xab/0x110
 [<ffffffff8190ab59>] ? start_secondary+0x1e2/0x1e9
[drm] nouveau 0000:01:00.0: allocated 1280x1024 fb: 0x60000000, bo ffff88023f6e9120
Console: switching to colour frame buffer device 160x64
fb0: nouveaufb frame buffer device
drm: registered panic notifier
[drm] Initialized nouveau 0.0.16 20090420 for 0000:01:00.0 on minor 0
	...
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ