LINUX.ORG.RU

Баг с IOMMU и VDPAU/флешем


0

1

Есть такой баг неприятный. Надо:

-включённый IOMMU

-nvidia blob

-VDPAU в mplayer

Включаем vdpau ускорение в mplayer, разворачиваем на полный экран, сворачиваем, получаем вылет mplayer, в логах оседает

3822.843780] BUG: unable to handle kernel NULL pointer dereference at 0000000000000220
[ 3822.843785] IP: [<ffffffff813ed1ac>] iommu_no_mapping+0xc/0xf0
[ 3822.843790] PGD 0 
[ 3822.843792] Oops: 0000 [#1] PREEMPT SMP 
[ 3822.843795] Modules linked in: arc4 ecb md4 md5 hmac nls_utf8 cifs dns_resolver fscache xt_CHECKSUM iptable_mangle ipt_MASQUERADE iptable_nat nf_nat_ipv4 nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack ipt_REJECT xt_tcpudp iptable_filter ip_tables x_tables bridge stp llc nct6775 hwmon_vid snd_usb_audio snd_usbmidi_lib mousedev joydev hid_generic usbhid hid snd_hda_codec_hdmi coretemp hwmon nvidia(PO) nls_iso8859_1 nls_cp437 vfat fat intel_rapl x86_pkg_temp_thermal intel_powerclamp kvm_intel kvm crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel iTCO_wdt aesni_intel snd_hda_intel snd_oxygen snd_hda_controller aes_x86_64 iTCO_vendor_support snd_oxygen_lib evdev lrw snd_mpu401_uart snd_hda_codec mxm_wmi mac_hid gf128mul snd_rawmidi glue_helper ablk_helper snd_seq_device
[ 3822.843826]  snd_hwdep cryptd snd_pcm snd_timer microcode snd drm r8169 soundcore psmouse i2c_i801 serio_raw pcspkr i2c_core mii lpc_ich mei_me nuvoton_cir mei rc_core shpchp battery tpm_tis wmi processor tpm video button sg vhba(O) ext4 crc16 mbcache jbd2 sd_mod crc_t10dif crct10dif_common atkbd libps2 ahci libahci libata ehci_pci xhci_hcd ehci_hcd firewire_ohci scsi_mod firewire_core crc_itu_t usbcore usb_common i8042 serio pci_stub
[ 3822.843851] CPU: 1 PID: 1836 Comm: mplayer Tainted: P        W  O  3.15.1-1-ARCH #1
[ 3822.843853] Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./Z77 Extreme3, BIOS P1.50 07/11/2013
[ 3822.843854] task: ffff88040fbcd180 ti: ffff880408d28000 task.ti: ffff880408d28000
[ 3822.843855] RIP: 0010:[<ffffffff813ed1ac>]  [<ffffffff813ed1ac>] iommu_no_mapping+0xc/0xf0
[ 3822.843858] RSP: 0018:ffff880408d2bd18  EFLAGS: 00010282
[ 3822.843859] RAX: 0000000408ecc000 RBX: 0000000000000000 RCX: 0000000000000000
[ 3822.843860] RDX: 0000000000000001 RSI: ffff88040eac2338 RDI: 0000000000000000
[ 3822.843861] RBP: ffff880408d2bd28 R08: 0000000000000000 R09: 0000000000000001
[ 3822.843862] R10: ffffffff813ed290 R11: 0000000000000293 R12: ffffea0000000000
[ 3822.843863] R13: ffff88040eac2338 R14: ffff88040eac2318 R15: ffff880408bc0240
[ 3822.843865] FS:  00007f6e66a9c7c0(0000) GS:ffff88042ec40000(0000) knlGS:0000000000000000
[ 3822.843866] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 3822.843867] CR2: 0000000000000220 CR3: 00000004094aa000 CR4: 00000000001407e0
[ 3822.843868] Stack:
[ 3822.843869]  0000000000000000 ffffea0000000000 ffff880408d2bd70 ffffffff813ed2b1
[ 3822.843871]  ffffffffa1626f8a ffff8800bfa32ff8 0000000000000000 ffffea0000000000
[ 3822.843873]  000077ff80000000 ffff88040eac2318 ffff880408bc0240 ffff880408d2bdd0
[ 3822.843875] Call Trace:
[ 3822.843878]  [<ffffffff813ed2b1>] intel_unmap_sg+0x21/0x140
[ 3822.843920]  [<ffffffffa1626f8a>] ? os_release_spinlock+0x1a/0x20 [nvidia]
[ 3822.843951]  [<ffffffffa16256e6>] nv_free_system_pages+0xe6/0x430 [nvidia]
[ 3822.843982]  [<ffffffffa161e5e5>] nv_free_pages+0xd5/0xe0 [nvidia]
[ 3822.844013]  [<ffffffffa161e951>] nvidia_close+0x361/0x470 [nvidia]
[ 3822.844043]  [<ffffffffa1628cf9>] nvidia_frontend_close+0x49/0xa0 [nvidia]
[ 3822.844046]  [<ffffffff811b609c>] __fput+0x9c/0x200
[ 3822.844048]  [<ffffffff811b624e>] ____fput+0xe/0x10
[ 3822.844052]  [<ffffffff8108a35f>] task_work_run+0x9f/0xe0
[ 3822.844055]  [<ffffffff81014c55>] do_notify_resume+0x95/0xa0
[ 3822.844058]  [<ffffffff81515be0>] int_signal+0x12/0x17
[ 3822.844059] Code: 89 de 4c 89 f7 e8 d5 d3 ff ff 44 89 e0 eb cc b8 ed ff ff ff eb c5 e8 14 c7 c7 ff 0f 1f 40 00 0f 1f 44 00 00 55 48 89 e5 41 54 53 <48> 8b 87 20 02 00 00 48 83 f8 ff 0f 84 b3 00 00 00 8b 15 a9 fe 
[ 3822.844079] RIP  [<ffffffff813ed1ac>] iommu_no_mapping+0xc/0xf0
[ 3822.844081]  RSP <ffff880408d2bd18>
[ 3822.844082] CR2: 0000000000000220
[ 3822.844085] ---[ end trace 98a0c8f4b003e1f2 ]---

И всё. Система полутруп. Перезагрузка виснет намертво, запуск игрушки в wine - полный повис системы, не запускается ничего, что использует аппаратное ускорение.

Такое же случается при просмотре полноэкранного flash.

Может, кто знает какой-нибудь workaround? Выключить IOMMU - не вариант, он нужен.

Есть тема на nvidia devtalks. Но там грустно.

Это нужно отправить в багтрекер дистрибутива (если ядро дистрибутивное). Правда, если баг вызван именно out-of-tree модулем, то …это грустно.

Gotf ★★★
()

Cэкономь с завтраков/иди на работу, купи нормальный проц, способный декодировать сам. Отдебажь проблему и отошли результаты/решение разрабам. Это линакс, он не для детей.

anonymous
()

хым, у меня вообще под зен-хост-системой закрытый драйвер работает чуть более, чем никак.

darkenshvein ★★★★★
()

тоже натыкался на этот баг, с nvidia-driver 331.* все ок работало (потом забил и поставил открытый)

ser666
()

Выключить IOMMU - не вариант, он нужен

А если поплясать с опциями iommu? И, кстати, а в ядре все опции iommu включены? Дефолтные ядра идут с полувыключенным iommu.

no-such-file ★★★★★
()

Может, кто знает какой-нибудь workaround? Выключить IOMMU - не вариант, он нужен.

Выключить VDPAU.

i-rinat ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.