|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] earlier remove the backend of tapdisk device in xenstore
>>> "James (song wei)" <jsong@xxxxxxxxxx> 23.04.10 05:24 >>>
>Jan Beulich wrote:
>> More generally any solution should be generic, or it should be
>> explained properly why the device class needs treatment
>> different from any of the other ones (and, for this specific
>> case, why moving the device destruction a little ahead will
>> now *guarantee* that the cleanup can happen as expected).
>
>
> Moving the device destruction a little ahead of killing qemu-dm would
> triger blktapctl thread send CTRMSG_CLOSE to "qemu-dm" before it exit.
> And then, qemu-dm would notify backend driver to release resouce by
> calling release() of driver through closing the opened device file of
> "/dev/xen/blktapN"
Even though Keir already applied your patch, I continue to disagree:
The only function you modified is XendDomainInfo._releaseDevices(),
which itself doesn't kill qemu-dm afaict (I didn't actually spot where
it gets killed). Hence the only effect you achieve is that the window
in time for the CTRLMSG_CLOSE to arrive gets enlarged (the insertion
of time.sleep(0.1) is also a sign of just using heuristics instead of
proper sequencing of events). You still can't guarantee that the
message will arrive in time (i.e. if qemu-dm doesn't get scheduled
soon enough), and hence you just decreased the likelihood of the
original issue.
Imo, there's no way around doing proper cleanup from qemu-dm's
signal handler, or there needs to be better handshaking between
xend and qemu-dm.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|