[PATCH v2] qemu: add append mode config for serial file

Daniel P. Berrangé berrange at redhat.com
Tue Jan 10 10:35:16 UTC 2023


On Tue, Jan 10, 2023 at 04:20:59PM +0600, Oleg Vasilev wrote:
> 
> 
> On 10.01.2023 15:09, Martin Kletzander wrote:
> > On Tue, Jan 10, 2023 at 09:03:40AM +0000, Daniel P. Berrangé wrote:
> > > On Tue, Jan 10, 2023 at 02:42:34PM +0600, Oleg Vasilev wrote:
> > > > Serial log file contains lots of useful information for debugging
> > > > configuration problems. It makes sense to preserve the log in between
> > > > restarts, so that one can later figure out what was going on. Before
> > > > that, we could do that on a per-domain basis, now we can configure it
> > > > once for all domains.
> > > 
> > > IMHO this is the job of the mgmt app that is using libvirt.
> > > 
> > > We've got a few places in qemu.conf that interact with the
> > > guest config, but I largely consider them to be historical
> > > mistakes that shouldn't be added to.
> > > 
> > > Adding this setting specifically for serial devs is opening
> > > up a can of worms IMHO. eg what if you have multiple serial
> > > ports and only want one of them in append mode. There are
> > > many other devices with chardev backends which log to files,
> > > but this setting only touches serial ports.
> 
> What would be other cases with chardev file backends worth considering?

I don't want to consider adding even more cases to the qemu.conf.

> > > Ultimately append/truncate is a policy decision for the
> > > mgmt app to make, not a libvirt host level tunable.
> > > 
> > 
> > I agree with that since it allows for more configurability and it is
> > concentrated in one place, the mgmt app.  Defaulting to a value is
> > something that should not be difficult to implement in any controlling
> > application that uses libvirt, so I don't really see the benefit for
> > other mgmt apps either.
> 
> The issue here is that we have a 5 different management apps, and we would
> have to introduce this change to all of them. These are in different
> technology stacks, different languages, so it would be more complex to
> duplicate the implementation of this feature.

If you have 5 different mgmt apps then I feel a simple boolean
flag for the <serial> console configuration when provisioning
a guest should be negligible in the big picture. I don't think
the answer is to push policy logic from the apps into
libvirt via qemu.conf.

> Another use case for this, similar to the one I had during my previous
> experience in Huawei. I was given multiple libvirt's XMLs to debug issues
> with boot. No management app was involved, except initial creation through
> virt-install by third party. It would be beneficial to automatically retain
> serial logs to ease the debugging process.

If debugging a VM without a mgmt app being involved, it is trivial
to use 'virsh edit' add the flag to the XML.

With 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 :|


More information about the libvir-list mailing list