Bug del driver de Nvidia en el kernel 3.12

En vez de solucionar bugs, parece que cada vez tengo más :-(

Esta vez ha sido el driver binario propietario de NVIDIA 331.20 el que ha empezado a petar con los kernels de la rama 3.12.x.

[    5.118242] nvidia: module license 'NVIDIA' taints kernel.
[    5.118245] Disabling lock debugging due to kernel taint
[    5.125357] ------------[ cut here ]------------
[    5.125413] kernel BUG at drivers/cpufreq/cpufreq.c:79!
[    5.125466] invalid opcode: 0000 [#1] SMP 
[    5.125607] Modules linked in: nvidia(PO+) snd_page_alloc acpi_cpufreq(+) snd_seq_midi snd_seq_midi_event snd_rawmidi microcode(+) mei_me button video processor drm wmi snd_seq mei i2c_i801 i2c_core evdev snd_timer snd_seq_device lpc_ich snd mfd_core soundcore ext4 crc16 jbd2 mbcache ata_generic sg hid_generic sd_mod sr_mod cdrom crc_t10dif crct10dif_common usbhid hid ahci libahci libata scsi_mod firewire_ohci firewire_core crc_itu_t ehci_pci ehci_hcd e1000e xhci_hcd ptp pps_core usbcore usb_common thermal fan thermal_sys
[    5.128249] CPU: 0 PID: 412 Comm: modprobe Tainted: P           O 3.12.2-amd64 #1
[    5.128305] Hardware name: MSI MS-7751/Z77A-GD65 (MS-7751), BIOS V10.2 02/27/2012
[    5.128361] task: ffff88003783f140 ti: ffff8800378bc000 task.ti: ffff8800378bc000
[    5.128441] RIP: 0010:[<ffffffff81284189>]  [<ffffffff81284189>] lock_policy_rwsem_read+0x1b/0x3a
[    5.128572] RSP: 0018:ffff8800378bdca0  EFLAGS: 00010246
[    5.128637] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 00000000bfebfbff
[    5.128705] RDX: ffff88021ec00000 RSI: 0000000000000001 RDI: 0000000000000000
[    5.128773] RBP: ffff8800d9232ff0 R08: ffff8800d9232ff0 R09: ffff8800d9232ff4
[    5.128841] R10: ffff88021e028158 R11: 0000000000000001 R12: ffff880037394008
[    5.128909] R13: ffff8800d87ae008 R14: 0000000000000000 R15: ffff8800378bdf08
[    5.128977] FS:  00007fdbcb5dd700(0000) GS:ffff88021ec00000(0000) knlGS:0000000000000000
[    5.129058] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    5.129124] CR2: 00007fdbcae13000 CR3: 0000000214e0a000 CR4: 00000000001407f0
[    5.129192] Stack:
[    5.129252]  ffffffff8128542d ffff8800d9233000 ffff8800d9232ff0 ffffffffa08b1f82
[    5.129512]  ffffffffa08842ab ffff8800d9232ff8 ffffffffa03c04c9 ffff880037394008
[    5.129771]  ffff8800d9230038 0000000000000000 ffffffffa0393b77 ffff8800d9230038
[    5.130030] Call Trace:
[    5.130093]  [<ffffffff8128542d>] ? cpufreq_get+0x35/0x63
[    5.130213]  [<ffffffffa08b1f82>] ? os_get_cpu_frequency+0x7/0xe [nvidia]
[    5.130334]  [<ffffffffa08842ab>] ? _nv013197rm+0x9/0x21 [nvidia]
[    5.130455]  [<ffffffffa03c04c9>] ? _nv000808rm+0x2a9/0xf08 [nvidia]
[    5.130570]  [<ffffffffa0393b77>] ? _nv000811rm+0x89/0xce [nvidia]
[    5.130688]  [<ffffffffa088c1a6>] ? rm_init_rm+0x24/0x7e [nvidia]
[    5.130794]  [<ffffffffa0d65090>] ? nvidia_init_module+0x90/0x701 [nvidia]
[    5.130900]  [<ffffffffa0d65792>] ? nvidia_frontend_init_module+0x82/0x8f0 [nvidia]
[    5.131020]  [<ffffffffa0d65710>] ? nv_drm_init+0xf/0xf [nvidia]
[    5.131087]  [<ffffffff8100026a>] ? do_one_initcall+0x88/0x11a
[    5.131156]  [<ffffffff8107fc88>] ? load_module+0x1293/0x1e15
[    5.131223]  [<ffffffff8107cf9a>] ? module_flags+0x6f/0x6f
[    5.131290]  [<ffffffff810bd5af>] ? __get_free_pages+0x5/0x3e
[    5.131357]  [<ffffffff81080898>] ? SyS_init_module+0x8e/0x99
[    5.131425]  [<ffffffff81367e62>] ? system_call_fastpath+0x16/0x1b
[    5.131491] Code: 44 24 04 e8 ac ff ff ff 8b 44 24 04 41 59 5b c3 48 63 ff 48 c7 c0 a8 f8 00 00 48 8b 14 fd b0 d1 68 81 48 8b 04 10 48 85 c0 75 02 <0f> 0b 8b 80 84 00 00 00 48 c7 c7 70 f8 00 00 48 03 3c c5 b0 d1 
[    5.134512] RIP  [<ffffffff81284189>] lock_policy_rwsem_read+0x1b/0x3a
[    5.134624]  RSP <ffff8800378bdca0>
[    5.134694] ---[ end trace 57df780370d795bd ]---

Un bonito volcado de pila para una torta como un pan. Y así hasta en 4 ocasiones (de momento).

Y ahora me diréis que la culpa es mía, por usar el driver propietario de NVIDIA. Y tenéis razón, aunque al driver libre nouveau todavía le queda un poco para ser realmente usable con mi tarjeta gráfica (mi tarjeta es una Kepler, y el soporte de power management y control de frecuencias es todavía WIP).

Lo más descorazonador es que no parece que nadie en los foros de Nvidia se haya quejado del bug, así que debe ser alguna combinación rara de factores. :-/

Actualización: he reportado el bug en el foro de NVIDIA, aunque me parece que no me han hecho mucho caso. Tampoco ayuda el hecho que no haya podido incluir el nvidia-bug-report.log.gz que piden porque el propio foro no parece soportar hacerlo desde Linux (misterios del Javascript). Y encima sale el listo de turno... En fin, estoy esperando a ver si vuelve a pasar con el kernel 3.12.3 antes de dar más la tabarra.

:wq

blogroll

social