On Wed 23 Jan 2019 04:47:30 PM CET, Paolo Bonzini wrote:
>> You mean a common function with the code below?
>>
>>>> + ctx = blk_get_aio_context(sd->conf.blk);
>>>> + if (ctx != s->ctx && ctx != qemu_get_aio_context()) {
>>>> + error_setg(errp, "Cannot attach a blockdev that is using "
>>>> + "a different iothread");
>>>> + return;
>>>> + }
>>
>> Who else would be the user?
>
> If it isn't, probably virtio-blk should be using too.
I agree, but that's the problem that I mentioned on the cover letter.
In the virtio-blk case I don't know how to tell that the block device is
using a different iothread during device_add, because the iothread is
not set during realize() but by virtio_blk_data_plane_start() that
happens only when I reboot the guest.
Berto