
On Thu, Aug 20, 2020 at 09:05:56AM -0600, Jim Fehlig wrote:
On 8/20/20 8:56 AM, Jim Fehlig wrote:
On 8/20/20 6:54 AM, Christian Ehrhardt wrote:
On Thu, Aug 20, 2020 at 12:43 PM Martin Wilck <mwilck@suse.com> wrote:
On Thu, 2020-08-20 at 11:00 +0100, Daniel P. Berrangé wrote:
On Wed, Aug 05, 2020 at 10:19:26AM +0200, Andrea Bolognani wrote:
contents change.
That said, if upgrading QEMU results in losing features, even though you can recover them through additional steps I would argue that's a bug in the packaging that should be addressed on the QEMU side.
Potentially we can consider this a distro packaging problem and fix it at the RPM level.
eg the libvirt RPM can define a trigger that runs when *any* of the qemu-device* RPMs is installed/updated. This trigger can simply touch a file on disk somewhere, and libvirtd can monitor this one file, instead of having to monitor every module.
The simplest approach is to touch the qemu binaries. We discussed this already. It has the drawback that it makes "rpm -V" complain about wrong timestamps. It might also confuse backup software. Still, it might be a viable short-term workaround if nothing else is available.
Qemu already allows to save modules in /var/run/qemu/ [1] to better handle module upgrades which is already used in Debian and Ubuntu to avoid late module load errors after upgrades.
This was meant for upgrades, but if libvirt would define a known path in there like /var/run/qemu/last_packaging_change the packages could easily touch it on any install/remove/update as Daniel suggested and libvirt could check this path like it does with the date of the qemu binary already.
That would require changes in libvirt and the various module packages right? Are you fine with Daniel's suggestion of handling this all within libvirt? E.g. on the packaging side libvirt could define a trigger to be notified when the modules dir is updated and touch a well-known file
%filetriggerin -- %{_libdir}/qemu touch /var/cache/libvirt/qemu/capabilities/module-changed %filetriggerun -- %{_libdir}/qemu touch /var/cache/libvirt/qemu/capabilities/module-changed
Hmm, this is still problematic for session mode. I think your suggestion covers both system and session modes nicely.
Hmm, yeah, session mode ought not to be looking at the /var/cache directory tree ideally, as we like to keep the daemons fully isolated. I wonder if we really do just need to traverse the module directory. readdir+stat'ing 10-20 files is still waaaay faster than not having any caching at all. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|