On 03/23/2017 02:13 AM, Peter Krempa wrote:
On Wed, Mar 22, 2017 at 14:21:29 -0500, Eric Blake wrote:
> On 03/15/2017 11:37 AM, Peter Krempa wrote:
>> Our code calls it when starting or re-starting the domain or when
>> hotplugging the disk so there's nothing to be detected.
>> ---
>> src/qemu/qemu_driver.c | 5 -----
>> 1 file changed, 5 deletions(-)
>>
>
> I think I added it here because block jobs have the tendency to rewrite
> the backing chain (think active commit, for example, which reduces the
> backing chain). Forcing a redetermination is therefore a way to ensure
> no stale data associated with the pre-job chain is left in memory.
>
> So I'm not sure this is correct.
We re-detect the backing chain when the VM is started, when we reconnect
to it and when we get any of the blockjob-related events.
Do we still care about qemu old enough where events did not appear, and
therefore where we had to fake events ourselves when we detect that the
job is complete? If so, then we want to redetect the chain (but only for
those older qemu); if not, then I can agree to your cleanup because
redetection at the event is sufficient.
Additionally if the backing chain is rewritten the code would not be run
since the argument that would rewrite any previously detected data is
false.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org