[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging
From: |
Daniel P . Berrangé |
Subject: |
Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu |
Date: |
Wed, 13 May 2020 09:41:45 +0100 |
User-agent: |
Mutt/1.13.4 (2020-02-15) |
On Tue, May 12, 2020 at 07:58:17PM +0100, Dr. David Alan Gilbert wrote:
> * Daniel P. Berrangé (address@hidden) wrote:
> > On Tue, May 12, 2020 at 11:32:06AM +0200, Lukas Straub wrote:
> > > On Mon, 11 May 2020 16:46:45 +0100
> > > "Dr. David Alan Gilbert" <address@hidden> wrote:
> > >
> > > > * Daniel P. Berrang̮̩ (address@hidden) wrote:
> > > > > ...
> > > > > That way if QEMU does get stuck, you can start by tearing down the
> > > > > least distruptive channel. eg try tearing down the migration
> > > > > connection
> > > > > first (which shouldn't negatively impact the guest), and only if that
> > > > > doesn't work then, move on to tear down the NBD connection (which
> > > > > risks
> > > > > data loss)
> > > >
> > > > I wonder if a different way would be to make all network connections
> > > > register with yank, but then make yank take a list of connections to
> > > > shutdown(2).
> > >
> > > Good Idea. We could name the connections (/yank callbacks) in the
> > > form "nbd:<node-name>", "chardev:<chardev-name>" and "migration"
> > > (and add "netdev:...", etc. in the future). Then make yank take a
> > > list of connection names as you suggest and silently ignore connections
> > > that don't exist. And maybe even add a 'query-yank' oob command returning
> > > a list of registered connections so the management application can do
> > > pattern matching if it wants.
> >
> > Yes, that would make the yank command much more flexible in how it can
> > be used.
> >
> > As an alternative to using formatted strings like this, it could be
> > modelled more explicitly in QAPI
> >
> > { 'struct': 'YankChannels',
> > 'data': { 'chardev': [ 'string' ],
> > 'nbd': ['string'],
> > 'migration': bool } }
> >
> > In this example, 'chardev' would accept a list of chardev IDs which
> > have it enabled, 'nbd' would accept a list of block node IDs which
> > have it enabled, and migration is a singleton on/off.
>
> Do we already have a QOM object name for each of these things?
> Is that nbd/blockdevice unique - i.e. can you have multiple nbd clients
> on the same node?
>
> > The benefit of this modelling is that you can introspect QEMU
> > to discover what classes of channels support being yanked by
> > this QEMU build, as well as what instances are configured to
> > be yanked. ie you can distinguish between a QEMU that doesn't
> > support yanking network devices, from a QEMU that does support
> > yanking network devices, but doesn't have it enabled for any
> > network device instances.
>
> What do we need to make it introspectable like that?
The model I describe above would work, because you can introspect the
QAPI schema to see what fields are in the "YankChannels" struct. So
if we added a "nic" field later, apps can discover it.
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 :|
- [PATCH 4/5] chardev/char-socket.c: Add yank feature, (continued)
- [PATCH 4/5] chardev/char-socket.c: Add yank feature, Lukas Straub, 2020/05/11
- [PATCH 5/5] migration: Add yank feature, Lukas Straub, 2020/05/11
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Daniel P . Berrangé, 2020/05/11
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Dr. David Alan Gilbert, 2020/05/11
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Daniel P . Berrangé, 2020/05/11
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Dr. David Alan Gilbert, 2020/05/11
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Lukas Straub, 2020/05/12
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Daniel P . Berrangé, 2020/05/12
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Dr. David Alan Gilbert, 2020/05/12
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu,
Daniel P . Berrangé <=
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Lukas Straub, 2020/05/12
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Kevin Wolf, 2020/05/13
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Dr. David Alan Gilbert, 2020/05/13
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Kevin Wolf, 2020/05/13
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Daniel P . Berrangé, 2020/05/13
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Paolo Bonzini, 2020/05/13
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Dr. David Alan Gilbert, 2020/05/13
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Kevin Wolf, 2020/05/13
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Kevin Wolf, 2020/05/13
- Re: [PATCH 0/5] Introduce 'yank' oob qmp command to recover from hanging qemu, Dr. David Alan Gilbert, 2020/05/13