On Thu, 2017-07-27 at 15:33 +0200, Paolo Bonzini wrote: > On 26/07/2017 19:04, Mihai Donțu wrote: > > > I think you should implement transactions in the protocol, so > > > effectively KVMI_SET_REGISTERS would be bundled with the event response > > > anyway. > > > > I see. Then maybe we should provide a way for commands to specify an > > event ID. If zero, then the command is satisfied using data straight > > from the vCPU (when making changes), otherwise a structure associated > > with the event will be used as cache for all get-s/set-s and apply them > > all in one go when the event reply arrives. This should work nicely > > since we read a good deal of the register set anyway when sending the > > event. > > Yes, that is okay. Just a question, why would the event ID provide more > information than just the vCPU id? How can there be more than one event > active on the same vCPU? You're right. There can't. We'll just add some logic that says if the vCPU has an event pending (or currently being handled), to use that cache to satisfy all commands. Thanks, -- Mihai Donțu