nouveau/ NV11: 3.12 freezes if X.org is started headless

Stefan Lippers-Hollmann s.L-H at gmx.de
Tue Nov 26 15:03:23 PST 2013


Hi

After upgrading to kernel 3.12, I observe that an older i386 desktop 
equipped with a GeForce2 MX (NV11) starts to freeze, as soon as X.org 
starts up without a monitor attached. The last messages fetched via a 
serial console are these:

nouveau W[  PTIMER][0000:01:00.0] unknown input clock freq
agpgart-via 0000:00:00.0: AGP 3.5 bridge
agpgart-via 0000:00:00.0: bridge is in legacy mode, falling back to 2.x
agpgart-via 0000:00:00.0: putting AGP V2 device into 4x mode
nouveau 0000:01:00.0: putting AGP V2 device into 4x mode
[     DRM] 0x16BD: Parsing digital output script table

Once I connect a CRT via VGA, X.org starts up fine and I no longer
notice any issues.

Trying to bisect the regression, which is hampered by an unrelated bug 
in the devmapper code during with the 3.12 merge window (fixed in 
v3.12) and an intermittent Oops within the drm merge (doesn't 
affect this issue and it's apparently fixed in 3.12), only leads me to
the drm merge for kernel 3.12:

commit 9c725e5bcdae59d5383d4aec33a34c822582dda5
Merge: efa27f9 679fe80
Author: Dave Airlie <airlied at redhat.com>
Date:   Mon Sep 2 09:31:40 2013 +1000

I tried this twice, once restricted to drivers/gpu/, once globally 
between v3.11 and v3.12, both only leading to the same merge commit,
but -as obvious in the bisection log below- I had to skip a number of
commits because of the afforementioned (undebugged, but fixed in 3.12)
devmapper bug.

$ git bisect log
git bisect start 'drivers/gpu/'
# bad: [5e01dc7b26d9f24f39abace5da98ccbd6a5ceb52] Linux 3.12
git bisect bad 5e01dc7b26d9f24f39abace5da98ccbd6a5ceb52
# good: [6e4664525b1db28f8c4e1130957f70a94c19213e] Linux 3.11
git bisect good 6e4664525b1db28f8c4e1130957f70a94c19213e
# good: [6cb3b7f1c013fd4bea41e16ee557bcb2f1561787] video/hdmi: Rename HDMI_IDENTIFIER to HDMI_IEEE_OUI
git bisect good 6cb3b7f1c013fd4bea41e16ee557bcb2f1561787
# bad: [a1bfacf4006a3bb410b0fa85e203f9249d2d35e9] drm/exynos: Add fallback option to get non physically contiguous memory for fb
git bisect bad a1bfacf4006a3bb410b0fa85e203f9249d2d35e9
# good: [53f3b25287d8eed5a274d85fe7192c5812045fa3] drm/radeon: gcc fixes for si dpm
git bisect good 53f3b25287d8eed5a274d85fe7192c5812045fa3
# skip: [bd633a7c1ca0663ba10426a0a6aeda0257cbe804] drm/i915: fix SDEIMR assertion when disabling LCPLL
git bisect skip bd633a7c1ca0663ba10426a0a6aeda0257cbe804
# skip: [c67a470b1db781c54be07a87217cff35a91f564e] drm/i915: allow package C8+ states on Haswell (disabled)
git bisect skip c67a470b1db781c54be07a87217cff35a91f564e
# skip: [608806a549c656c925eeb253cbed768535f26e41] drm/i915: explicit store base gem object in dma_buf->priv
git bisect skip 608806a549c656c925eeb253cbed768535f26e41
# skip: [c76ce038e31a2b30bc3dd816f0aefaf685097a0a] drm/i915: Update rules for reading cache lines through the LLC
git bisect skip c76ce038e31a2b30bc3dd816f0aefaf685097a0a
# skip: [99486b8e6140da7721c932e708a6c17dc1dd970a] i915: Add a Kconfig option to turn on i915.preliminary_hw_support by default
git bisect skip 99486b8e6140da7721c932e708a6c17dc1dd970a
# skip: [cc98b413c197c4c6a62b1e469e9d05e613571af5] drm/i915: Track when an object is pinned for use by the display engine
git bisect skip cc98b413c197c4c6a62b1e469e9d05e613571af5
# bad: [a5b6f74e64f42ea2cfc0f04be59369471cbc8a94] drm/tegra: fix up page flip flags.
git bisect bad a5b6f74e64f42ea2cfc0f04be59369471cbc8a94
# skip: [fdaa930bee14abe5ed1d1aead5bc6a9a5660ccbf] drm/i915: Remove HAS_PIPE_CONTROL()
git bisect skip fdaa930bee14abe5ed1d1aead5bc6a9a5660ccbf
# good: [1793126fcebd7c18834f95d43b55e387a8803aa8] drm: implement experimental render nodes
git bisect good 1793126fcebd7c18834f95d43b55e387a8803aa8
# skip: [8254860096df085d633207d4d68550bb2ca29f17] drm/i915: Remove DSPARB_HWCONTROL()
git bisect skip 8254860096df085d633207d4d68550bb2ca29f17
# good: [0adb23709ba9dd87d8bfa1ee349482ac8ec0730a] drm/prime: double lock typo
git bisect good 0adb23709ba9dd87d8bfa1ee349482ac8ec0730a
# skip: [139ccd3fb12b3d17a773d2d61140f955a47fa470] drm/i915: make IVB FDI training match spec v3
git bisect skip 139ccd3fb12b3d17a773d2d61140f955a47fa470
# skip: [6aedd1f539f51b7b0c3d6be0088c3541f9d2c294] drm/i915: clarify Haswell power well bit names
git bisect skip 6aedd1f539f51b7b0c3d6be0088c3541f9d2c294
# good: [62f2104f3fc11c4cfd1307429cb955bfa48dcb37] drm: Advertise async page flip ability through GETCAP ioctl
git bisect good 62f2104f3fc11c4cfd1307429cb955bfa48dcb37
# good: [8637b407cf1740c52a01b9fc0cf506f31e225151] drm/i915/vma: Correct use after free in eviction
git bisect good 8637b407cf1740c52a01b9fc0cf506f31e225151
# skip: [3414caf63421762e57b26aa999e5187b42ee1606] drm/i915: drop WaMbcDriverBootEnable workaround
git bisect skip 3414caf63421762e57b26aa999e5187b42ee1606
# skip: [333a820416ccb0e24974b6ebe7d447c0c28c7b76] drm/i915: don't disable/reenable IVB error interrupts when not needed
git bisect skip 333a820416ccb0e24974b6ebe7d447c0c28c7b76
# skip: [3abdb33410d8b130437613a2fe3d5bf667ca34da] drm: Remove IS_IRONLAKE_D()
git bisect skip 3abdb33410d8b130437613a2fe3d5bf667ca34da
# skip: [60611c137641af41895828cfc74f5be64ed69b49] drm/i915: don't queue PM events we won't process
git bisect skip 60611c137641af41895828cfc74f5be64ed69b49
# good: [1ff60ddb84bb9ff6fa182710c4e08b66badf918c] drm/radeon/dpm: make sure dc performance level limits are valid (BTC-SI) (v2)
git bisect good 1ff60ddb84bb9ff6fa182710c4e08b66badf918c
# skip: [1403c0d4d46f2eed2ab13b89561c853988ad7513] drm/i915: merge HSW and SNB PM irq handlers
git bisect skip 1403c0d4d46f2eed2ab13b89561c853988ad7513
# skip: [215733fadb87709e91b3a622d786865292c9ab11] drm/i915: grab force_wake when restoring LCPLL
git bisect skip 215733fadb87709e91b3a622d786865292c9ab11
# skip: [e3ce7633ba38a97c2203ab60f381ce1642940328] drm/i915: Remove I915_READ_{NOPID, SYNC_0, SYNC_1})()
git bisect skip e3ce7633ba38a97c2203ab60f381ce1642940328
# skip: [5032d871f7d300aee10c309ea004eb4f851553fe] drm/i915: Cleaning up the relocate entry function
git bisect skip 5032d871f7d300aee10c309ea004eb4f851553fe
# skip: [ec013e7f491cceef0e87190a3c6b132ce49f7ce4] drm/i915: Expose energy counter on SNB+ through debugfs
git bisect skip ec013e7f491cceef0e87190a3c6b132ce49f7ce4
# skip: [605cd25b1ffa09a2f86b5c4bd120086dd5ea10a7] drm/i915: add dev_priv->pm_irq_mask
git bisect skip 605cd25b1ffa09a2f86b5c4bd120086dd5ea10a7
# skip: [35d8f2eb259e2d32c4bb67e9733ba0cba031f64f] drm/i915: Use POSTING_READ in lcpll code
git bisect skip 35d8f2eb259e2d32c4bb67e9733ba0cba031f64f
# skip: [4d3b3d5fd7d42a522a6c444388826bb23264db9f] drm/i915: fix how we mask PMIMR when adding work to the queue
git bisect skip 4d3b3d5fd7d42a522a6c444388826bb23264db9f
# skip: [e27e9708c45879f16fb824a2da94cd65e150a0c8] drm/i915: enable Package C8+ by default
git bisect skip e27e9708c45879f16fb824a2da94cd65e150a0c8
# skip: [f52ecbcf8009ef18cda86b30efd837338cd25392] drm/i915: don't update GEN6_PMIMR when it's not needed
git bisect skip f52ecbcf8009ef18cda86b30efd837338cd25392
# skip: [e8016055335687b90e7cd5bbfa30e0c269417f34] drm/i915: Fix context size calculation on SNB/IVB/VLV
git bisect skip e8016055335687b90e7cd5bbfa30e0c269417f34
# skip: [371db66add2ef701abd3f4295c4cd6bbc24cd5ca] drm/i915: add i915_pc8_status debugfs file
git bisect skip 371db66add2ef701abd3f4295c4cd6bbc24cd5ca
# skip: [a40066412cc2ace1c1299e7a4d7a81dc33395b6f] drm/i915: add the FCLK case to intel_ddi_get_cdclk_freq
git bisect skip a40066412cc2ace1c1299e7a4d7a81dc33395b6f
# skip: [edbfdb456053d0738e6b06a3827ead4158bfc918] drm/i915: wrap GEN6_PMIMR changes
git bisect skip edbfdb456053d0738e6b06a3827ead4158bfc918
# good: [efa27f9cec09518c9b574e3ab4a0a41717237429] Merge tag 'drm-intel-next-2013-08-23' of git://people.freedesktop.org/~danvet/drm-intel into drm-next
git bisect good efa27f9cec09518c9b574e3ab4a0a41717237429
# good: [679fe80fbe964ea7f9f71781c2ca65b630949da3] drm/radeon/dpm: make sure dc performance level limits are valid (CI)
git bisect good 679fe80fbe964ea7f9f71781c2ca65b630949da3
# bad: [9c725e5bcdae59d5383d4aec33a34c822582dda5] Merge branch 'drm-next-3.12' of git://people.freedesktop.org/~agd5f/linux into drm-next
git bisect bad 9c725e5bcdae59d5383d4aec33a34c822582dda5
# first bad commit: [9c725e5bcdae59d5383d4aec33a34c822582dda5] Merge branch 'drm-next-3.12' of git://people.freedesktop.org/~agd5f/linux into drm-next

v3.11 is fine, with and without monitor attached.
v3.12 is fine as long as X.org isn't started (but may fail to reboot 
      cleanly). If a monitor is connected I don't observe any problems,
      it freezes without a monitor connected.
v3.13-rc1-95-gb975dc3 appears not to freeze without a monitor anymore 
      (I didn't confirm that it's fine with a monitor attached), but I
      end up with the following Oops (this is before X.org is started).

[drm] hdmi device  not found 1 0 1
nouveau  [  DEVICE][0000:01:00.0] BOOT0  : 0x011000a1
nouveau  [  DEVICE][0000:01:00.0] Chipset: NV11 (NV11)
nouveau  [  DEVICE][0000:01:00.0] Family : NV11
nouveau  [   VBIOS][0000:01:00.0] checking PRAMIN for image...
nouveau  [   VBIOS][0000:01:00.0] ... appears to be valid
nouveau  [   VBIOS][0000:01:00.0] using image from PRAMIN
nouveau  [   VBIOS][0000:01:00.0] BMP version 5.11
nouveau  [   VBIOS][0000:01:00.0] version 03.11.00.18.00
nouveau W[   VBIOS][0000:01:00.0] DCB contains no useful data
nouveau W[   VBIOS][0000:01:00.0] DCB contains no useful data
nouveau W[   VBIOS][0000:01:00.0] DCB contains no useful data
nouveau W[   VBIOS][0000:01:00.0] DCB contains no useful data
nouveau W[  PTIMER][0000:01:00.0] unknown input clock freq
nouveau  [     PFB][0000:01:00.0] RAM type: SDRAM
nouveau  [     PFB][0000:01:00.0] RAM size: 32 MiB
nouveau  [     PFB][0000:01:00.0]    ZCOMP: 0 tags
BUG: unable to handle kernel NULL pointer dereference at   (null)
IP: [<e0ecaa4e>] _nouveau_clock_init+0x2a/0xaf [nouveau]
*pde = 00000000 
Oops: 0000 [#1] PREEMPT SMP 
Modules linked in: snd arc4 psmouse serio_raw pcspkr i2c_viapro soundcore nouveau(+) video rtl8180 mxm_wmi eeprom_93cx6 wmi mac80211 i2c_algo_bit drm_kms_helper ttm cfg80211 parport_pc processor button parport drm rfkill via_agp ext4 crc16 mbcache jbd2 dm_mod sg sd_mod sr_mod crc_t10dif cdrom crct10dif_common ata_generic pata_acpi 8139too 8139cp mii uhci_hcd ehci_pci ehci_hcd floppy pata_via libata usbcore usb_common scsi_mod
CPU: 0 PID: 360 Comm: modprobe Not tainted 3.13.0-rc1-00095-gb975dc3 #42
Hardware name:    /GA-7VT600, BIOS F5 08/16/2004
task: dee1e880 ti: de33c000 task.ti: de33c000
EIP: 0060:[<e0ecaa4e>] EFLAGS: 00010246 CPU: 0
EIP is at _nouveau_clock_init+0x2a/0xaf [nouveau]
EAX: de19c94c EBX: de19c900 ECX: 00000000 EDX: e0f3689c
ESI: 00000000 EDI: de19c9c8 EBP: de19c944 ESP: de33db90
 DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
CR0: 8005003b CR2: 00000000 CR3: 1e078000 CR4: 00000790
Stack:
 00000013 e0ebe0da de29d600 00000005 de19c900 00000000 de29d600 00000013
 e0ebe17d de19c900 00000005 e0f2e8ca 00000001 00000012 00000012 e0ee7f01
 00000000 00000012 de2caa38 0000000c 000000c0 de33dc00 00000000 00000000
Call Trace:
 [<e0ebe0da>] ? nouveau_object_inc+0x30/0x15a [nouveau]
 [<e0ebe17d>] ? nouveau_object_inc+0xd3/0x15a [nouveau]
 [<e0ee7f01>] ? nouveau_devobj_ctor+0x58c/0x5cd [nouveau]
 [<e0ebdc3b>] ? nouveau_object_ctor+0x31/0xb7 [nouveau]
 [<e0ebe352>] ? nouveau_object_new+0x14e/0x1e8 [nouveau]
 [<e0ebdd28>] ? nouveau_object_ref+0x67/0x98 [nouveau]
 [<e0f0d12b>] ? nouveau_drm_load+0x1ea/0x724 [nouveau]
 [<e0803e3c>] ? drm_dev_register+0xd6/0x16c [drm]
 [<e0805311>] ? drm_get_pci_dev+0x8c/0x110 [drm]
 [<c1189d00>] ? pci_read_config_byte+0x14/0x17
 [<e0f0d7e1>] ? nouveau_drm_probe+0x17c/0x19e [nouveau]
 [<c118da65>] ? pci_device_probe+0x50/0x9d
 [<c1117aeb>] ? sysfs_create_link+0x24/0x2d
 [<c120a714>] ? driver_probe_device+0x8c/0x191
 [<c116897f>] ? kobject_add_internal+0x105/0x1ae
 [<c118d5c0>] ? pci_match_id+0x18/0x36
 [<c120a885>] ? __driver_attach+0x44/0x5f
 [<c120947d>] ? bus_for_each_dev+0x50/0x5a
 [<c120a379>] ? driver_attach+0x14/0x16
 [<c120a841>] ? __device_attach+0x28/0x28
 [<c120a0e1>] ? bus_add_driver+0xd9/0x190
 [<c120ad08>] ? driver_register+0x77/0xab
 [<e0a84000>] ? 0xe0a83fff
 [<e0a84000>] ? 0xe0a83fff
 [<c100043f>] ? do_one_initcall+0x8f/0x12c
 [<c1094f2d>] ? jump_label_module_notify+0x139/0x15a
 [<c1048c79>] ? notifier_call_chain+0x29/0x42
 [<c1048e72>] ? __blocking_notifier_call_chain+0x45/0x51
 [<c1076dcb>] ? load_module+0x13e3/0x18e1
 [<c107733b>] ? SyS_init_module+0x72/0x88
 [<c12ed88d>] ? sysenter_do_call+0x12/0x28
Code: d2 55 b9 21 00 00 00 57 56 53 89 c3 8d 68 44 83 ec 10 8b 70 40 89 ef 31 c0 f3 ab 8d 43 4c 89 43 4c 89 43 50 c6 83 c4 00 00 00 ff <8b> 16 83 fa 19 74 39 89 d8 ff 93 e8 00 00 00 89 c7 8b 06 85 ff
EIP: [<e0ecaa4e>] _nouveau_clock_init+0x2a/0xaf [nouveau] SS:ESP 0068:de33db90
CR2: 0000000000000000
---[ end trace 0f90bffd76312ecf ]---

lspci -nn:
00:00.0 Host bridge [0600]: VIA Technologies, Inc. VT8377 [KT400/KT600 AGP] Host Bridge [1106:3189] (rev 80)
00:01.0 PCI bridge [0604]: VIA Technologies, Inc. VT8237/VX700 PCI Bridge [1106:b198]
00:0b.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL-8185 IEEE 802.11a/b/g Wireless LAN Controller [10ec:8185] (rev 20)
00:0f.0 IDE interface [0101]: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE [1106:0571] (rev 06)
00:10.0 USB controller [0c03]: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller [1106:3038] (rev 81)
00:10.1 USB controller [0c03]: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller [1106:3038] (rev 81)
00:10.2 USB controller [0c03]: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller [1106:3038] (rev 81)
00:10.4 USB controller [0c03]: VIA Technologies, Inc. USB 2.0 [1106:3104] (rev 86)
00:11.0 ISA bridge [0601]: VIA Technologies, Inc. VT8237 ISA bridge [KT600/K8T800/K8T890 South] [1106:3227]
00:11.5 Multimedia audio controller [0401]: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller [1106:3059] (rev 60)
00:13.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ [10ec:8139] (rev 10)
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation NV11 [GeForce2 MX/MX 400] [10de:0110] (rev a1)

excerpt of lspci -nnvvv:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation NV11 [GeForce2 MX/MX 400] [10de:0110] (rev a1) (prog-if 00 [VGA controller])
        Subsystem: ASUSTeK Computer Inc. AGP-V7100 Pro [1043:4015]
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 32 (1250ns min, 250ns max)
        Interrupt: pin A routed to IRQ 16
        Region 0: Memory at e0000000 (32-bit, non-prefetchable) [size=16M]
        Region 1: Memory at d8000000 (32-bit, prefetchable) [size=128M]
        [virtual] Expansion ROM at e1000000 [disabled] [size=64K]
        Capabilities: [60] Power Management version 2
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [44] AGP version 2.0
                Status: RQ=32 Iso- ArqSz=0 Cal=0 SBA- ITACoh- GART64- HTrans- 64bit- FW+ AGP3- Rate=x1,x2,x4
                Command: RQ=1 ArqSz=0 Cal=0 SBA- AGP- GART64- 64bit- FW- Rate=<none>
        Kernel driver in use: nouveau

[no USB devices connected, just the USB root hubs]

The userspace is current Debian/unstable as of today, including these 
packages:
- xserver-xorg-core 2:1.14.3-5
- xserver-xorg-video-nouveau 1:1.0.10-1
- gcc-4.8 4.8.2-5
- binutils 2.23.91.20131123-1

Gzipped dmesg logs for 3.11.5, 3.12.1 and v3.13-rc1-95-gb975dc3 are 
attached, as well as Xorg.0.log for 3.11 and 3.13 and the 3.12 
localmodconfig.

I'd be happy to test any pointers.

Regards
	Stefan Lippers-Hollmann
-------------- next part --------------
A non-text attachment was scrubbed...
Name: config-3.11.0-rc7-00679-ga1bfacf.gz
Type: application/x-gzip
Size: 20676 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20131126/bf99276f/attachment-0006.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dmesg-3.11.log.gz
Type: application/x-gzip
Size: 11188 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20131126/bf99276f/attachment-0007.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dmesg-3.12.log.gz
Type: application/x-gzip
Size: 11497 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20131126/bf99276f/attachment-0008.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dmesg-3.13.log.gz
Type: application/x-gzip
Size: 12335 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20131126/bf99276f/attachment-0009.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Xorg-3.11.log.gz
Type: application/x-gzip
Size: 3979 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20131126/bf99276f/attachment-0010.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Xorg-3.13.log.gz
Type: application/x-gzip
Size: 1147 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20131126/bf99276f/attachment-0011.bin>


More information about the dri-devel mailing list