[libvirt] [PATCH] qemu: make monitor command API available during async jobs

Jiri Denemark jdenemar at redhat.com
Wed Jun 22 15:07:00 UTC 2016


On Wed, Jun 22, 2016 at 17:41:12 +0300, Nikolay Shirokovskiy wrote:
> 
> 
> On 22.06.2016 17:18, Jiri Denemark wrote:
> > On Wed, Jun 22, 2016 at 16:17:50 +0300, Nikolay Shirokovskiy wrote:
> >>   One can not issue monitor commands manually during async calls thru
> >> designated API while this could be useful for testing/debugging purposes.
> >> qemuDomainQemuMonitorCommand uses job of type QEMU_JOB_MODIFY and any async
> >> call disable parallel execution of this type of job. The only state that is
> >> changed is taint variable. AFAIU the only place we can mess is resetting
> >> taint flag in qemuProcessStop routine under some async job. But this can not
> >> happen thanx to both virDomainObjIsActive check in qemuDomainQemuMonitorCommand
> >> and resetting active status in qemuProcessStop before taint flag.
> >>
> >>   Change job type to QEMU_JOB_QUERY and thus make the API call available for
> >> most of async jobs.
> > 
> > The reason for acquiring MODIFY job is that qemuDomainQemuMonitorCommand
> > can be used to call any monitor command even those that modify state.
> > For example, you could unplug a device during an async job. And since we
> > don't want anything to mess up with a domain while async job is running,
> > acquiring just QUERY job would be wrong.
> 
>  Well this API call is tainted thus user is aware he is on his own here.
> AFAIU tainted means domain *can* be messed up thru this call.

Hmm, thinking about it more I think you are right. Users can already do
a lot of harm when an async job is not running so preventing them from
doing that in a specific case of async jobs is not necessary.

So self-NACK of my previous NACK and ACK to your patch :-)

Jirka




More information about the libvir-list mailing list