Here are some cleanup, as promised here:
https://listman.redhat.com/archives/libvir-list/2023-February/237721.html
Now, there are still some patches missing.
Firstly, we still don't really capture error from passt. My suggestion
was to wait for socket to show up with errfd open. But active wait is
viewed as undesirable [1].
Secondly, Laine reported SELinux issues. Yeah, I don't see us setting
SELinux label on nor socket that passt and QEMU talk to each other, nor
on the log file. Speaking of which - we usually have per domain (or per
helper daemon instance even) log file, while for passt we have a global
one (/var/log/passt.log). I don't think that will fly if two or more
SELinux enabled domains want to use passt.
Thirdly, Stefano suggested a graceful shutdown for passt: have libvirt
connect to the socket and close it. Since we pass --one-off, this should
singal passt to exit. But I haven't implemented that because it's
redundant. We can't rely on passt quitting itself and thus use the big
gun (virPidFileForceCleanupPath()) at which point, the socket way is
just an optimization.
I might look into the first two, at some point. But not today.
1:
https://listman.redhat.com/archives/libvir-list/2023-February/237663.html
Michal Prívozník (4):
Revert "qemu: allow passt to self-daemonize"
qemu_extdevice: Make qemuExtDevicesHasDevice() check def->nets
qemu_passt: Report error when getting passt PID failed
qemu_passt: Don't let passt fork off
src/qemu/qemu_extdevice.c | 11 +++++++++++
src/qemu/qemu_passt.c | 15 ++++++++++-----
2 files changed, 21 insertions(+), 5 deletions(-)
--
2.39.1