On Fri, Feb 14, 2025 at 03:28:34PM +0100, Stefano Brivio wrote:
> On Fri, 14 Feb 2025 14:19:13 +0000
> Daniel P. Berrangé <berra...@redhat.com> wrote:
> 
> > On Fri, Feb 14, 2025 at 01:59:20PM +0000, Daniel P. Berrangé wrote:
> > > On Fri, Feb 14, 2025 at 11:18:55AM +0100, Laurent Vivier wrote:  
> > > > On 14/02/2025 11:06, Markus Armbruster wrote:  
> > > > > Laurent Vivier <lviv...@redhat.com> writes:
> > > > >   
> > > > > > The netdev reports NETDEV_VHOST_USER_CONNECTED event when
> > > > > > the chardev is connected, and NETDEV_VHOST_USER_DISCONNECTED
> > > > > > when it is disconnected.
> > > > > > 
> > > > > > The NETDEV_VHOST_USER_CONNECTED event includes the ChardevInfo
> > > > > > (label, filename and frontend_open).
> > > > > > 
> > > > > > This allows a system manager like libvirt to detect when the server
> > > > > > fails.
> > > > > > 
> > > > > > For instance with passt:
> > > > > > 
> > > > > > { 'execute': 'qmp_capabilities' }
> > > > > > { "return": { } }
> > > > > > 
> > > > > > [killing passt here]
> > > > > > 
> > > > > > { "timestamp": { "seconds": 1739517243, "microseconds": 115081 },
> > > > > >    "event": "NETDEV_VHOST_USER_DISCONNECTED",
> > > > > >    "data": { "netdev-id": "netdev0" } }
> > > > > > 
> > > > > > [automatic reconnection with reconnect-ms]
> > > > > > 
> > > > > > { "timestamp": { "seconds": 1739517290, "microseconds": 343777 },
> > > > > >    "event": "NETDEV_VHOST_USER_CONNECTED",
> > > > > >    "data": { "netdev-id": "netdev0",
> > > > > >              "info": { "frontend-open": true,
> > > > > >                        "filename": "unix:",
> > > > > >                        "label": "chr0" } } }
> > > > > > 
> > > > > > Signed-off-by: Laurent Vivier <lviv...@redhat.com>  
> > > > > 
> > > > > Standard question for events: if a management application misses an
> > > > > event, say because it restarts and reconnects, is there a way to 
> > > > > obtain
> > > > > the missed information with a query command?
> > > > >   
> > > > 
> > > > query-chardev could help but it doesn't provide the netdev id.  
> > > 
> > > It doesn't have to IMHO. The application that created the NIC should know
> > > what ID it assigned to both the netdev and chardev, and thus should be
> > > able to use query-chardev to identify the chardev it previously
> > > associated with the netdev.  
> > 
> > That said I kind of wonder whether we should be adding events against
> > the chardev directly, instead of against the netdev use of chardev.
> 
> What is the advantage? This already works and is consistent with the
> existing non-vhost-user mechanism.

The advantage is that chardevs are used in many places across QEMU, so
emitting the events against the chardev is more broadly useful to
consumers of QEMU, than doing a special case that only benefit vhostuser
NICS.

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


Reply via email to