qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] monitor: enable OOB by default


From: Eric Blake
Subject: Re: [Qemu-devel] monitor: enable OOB by default
Date: Thu, 28 Jun 2018 06:43:01 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0

On 06/28/2018 01:55 AM, Markus Armbruster wrote:

Changing an existing event from broadcast to unicast is an observable
change in existing behavior.  Compatibility break unless we can show
nobody can use / uses the observation.

And no one could have been relying on the broadcast COMMAND_DROPPED event semantics, since OOB was previously experimental and since we just proved that they are wrong if not limited to one monitor.


Creating a new event is not a compatibility break by itself[*],
regardless of broadcast vs. unicast.

My current plan is that I can touch up scripts/qapi/events.py and
related stuff to allow QMPEventFuncEmit to take a monitor parameter,
then we pass in NULL when we want to send the event to all monitors.

Would that work?

Think so.

Alternatively, a pair of functions:

     void qapi_event_bcast_EVENT(... event params ..., Error **errp);
     void qapi_event_send_EVENT(Monitor *mon, ... event params ..., Error 
**errp);

Slightly more compact in the broadcast case, might be a bit easier to
read.

Also, fewer NULL arguments to add into existing call sites (although existing call sites would change to use the _bcast_ form, so you're already touching all call sites, which brings back the topic from the other mail on dropping useless errp while at it).



[*] In the case of COMMAND_DROPPED, the compatibility break is dropping
commands (the event's trigger), caused by the command queuing feature.
That's why command queuing has to be opt-in.  Details discussed
elsewhere in this thread.

Indeed, and I thought the conclusion there was that we DO promise that COMMAND_DROPPED (and dropped commands in general) won't happen unless you negotiate oob at initial connection.

--
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org



reply via email to

[Prev in Thread] Current Thread [Next in Thread]