Historia pewnego błędu
Zapewne nie raz słyszeliście opowieści o tym, jak stabilnym systemem jest Linux. Używają go w NASA, CIA i MOPSie. Ostatnio poleciał nawet na Marsa! Chcecie dowiedzieć się jaką porywającą przygodą może być używanie Linuksa tu, na ziemi, na waszych komputerach? No to przeczytajcie historię o tym jak przez pięć miesięcy użytkownicy Linuksa posiadający kartę NVIDII nie mogli normalnie korzystać ze swoich komputerów. Komedia drogie Panie!
Wyobraźcie sobie taką sytuację: żyjecie sobie jak w bajce, używacie Windows, cieszycie się ogromną bazą oprogramowania, stabilnością i przyjemnością płynącą z obsługi tego systemu. Nic wam nie dolega, macie co robić, jest w co zagrać. Od czasu do czasu WU zainstaluje łagodnie jakiś update systemu, nowe sterowniki. Wszystko gładko, nie przerywając snu. Raz na miesiąc, ze zdziwieniem czytacie raporty o problemach z aktualizacjami Windows, ale ponieważ nie używacie egzotycznych konfiguracji, szybko wracacie do codziennych zajęć. Sielanka.
Przychodzi wiosna, zwijacie dywan do trzepania, wychodzicie przed dom, a tu nagle, ni stąd ni zowąd podchodzi do Was "somsiad informatyk" i mówi: "Panie, buhehehehe na łindołsie pan siedzisz hehehe? Na Linuksie więcej klatek i lepszy, a jaki twardy panie!". Myślicie sobie, coś w tym może być, poproszę "somsiada", nich mi postawi...
Lepiej nie!
26 września 2020, pewien użytkownik Linuksa, na wpół szczęśliwy posiadacz karty od NVIDII, na forums.developer.nvidia.com pisze tak:
Sep 25 16:08:50 scout kernel: ---[ end trace 2bfccdaeb2e87f56 ]--- Sep 25 16:08:50 scout kernel: CR2: 0000000000000020 Sep 25 16:08:50 scout kernel: snd_timer syscopyarea hid_generic intel_uncore i2c_i801 pcspkr i2c_smbus snd sysfillrect mei_me evdev e1000e sysimgblt mei fb_sys_fops lpc_ich soundcore mac_hid wmi usbhid hid drm crypto_user agpgart ip_tables x_tables ext4 crc32c_generic crc16 mbcache jbd2 crc32c_intel xhci_pci> Sep 25 16:08:50 scout kernel: Modules linked in: fuse 8021q garp mrp stp llc uvcvideo btusb videobuf2_vmalloc btrtl videobuf2_memops btbcm videobuf2_v4l2 btintel videobuf2_common snd_usb_audio bluetooth videodev snd_usbmidi_lib snd_rawmidi snd_seq_device mc ecdh_generic ecc nvidia_drm(POE) nvidia_modeset(POE)> Sep 25 16:08:50 scout kernel: ? ret_from_fork+0x22/0x30 Sep 25 16:08:50 scout kernel: ? __kthread_bind_mask+0x60/0x60 Sep 25 16:08:50 scout kernel: ? kthread+0x142/0x160 Sep 25 16:08:50 scout kernel: ? irq_thread_check_affinity+0xd0/0xd0 Sep 25 16:08:50 scout kernel: ? irq_finalize_oneshot.part.0+0xe0/0xe0 Sep 25 16:08:50 scout kernel: ? irq_thread+0xf5/0x1a0 Sep 25 16:08:50 scout kernel: ? irq_thread_fn+0x20/0x60 Sep 25 16:08:50 scout kernel: ? nvidia_isr_kthread_bh+0x1b/0x40 [nvidia] Sep 25 16:08:50 scout kernel: ? rm_isr_bh+0x1c/0x60 [nvidia] Sep 25 16:08:50 scout kernel: ? disable_irq_nosync+0x10/0x10 Sep 25 16:08:50 scout kernel: ? _nv000711rm+0xa9/0x200 [nvidia] Sep 25 16:08:50 scout kernel: ? _nv027682rm+0x8d/0x180 [nvidia] Sep 25 16:08:50 scout kernel: ? _nv007560rm+0x155/0x270 [nvidia] Sep 25 16:08:50 scout kernel: ? _nv027674rm+0x820/0xdc0 [nvidia] Sep 25 16:08:50 scout kernel: ? _nv018354rm+0xac/0xe0 [nvidia] Sep 25 16:08:50 scout kernel: ? _nv026016rm+0x10/0x10 [nvidia] Sep 25 16:08:50 scout kernel: ? _nv018321rm+0x235/0x2d0 [nvidia] Sep 25 16:08:50 scout kernel: ? _nv018307rm+0x72/0xc0 [nvidia] Sep 25 16:08:50 scout kernel: ? _nv018341rm+0xde/0x260 [nvidia] Sep 25 16:08:50 scout kernel: ? _nv018340rm+0xd9a/0xe90 [nvidia] Sep 25 16:08:50 scout kernel: ? _nv018400rm+0x1af/0x210 [nvidia] Sep 25 16:08:50 scout kernel: ? _nv011586rm+0xff/0x180 [nvidia] Sep 25 16:08:50 scout kernel: ? _nv000083rm+0x12f/0x1a0 [nvidia] Sep 25 16:08:50 scout kernel: ? _nv011658rm+0x13d/0x1c0 [nvidia] Sep 25 16:08:50 scout kernel: ? _nv025414rm+0x18/0x60 [nvidia] Sep 25 16:08:50 scout kernel: ? _nv029871rm+0x1b/0x90 [nvidia] Sep 25 16:08:50 scout kernel: Call Trace: Sep 25 16:08:50 scout kernel: CR2: 0000000000000020 CR3: 000000014e55a002 CR4: 00000000001606e0 Sep 25 16:08:50 scout kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 Sep 25 16:08:50 scout kernel: FS: 0000000000000000(0000) GS:ffff93368ec80000(0000) knlGS:0000000000000000 Sep 25 16:08:50 scout kernel: R13: 0000000000000000 R14: ffff93367be8aaa8 R15: ffff93367be8abb0 Sep 25 16:08:50 scout kernel: R10: ffffffffc13f5160 R11: ffff93368cbd6008 R12: 0000000000000020 Sep 25 16:08:50 scout kernel: RBP: ffff93367be8a940 R08: ffffffffc271dbf0 R09: ffff93367be8a920 Sep 25 16:08:50 scout kernel: RDX: ffff93366da9fe88 RSI: ffffffffffffffff RDI: 0000000000000020 Sep 25 16:08:50 scout kernel: RAX: 0000000000000020 RBX: 0000000000000020 RCX: 0000000000000010 Sep 25 16:08:50 scout kernel: RSP: 0018:ffffb1728042fbe0 EFLAGS: 00010202 Sep 25 16:08:50 scout kernel: Code: 90 ff e8 ea b0 00 00 31 c0 48 83 c4 08 c3 31 c0 eb bf 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 83 ec 08 48 85 ff 74 57 <48> 8b 17 31 c0 48 85 d2 75 0e eb 2b 0f 1f 00 48 8b 52 10 48 85 d2 Sep 25 16:08:50 scout kernel: RIP: 0010:_nv027467rm+0x9/0x90 [nvidia] Sep 25 16:08:50 scout kernel: Hardware name: System manufacturer System Product Name/MAXIMUS V GENE, BIOS 0701 03/29/2012 Sep 25 16:08:50 scout kernel: CPU: 2 PID: 556 Comm: irq/51-nvidia Tainted: P OE 5.8.10-arch1-1 #1 Sep 25 16:08:50 scout kernel: Oops: 0000 [#1] PREEMPT SMP PTI Sep 25 16:08:50 scout kernel: PGD 800000014e499067 P4D 800000014e499067 PUD 0 Sep 25 16:08:50 scout kernel: #PF: error_code(0x0000) - not-present page Sep 25 16:08:50 scout kernel: #PF: supervisor read access in kernel mode Sep 25 16:08:50 scout kernel: BUG: kernel NULL pointer dereference, address: 0000000000000020
Niedługo po tym zgłoszeniu pojawią się kolejne. Inny użytkownik Linuksa pisze, że:
I also encountered this bug today, while using google-chome (Chromium). System completely unresponsive, couldn’t switch to a VT, hard reset required.
Używał sobie google-chrome (Albo może Chromium, chyba sam nie do końca wie), aż tu nagle jego system przestał odpowiadać. Musicie wiedzieć, że Linux nie potrafi poprawnie obsługiwać awarii sterownika grafiki (i nie tylko) i takie sytuacje kończą się twardym zwisem, a w efekcie restartem maszyny. Pewnie używacie Windows, więc wiecie, że tam, jeśli już ma miejsce coś takiego, to kończy się to ponowną (błyskawiczną) inicjalizacją sterownika. Pod Linuksem... no cóż.
Raporty zaczynają się sypać lawinowo. Kolejni użytkownicy różnych dystrybucji, opartych na różnych wersjach jądra, wysyłają kolejne zgłoszenia:
Oct 07 10:49:40 unglued-pc kernel: BUG: kernel NULL pointer dereference, address: 0000000000000020 Oct 07 10:49:40 unglued-pc kernel: #PF: supervisor read access in kernel mode Oct 07 10:49:40 unglued-pc kernel: #PF: error_code(0x0000) - not-present page Oct 07 10:49:40 unglued-pc kernel: PGD 800000039a2fc067 P4D 800000039a2fc067 PUD 0 Oct 07 10:49:40 unglued-pc kernel: Oops: 0000 [#1] PREEMPT SMP PTI Oct 07 10:49:40 unglued-pc kernel: CPU: 3 PID: 1977 Comm: irq/44-nvidia Tainted: P OE 5.8.13-arch1-1 #1 Oct 07 10:49:40 unglued-pc kernel: Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./Z77 Extreme4, BIOS P2.90 07/11/2013 Oct 07 10:49:40 unglued-pc kernel: RIP: 0010:_nv027467rm+0x9/0x90 [nvidia] Oct 07 10:49:40 unglued-pc kernel: Code: 90 ff e8 ea b0 00 00 31 c0 48 83 c4 08 c3 31 c0 eb bf 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 83 ec 08 48 85 ff 74 57 <48> 8b 17 31 c0 48 85 d2 75 0e eb 2b 0f 1f 00 48 8b 52 10 48 85 d2 Oct 07 10:49:40 unglued-pc kernel: RSP: 0018:ffffaded80717c10 EFLAGS: 00010202 Oct 07 10:49:40 unglued-pc kernel: RAX: 0000000000000020 RBX: 0000000000000020 RCX: 0000000000000010 Oct 07 10:49:40 unglued-pc kernel: RDX: ffff9a6387795688 RSI: ffffffffffffffff RDI: 0000000000000020 Oct 07 10:49:40 unglued-pc kernel: RBP: ffff9a6383922970 R08: ffffffffc26f1bf0 R09: ffff9a6383922950 Oct 07 10:49:40 unglued-pc kernel: R10: ffffffffc13c9160 R11: ffff9a63909a0808 R12: 0000000000000020 Oct 07 10:49:40 unglued-pc kernel: R13: 0000000000000000 R14: ffff9a6383922ad8 R15: ffff9a6383922be0 Oct 07 10:49:40 unglued-pc kernel: FS: 0000000000000000(0000) GS:ffff9a639f380000(0000) knlGS:0000000000000000 Oct 07 10:49:40 unglued-pc kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 Oct 07 10:49:40 unglued-pc kernel: CR2: 0000000000000020 CR3: 000000039a034005 CR4: 00000000001606e0 Oct 07 10:49:40 unglued-pc kernel: Call Trace: Oct 07 10:49:40 unglued-pc kernel: ? _nv029871rm+0x1b/0x90 [nvidia] Oct 07 10:49:40 unglued-pc kernel: ? _nv025414rm+0x18/0x60 [nvidia] Oct 07 10:49:40 unglued-pc kernel: ? _nv011658rm+0x13d/0x1c0 [nvidia] Oct 07 10:49:40 unglued-pc kernel: ? _nv000083rm+0x12f/0x1a0 [nvidia] Oct 07 10:49:40 unglued-pc kernel: ? _nv011586rm+0xff/0x180 [nvidia] Oct 07 10:49:40 unglued-pc kernel: ? _nv018400rm+0x1af/0x210 [nvidia] Oct 07 10:49:40 unglued-pc kernel: ? _nv018340rm+0xd9a/0xe90 [nvidia] Oct 07 10:49:40 unglued-pc kernel: ? _nv018307rm+0x72/0xc0 [nvidia] Oct 07 10:49:40 unglued-pc kernel: ? _nv018321rm+0x235/0x2d0 [nvidia] Oct 07 10:49:40 unglued-pc kernel: ? _nv026016rm+0x10/0x10 [nvidia] Oct 07 10:49:40 unglued-pc kernel: ? _nv018354rm+0xac/0xe0 [nvidia] Oct 07 10:49:40 unglued-pc kernel: ? _nv027674rm+0x820/0xdc0 [nvidia] Oct 07 10:49:40 unglued-pc kernel: ? _nv007560rm+0x155/0x270 [nvidia] Oct 07 10:49:40 unglued-pc kernel: ? _nv027682rm+0x8d/0x180 [nvidia] Oct 07 10:49:40 unglued-pc kernel: ? _nv000711rm+0xa9/0x200 [nvidia] Oct 07 10:49:40 unglued-pc kernel: ? disable_irq_nosync+0x10/0x10 Oct 07 10:49:40 unglued-pc kernel: ? rm_isr_bh+0x1c/0x60 [nvidia] Oct 07 10:49:40 unglued-pc kernel: ? nvidia_isr_kthread_bh+0x1b/0x40 [nvidia] Oct 07 10:49:40 unglued-pc kernel: ? irq_thread_fn+0x20/0x60 Oct 07 10:49:40 unglued-pc kernel: ? irq_thread+0xf5/0x1a0 Oct 07 10:49:40 unglued-pc kernel: ? irq_finalize_oneshot.part.0+0xe0/0xe0 Oct 07 10:49:40 unglued-pc kernel: ? irq_thread_check_affinity+0xd0/0xd0 Oct 07 10:49:40 unglued-pc kernel: ? kthread+0x142/0x160 Oct 07 10:49:40 unglued-pc kernel: ? __kthread_bind_mask+0x60/0x60 Oct 07 10:49:40 unglued-pc kernel: ? ret_from_fork+0x22/0x30 Oct 07 10:49:40 unglued-pc kernel: Modules linked in: snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio xt_conntrack xt_MASQUERADE nf_conntrack_netlink nfnetlink xfrm_user xfrm_algo xt_addrtype iptable_filter iptable_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 libcrc32c br_netfilter bridge stp llc overlay intel_rapl_msr mei_hdcp mxm_wmi at24 iTCO_wdt intel_pmc_bxt iTCO_vendor_support nvidia_drm(POE) nvidia_modeset(POE) uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_common videodev nvidia(POE) pl2303 intel_rapl_common fuse x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel kvm irqbypass crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel crypto_simd cryptd glue_helper rapl intel_cstate intel_uncore pcspkr input_leds mousedev uas usb_storage tg3 libphy i915 i2c_algo_bit snd_hda_codec_hdmi drm_kms_helper cec snd_hda_intel rc_core snd_intel_dspcfg intel_gtt snd_hda_codec syscopyarea sysfillrect sysimgblt fb_sys_fops intel_smartconnect snd_hda_core mei_me wmi Oct 07 10:49:40 unglued-pc kernel: i2c_i801 mei lpc_ich i2c_smbus snd_usb_audio snd_usbmidi_lib snd_hwdep snd_rawmidi snd_seq_device mc snd_pcm snd_timer snd soundcore evdev joydev mac_hid vboxnetflt(OE) vboxnetadp(OE) vboxdrv(OE) drm crypto_user agpgart ip_tables x_tables ext4 crc32c_generic crc16 mbcache jbd2 hid_generic usbhid hid sr_mod cdrom crc32c_intel ehci_pci xhci_pci xhci_pci_renesas xhci_hcd ehci_hcd Oct 07 10:49:40 unglued-pc kernel: CR2: 0000000000000020 Oct 07 10:49:40 unglued-pc kernel: ---[ end trace e8cb544619588939 ]--- Oct 07 10:49:40 unglued-pc kernel: RIP: 0010:_nv027467rm+0x9/0x90 [nvidia] Oct 07 10:49:40 unglued-pc kernel: Code: 90 ff e8 ea b0 00 00 31 c0 48 83 c4 08 c3 31 c0 eb bf 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 83 ec 08 48 85 ff 74 57 <48> 8b 17 31 c0 48 85 d2 75 0e eb 2b 0f 1f 00 48 8b 52 10 48 85 d2 Oct 07 10:49:40 unglued-pc kernel: RSP: 0018:ffffaded80717c10 EFLAGS: 00010202 Oct 07 10:49:40 unglued-pc kernel: RAX: 0000000000000020 RBX: 0000000000000020 RCX: 0000000000000010 Oct 07 10:49:40 unglued-pc kernel: RDX: ffff9a6387795688 RSI: ffffffffffffffff RDI: 0000000000000020 Oct 07 10:49:40 unglued-pc kernel: RBP: ffff9a6383922970 R08: ffffffffc26f1bf0 R09: ffff9a6383922950 Oct 07 10:49:40 unglued-pc kernel: R10: ffffffffc13c9160 R11: ffff9a63909a0808 R12: 0000000000000020 Oct 07 10:49:40 unglued-pc kernel: R13: 0000000000000000 R14: ffff9a6383922ad8 R15: ffff9a6383922be0 Oct 07 10:49:40 unglued-pc kernel: FS: 0000000000000000(0000) GS:ffff9a639f380000(0000) knlGS:0000000000000000 Oct 07 10:49:40 unglued-pc kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 Oct 07 10:49:40 unglued-pc kernel: CR2: 0000000000000020 CR3: 000000039a034005 CR4: 00000000001606e0 Oct 07 10:49:40 unglued-pc kernel: BUG: kernel NULL pointer dereference, address: 0000000000000027 Oct 07 10:49:40 unglued-pc kernel: #PF: supervisor read access in kernel mode Oct 07 10:49:40 unglued-pc kernel: #PF: error_code(0x0000) - not-present page Oct 07 10:49:40 unglued-pc kernel: PGD 800000039a2fc067 P4D 800000039a2fc067 PUD 0 Oct 07 10:49:40 unglued-pc kernel: Oops: 0000 [#2] PREEMPT SMP PTI Oct 07 10:49:40 unglued-pc kernel: CPU: 3 PID: 1977 Comm: irq/44-nvidia Tainted: P D OE 5.8.13-arch1-1 #1 Oct 07 10:49:40 unglued-pc kernel: Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./Z77 Extreme4, BIOS P2.90 07/11/2013 Oct 07 10:49:40 unglued-pc kernel: RIP: 0010:do_exit+0x371/0xab0 Oct 07 10:49:40 unglued-pc kernel: Code: d5 d5 26 00 48 89 df e8 7d 90 28 00 45 84 ed 0f 85 34 04 00 00 48 89 df e8 4c 50 02 00 e8 d7 f7 01 00 48 89 df e8 7f f3 f9 ff <f6> 43 27 02 0f 85 69 05 00 00 48 89 df e8 5d aa 17 00 48 89 df e8 Oct 07 10:49:40 unglued-pc kernel: RSP: 0018:ffffaded80717eb0 EFLAGS: 00010286 Oct 07 10:49:40 unglued-pc kernel: RAX: 0000000080000000 RBX: 0000000000000000 RCX: 0000000000000000 Oct 07 10:49:40 unglued-pc kernel: RDX: 0000000000000001 RSI: 0000000000000000 RDI: 00000000ffffffff Oct 07 10:49:40 unglued-pc kernel: RBP: ffff9a63890ddb80 R08: 0000000000000001 R09: 0000000000000000 Oct 07 10:49:40 unglued-pc kernel: R10: ffff9a63843c5000 R11: ffffaded80717800 R12: ffff9a63890de32c Oct 07 10:49:40 unglued-pc kernel: R13: 0000000000000001 R14: 0000000000000001 R15: ffff9a63890ddb80 Oct 07 10:49:40 unglued-pc kernel: FS: 0000000000000000(0000) GS:ffff9a639f380000(0000) knlGS:0000000000000000 Oct 07 10:49:40 unglued-pc kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 Oct 07 10:49:40 unglued-pc kernel: CR2: 0000000000000027 CR3: 000000039a034005 CR4: 00000000001606e0 Oct 07 10:49:40 unglued-pc kernel: Call Trace: Oct 07 10:49:40 unglued-pc kernel: ? task_work_run+0x5c/0x90 Oct 07 10:49:40 unglued-pc kernel: ? do_exit+0x369/0xab0 Oct 07 10:49:40 unglued-pc kernel: ? kthread+0x142/0x160 Oct 07 10:49:40 unglued-pc kernel: ? rewind_stack_do_exit+0x17/0x17 Oct 07 10:49:40 unglued-pc kernel: Modules linked in: snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio xt_conntrack xt_MASQUERADE nf_conntrack_netlink nfnetlink xfrm_user xfrm_algo xt_addrtype iptable_filter iptable_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 libcrc32c br_netfilter bridge stp llc overlay intel_rapl_msr mei_hdcp mxm_wmi at24 iTCO_wdt intel_pmc_bxt iTCO_vendor_support nvidia_drm(POE) nvidia_modeset(POE) uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_common videodev nvidia(POE) pl2303 intel_rapl_common fuse x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel kvm irqbypass crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel crypto_simd cryptd glue_helper rapl intel_cstate intel_uncore pcspkr input_leds mousedev uas usb_storage tg3 libphy i915 i2c_algo_bit snd_hda_codec_hdmi drm_kms_helper cec snd_hda_intel rc_core snd_intel_dspcfg intel_gtt snd_hda_codec syscopyarea sysfillrect sysimgblt fb_sys_fops intel_smartconnect snd_hda_core mei_me wmi Oct 07 10:49:40 unglued-pc kernel: i2c_i801 mei lpc_ich i2c_smbus snd_usb_audio snd_usbmidi_lib snd_hwdep snd_rawmidi snd_seq_device mc snd_pcm snd_timer snd soundcore evdev joydev mac_hid vboxnetflt(OE) vboxnetadp(OE) vboxdrv(OE) drm crypto_user agpgart ip_tables x_tables ext4 crc32c_generic crc16 mbcache jbd2 hid_generic usbhid hid sr_mod cdrom crc32c_intel ehci_pci xhci_pci xhci_pci_renesas xhci_hcd ehci_hcd Oct 07 10:49:40 unglued-pc kernel: CR2: 0000000000000027 Oct 07 10:49:40 unglued-pc kernel: ---[ end trace e8cb54461958893a ]--- Oct 07 10:49:40 unglued-pc kernel: RIP: 0010:_nv027467rm+0x9/0x90 [nvidia] Oct 07 10:49:40 unglued-pc kernel: Code: 90 ff e8 ea b0 00 00 31 c0 48 83 c4 08 c3 31 c0 eb bf 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 83 ec 08 48 85 ff 74 57 <48> 8b 17 31 c0 48 85 d2 75 0e eb 2b 0f 1f 00 48 8b 52 10 48 85 d2 Oct 07 10:49:40 unglued-pc kernel: RSP: 0018:ffffaded80717c10 EFLAGS: 00010202 Oct 07 10:49:40 unglued-pc kernel: RAX: 0000000000000020 RBX: 0000000000000020 RCX: 0000000000000010 Oct 07 10:49:40 unglued-pc kernel: RDX: ffff9a6387795688 RSI: ffffffffffffffff RDI: 0000000000000020 Oct 07 10:49:40 unglued-pc kernel: RBP: ffff9a6383922970 R08: ffffffffc26f1bf0 R09: ffff9a6383922950 Oct 07 10:49:40 unglued-pc kernel: R10: ffffffffc13c9160 R11: ffff9a63909a0808 R12: 0000000000000020 Oct 07 10:49:40 unglued-pc kernel: R13: 0000000000000000 R14: ffff9a6383922ad8 R15: ffff9a6383922be0 Oct 07 10:49:40 unglued-pc kernel: FS: 0000000000000000(0000) GS:ffff9a639f380000(0000) knlGS:0000000000000000 Oct 07 10:49:40 unglued-pc kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 Oct 07 10:49:40 unglued-pc kernel: CR2: 0000000000000027 CR3: 000000039a034005 CR4: 00000000001606e0 Oct 07 10:49:40 unglued-pc kernel: Fixing recursive fault but reboot is needed!
Ostatnia linia powyższego błędu oddaje w pełni naturę tego środowiska:
Fixing recursive fault but reboot is needed!
Dalej jest już tylko gorzej. Okazuje się, że awarie są losowe, a Nvidia nie potrafi odtworzyć błędu. System staje się niestabilny, nie działa mysz, szwankuje klawiatura. Użytkownicy sugerują, że problemy pojawiają się po dłuższej "pracy" (zazwyczaj pstrykanie w przeglądarce), ale potem piszą, że chodzi o kilka godzin lub dzień, więc nie można tego nazwać długą pracą. Uptime kilku moich domowych maszyn z Windows to zazwyczaj tygodnie (co też nie jest jakimś niebywałym rekordem).
Frustracja rośnie, zaczynają pojawiać się komentarze mówiące, że użytkownicy Linuksa są traktowani jak obywatele drugiej kategorii. Jeszcze do tego wrócimy.
Jakiś czas później pojawia się informacja, że ktoś zrobił downgrade i mu śmiga jak ta lala. Z oczywistych względów nie wszyscy są szczęśliwi z takiego regresu, co potwierdzają napływające komentarze. Ktoś inny wspomina AMD, ale szybko zostaje sprowadzony na ziemię.
W miarę upływu czasu pojawia się kilka komentarzy od osób, które jednak zdecydowały się na instalację starych sterowników. Nie jest to bez znaczenia, bo tak się składa, że Nvidia opublikowała biuletyn, z którego wynika, że stare sterowniki są dziurawe jak sito :-) Pycha.
Chyba naprawili
Dnia pańskiego 01/02/2021, pojawia się komunikat niosący nadzieję:
Ponad miesiąc później, pojawia się pierwszy pozytywny odzew od użytkowników Linuksa:
Installed 460.56-1 on 02/25 and haven’t had issues since. Installing 460.56-2 on 03/08 and seeing how that will go.Only half a year to fix a critical bug, and years in the making for proper Wayland support, maybe Linus was wrong after all. Thanks nvidia!
No cóż, wystarczyło jakieś pół roku i użytkownicy Linuksa mogą próbować wracać do normalności. Pamiętacie ten fragment o obywatelach drugiej kategorii? No to teraz wyobraźcie sobie analogiczną sytuację, w której użytkownicy Windows, posiadacze kart NVIDII mają takie przygody i przez pół roku nie mogą używać komputera. Trudno to sobie wyobrazić, prawda? OK, gdyby tu chodziło o interfejs do snopowiązałki na Centronicsie, wynalezionej w Kazachstanie pod koniec XX wieku, można by dywagować. To, że Nvidia nie jest w stanie naprawić błędu przez tak długi okres czasu to jedno. To, że Linuksowy "podsystem" odpowiedzialny za wyświetlanie przypomina skansen ziemi Lubuskiej to inna sprawa. Coś mi mówi, że w całej aferze nie chodzi o brak umiejętności po stronie NVIDII, a zacofanie i totalny bałagan w okolicach Linuksa.
Oczywiście karty NVIDII i ich sterowniki to tylko skromny przykład obrazujący katastrofalną sytuację. Wiele urządzeń pojawia się bez sterowników dla Linuksa, lub z takimi, że szybko przejdzie wam ochota na ich używanie. Niezbite fakty pokazują jasno, że dziurawe oprogramowanie to tylko jeden z wielu problemów, z jakimi muszą się borykać użytkownicy Linuksa.
Znacie mnie tu wszyscy jako specjalistę, człowieka niestroniącego od trudnych tematów, poważanego, budzącego szacunek i duże emocje, wyrozumiałego, ale i surowego niczym troskliwy ojciec. Przyjmijcie więc moją radę lub chociaż rozważcie wszystkie za i przeciw: jeśli podejdzie do was "somsiad informatyk" we flanelowej koszuli i tłustymi włosami związanymi w kucyk, powiedzcie, że nie jesteście zainteresowani. Jeśli nie jesteście bezrobotnymi, młodymi rubasznymi kawalerami szukającymi przygód za wszelką cenę, idźcie lepiej na grzyby, albo zawieźcie makulaturę na skup. Radzę to jako użytkownik Linuksa z ponad dwudziestoletnim stażem. Życie jest za krótkie, żeby je marnować, instalując Linuksa na desktopie. Hej!