http://bugzilla.opensuse.org/show_bug.cgi?id=1102627
Bug ID: 1102627
Summary: seccomp resourcecontrol=deny causes defunct qemu
process when using virtio gpu / virgl
Classification: openSUSE
Product: openSUSE Tumbleweed
Version: Current
Hardware: x86-64
OS: openSUSE Factory
Status: NEW
Severity: Normal
Priority: P5 - None
Component: KVM
Assignee: kvm-bugs@forge.provo.novell.com
Reporter: vliaskovitis@suse.com
QA Contact: qa-bugs@suse.de
Found By: ---
Blocker: ---
Current TW (host and guest) using:
<video>
<model type='virtio' heads='1' primary='yes'>
<acceleration accel3d='yes'/>
</model>
<graphics type='spice'>
<listen type='none'/>
<gl enable='yes' rendernode='/dev/dri/by-path/pci-0000:03:00.0-render'/>
</graphics>
The qemu process (launched normally through libvirt) becomes a zombie process.
Recent mesa includes a disk shader cache. It uses a thread job queue with low
priority, set with sched_setscheduler(SCHED_IDLE). However, that syscall is
rejected by the "resourcecontrol" seccomp qemu filter. "resourcecontrol=deny"
is in the default command line of libvirt when launching a qemu VM.
Example strace for simplified qemu command line:
strace qemu-system-x86_64 -sandbox on,resourcecontrol=deny -spice gl=on
[...]
openat(AT_FDCWD, "/home/user/.cache/mesa_shader_cache/index",
O_RDWR|O_CREAT|O_CLOEXEC, 0644) = 14
sched_setscheduler(15979, SCHED_IDLE, [0]) = ?
The fix is in qemu upstream:
commit 056de1e894155fbb99e7b43c1c4382d4920cf437
Author: Marc-André Lureau