[Fehlerquelle gefunden] Buster: DMA mapping failed seit qemu-kvm 3.1

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Benutzeravatar
matman
Beiträge: 744
Registriert: 03.07.2008 10:50:07
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Hamburg
Kontaktdaten:

[Fehlerquelle gefunden] Buster: DMA mapping failed seit qemu-kvm 3.1

Beitrag von matman » 04.01.2019 20:27:49

Hallo Leute, ich habe heute Buster aktualisiert, dabei gab es einen Versionssprung von KVM 2.12 zu 3.1 und nun funktioniert PCI-Passthrough nicht mehr. Qemu-kvm startet kurz und bricht dann mit folgender Fehlermeldung ab:

Code: Alles auswählen

qemu-system-x86_64: VFIO_MAP_DMA: -12
qemu-system-x86_64: vfio_dma_map(0x558bb2611530, 0xc0000, 0x18000, 0x7f73afec0000) = -12 (Cannot allocate memory)
qemu: hardware error: vfio: DMA mapping failed, unable to continue
Die vollständige Ausgabe von qemu-system gibt es hier: NoPaste-Eintrag40567

Ich starte die VM mit diesem Skript:

Code: Alles auswählen

qemu-system-x86_64 \
-machine type=pc-q35-3.1,accel=kvm,usb=on \
-cpu host,-svm \
-smp 6,sockets=1,cores=6,threads=1 \
-m 4096 \
-vga vmware \
-k de \
-rtc base=utc,clock=vm \
-device usb-tablet \
-net none \
-device vfio-pci,host=03:00.0,bus=pcie.0 \
-device virtio-scsi-pci,id=scsi \
-drive file=/var/kvm/debian-stretch.img,id=disk0,snapshot=off,cache=writethrough,format=raw,if=none \
-device scsi-hd,drive=disk0 \
-soundhw ac97 \
-boot c
Das Modul (vfio-pci) für die PCI-Karte ist laut lspci -v korrekt im System eingebunden. Mit qemu-kvm 2.12 ging es vorhin noch super. Hat sich mit Version 3.1 etwas geändert? Oder vielleicht ein Bug?
Zuletzt geändert von matman am 05.01.2019 19:16:19, insgesamt 1-mal geändert.
System: Bullseye
Hardware: Gigabyte 970A-DS3P mit AMD FX-6300, Kingston HyperX DDR3-1333 (4x4GB), Samsung SSD 860 EVO, HGST Travelstar 7K1000, Samsung DVD-ROM SH-D162D, Geforce GTX 1050, SoundBlaster Live! Platinum, Hauppauge WinTV-HVR-5525

Benutzeravatar
matman
Beiträge: 744
Registriert: 03.07.2008 10:50:07
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Hamburg
Kontaktdaten:

Re: Buster: DMA mapping failed seit qemu-kvm 3.1

Beitrag von matman » 05.01.2019 19:14:48

Ich konnte jetzt die Fehlerquelle finden. Jedoch nur mit einem Workaround das Problem umgehen:

Obige Fehlermeldungen haben etwas mit Memory Limits zu tun, die man in /etc/security/limits.conf festlegen kann. Auch dort stand alles korrekt:

Code: Alles auswählen

user    hard    memlock    unlimited
user    soft    memlock    unlimited
Aber die Ausgabe von ulimit -l ergab nur 65536. Ich hatte vorhin so einiges ausprobiert und herumexperimentiert, kam aber immer nur zu dem 65 MB Limit.

Dann habe ich einfach mal root neue Limits gegeben und die /etc/security/limits.conf um zwei Zeilen erweitert:

Code: Alles auswählen

root    hard    memlock    unlimited
root    soft    memlock    unlimited
Rechner nochmal neu gestartet und immerhin: für root habe ich jetzt ulimit -l unlimited. Und wenn ich die VM dann als root starte läuft auch alles wieder rund. Warum allerdings der normale User unlimited nicht zugewiesen bekommt kann ich nicht sagen. Entweder es wurde etwas geändert, oder halt ein Bug.

Da ulimit ein Kommando der Bash ist, welches womöglich ein weiteres System-Tool aufruft, weiß ich auch nicht welches deb Paket dafür verantwortlich ist.

Hat jemand eine Idee, wo man mal weiter forschen kann bzw. für welches Paket man eine Bugmeldung machen muss?
System: Bullseye
Hardware: Gigabyte 970A-DS3P mit AMD FX-6300, Kingston HyperX DDR3-1333 (4x4GB), Samsung SSD 860 EVO, HGST Travelstar 7K1000, Samsung DVD-ROM SH-D162D, Geforce GTX 1050, SoundBlaster Live! Platinum, Hauppauge WinTV-HVR-5525

Antworten