[virt-tools-list] Docs on getting VirGL working with virt-manager?

Erik Skultety eskultet at redhat.com
Thu Feb 21 12:57:36 UTC 2019


On Tue, Feb 19, 2019 at 09:42:44PM +1100, Daniel Kasak wrote:
> On Wed, Feb 20, 2019 at 8:43 AM Cole Robinson <crobinso at redhat.com> wrote:
>
> > On 2/19/19 4:04 AM, Daniel Kasak wrote:
> > > On Wed, Feb 20, 2019 at 1:29 AM Cole Robinson <crobinso at redhat.com
> > > <mailto:crobinso at redhat.com>> wrote:
> > >
> > >     On 2/18/19 7:39 AM, Daniel Kasak wrote:
> > >     > On Tue, Feb 19, 2019 at 12:38 AM Cole Robinson
> > >     <crobinso at redhat.com <mailto:crobinso at redhat.com>
> > >     > <mailto:crobinso at redhat.com <mailto:crobinso at redhat.com>>> wrote:
> > >     >
> > >     >     On 2/17/19 10:57 AM, Daniel Kasak wrote:
> > >     >     > On Sat, Feb 9, 2019 at 2:05 AM Cole Robinson
> > >     <crobinso at redhat.com <mailto:crobinso at redhat.com>
> > >     >     <mailto:crobinso at redhat.com <mailto:crobinso at redhat.com>>
> > >     >     > <mailto:crobinso at redhat.com <mailto:crobinso at redhat.com>
> > >     <mailto:crobinso at redhat.com <mailto:crobinso at redhat.com>>>> wrote:
> > >     >     >
> > >     >     >     On 2/8/19 7:49 PM, Daniel Kasak wrote:
> > >     >     >     > I've changed the following from the default:
> > >     >     >     >
> > >     >     >     > Display Spice:
> > >     >     >     >  - Listen type
> > >     >     >     >     - Default ( Address ) - no matter what other
> > options I
> > >     >     choose with
> > >     >     >     > this, I get "SPICE GL support is local-only ..."
> > >     >     >     >     - None - I get "Error starting domain: internal
> > >     error: qemu
> > >     >     >     > unexpectedly closed the monitor"
> > >     >     >     >
> > >     >     >
> > >     >     >     This last bit should be the working config, but that
> > >     error means
> > >     >     >     something went wrong launching qemu. pastebin your
> > >     >     >     /var/log/libvirt/qemu/$vmname.log and I will check
> > >     >     >
> > >     >     >
> > >     >     > It's taken a while to figure out exactly what's going on
> > >     here ...
> > >     >     there
> > >     >     > are *no* logs in that directory. But I caught systemd
> > logging:
> > >     >     >   Process 15334 (qemu-system-x86) of user 1000 dumped core.
> > >     >     >  ... each time I tried to start the VM.
> > >     >     >
> > >     >     > I've tried with qemu-3.1.0 and qemu built from git.
> > >     >     >
> > >     >     > Is there a way to get virt-manager to spit out the exact
> > >     command line
> > >     >     > it's using to invoke qemu?
> > >     >
> > >     >     Are you using qemu:///session maybe? Then the logs will be in
> > >     >     ~/.cache/libvirt/qemu/log/ . The log file is the the canonical
> > >     location
> > >     >     to find the qemu command line that libvirt is generating
> > >     >
> > >     >
> > >     > Aha. I have the command-line now. Thanks :) Full log:
> > >
> > >     >
> > >     > char device redirected to /dev/pts/7 (label charserial0)
> > >     > ./run.sh: line 49: 31512 Bad system call         (core dumped)
> > >     LC_ALL=C
> > >     >
> > >
> >  PATH=/home/dkasak/Applications/.bin:/opt/efl/bin:/usr/lib/llvm/7/bin:/opt/e22/bin:/opt/rocm/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin
> > >     > HOME=/home/dkasak USER=dkasak LOGNAME=dkasak QEMU_AUDIO_DRV=spice
> > >     > /usr/bin/qemu-system-x86_64 -name
> > >     guest=Android-x86,debug-threads=on -S
> > >     > -machine
> > >     pc-i440fx-3.1,accel=tcg,usb=off,vmport=off,dump-guest-core=off
> > >     > -cpu kvm64 -m 1024 -realtime mlock=off -smp
> > >     > 2,sockets=2,cores=1,threads=1 -uuid
> > >     3e432cc9-8ce8-4089-912f-8ef50d9a9c8a
> > >     > -no-user-config -nodefaults -mon
> > >     > chardev=charmonitor,id=monitor,mode=control -rtc
> > >     base=utc,driftfix=slew
> > >     > -global kvm-pit.lost_tick_policy=delay -no-hpet -no-shutdown
> > -global
> > >     > PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -boot strict=on
> > >     > -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x5.0x7 -device
> > >     >
> > >
> >  ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x5
> > >     > -device
> > >     > ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x5.0x1
> > >     > -device
> > >     > ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x5.0x2
> > >     -drive
> > >     >
> > >
> >  file=/home/dkasak/.local/share/libvirt/images/Android-x86.qcow2,format=qcow2,if=none,id=drive-ide0-0-0
> > >     > -device
> > >     >
> > ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1
> > >     > -drive if=none,id=drive-ide0-0-1,readonly=on -device
> > >     > ide-cd,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1 -netdev
> > >     > user,id=hostnet0 -device
> > >     >
> > e1000,netdev=hostnet0,id=net0,mac=52:54:00:74:b8:ea,bus=pci.0,addr=0x3
> > >     > -chardev pty,id=charserial0 -device
> > >     > isa-serial,chardev=charserial0,id=serial0 -device
> > >     > usb-tablet,id=input0,bus=usb.0,port=1 -spice
> > >     >
> > >
> >  port=0,disable-ticketing,image-compression=off,gl=on,rendernode=/dev/dri/renderD128,seamless-migration=on
> > >     > -device
> > virtio-vga,id=video0,virgl=on,max_outputs=1,bus=pci.0,addr=0x2
> > >     > -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device
> > >     > hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -chardev
> > >     > spicevmc,id=charredir0,name=usbredir -device
> > >     > usb-redir,chardev=charredir0,id=redir0,bus=usb.0,port=2 -chardev
> > >     > spicevmc,id=charredir1,name=usbredir -device
> > >     > usb-redir,chardev=charredir1,id=redir1,bus=usb.0,port=3 -device
> > >     > virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 -sandbox
> > >     >
> > >
> >  on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny
> > >     > -msg timestamp=on
> > >
> > >
> > >     Does dropping the -sandbox line make things work? Maybe that 'Bad
> > system
> > >     call' thing is a seccomp error
> > >
> > >
> > > It changes things ...
> > >
> > > Now qemu just hangs instead of core-dumping :) strace on the process
> > gives:
> > >
> > > ppoll([{fd=12, events=POLLIN}, {fd=14, events=POLLIN}, {fd=16,
> > > events=POLLIN}, {fd=17, events=POLLIN}, {fd=19, events=POLLIN}], 5,
> > > {tv_sec=0, tv_nsec=0}, NULL, 8) = 0 (Timeout)
> > > ppoll([{fd=12, events=POLLIN}, {fd=14, events=POLLIN}, {fd=16,
> > > events=POLLIN}, {fd=17, events=POLLIN}, {fd=19, events=POLLIN}], 5,
> > > {tv_sec=0, tv_nsec=29564013}, NULL, 8) = 0 (Timeout)
> > > ppoll([{fd=12, events=POLLIN}, {fd=14, events=POLLIN}, {fd=16,
> > > events=POLLIN}, {fd=17, events=POLLIN}, {fd=19, events=POLLIN}], 5,
> > > {tv_sec=0, tv_nsec=0}, NULL, 8) = 0 (Timeout)
> > > ppoll([{fd=12, events=POLLIN}, {fd=14, events=POLLIN}, {fd=16,
> > > events=POLLIN}, {fd=17, events=POLLIN}, {fd=19, events=POLLIN}], 5,
> > > {tv_sec=0, tv_nsec=29596135}, NULL, 8) = 0 (Timeout)
> > > ppoll([{fd=12, events=POLLIN}, {fd=14, events=POLLIN}, {fd=16,
> > > events=POLLIN}, {fd=17, events=POLLIN}, {fd=19, events=POLLIN}], 5,
> > > {tv_sec=0, tv_nsec=0}, NULL, 8) = 0 (Timeout)
> > > ppoll([{fd=12, events=POLLIN}, {fd=14, events=POLLIN}, {fd=16,
> > > events=POLLIN}, {fd=17, events=POLLIN}, {fd=19, events=POLLIN}], 5,
> > > {tv_sec=0, tv_nsec=29462631}, NULL, 8) = 0 (Timeout)
> > > ppoll([{fd=12, events=POLLIN}, {fd=14, events=POLLIN}, {fd=16,
> > > events=POLLIN}, {fd=17, events=POLLIN}, {fd=19, events=POLLIN}], 5,
> > > {tv_sec=0, tv_nsec=0}, NULL, 8) = 0 (Timeout)
> > > ppoll([{fd=12, events=POLLIN}, {fd=14, events=POLLIN}, {fd=16,
> > > events=POLLIN}, {fd=17, events=POLLIN}, {fd=19, events=POLLIN}], 5,
> > > {tv_sec=0, tv_nsec=29485905}, NULL, 8) = 0 (Timeout)
> > >
> >
> > Try disabling seccomp_sandbox in /etc/libvirt/qemu.conf, restarting
> > libvirtd, and trying libvirt again. Trying to get a libvirt qemu command
> > line to run manually has a bunch of hurdles
> >
>
> Done ( including the service restart ), but qemu still core dumps :(
>
> FYI I have the following enabled in my kernel config:
>
> Symbol: SECCOMP [=y]
> Symbol: HAVE_ARCH_SECCOMP_FILTER [=y]
> Symbol: SECCOMP_FILTER [=y]
>
> Nothing else appears in my ~/.cache/libvirt/qemu/log logfile - just:
>  2019-02-19 10:32:55.126+0000: shutting down, reason=failed
>   ... after the qemu command.
>
> Would that core dump be useful? systemd is saying:
>  Feb 19 21:40:58 nanginator systemd-coredump[12860]: Resource limits
> disable core dumping for process 12855 (qemu-system-x86).
>
> I can figure out how to bump those limits if it's of use ...
>
> Thanks for all your help, by the way. Much appreciated :)

Hi, can you attach the VM XML config (virsh dumpxml <domain_name>)? Since this
is about VirGL, what GPU and CPU do you have on this system?

Erik




More information about the virt-tools-list mailing list