Displaying 3 results from an estimated 3 matches for "num_coroutines".
2017 Nov 15
3
Effect of qemu-img convert -m and -W options
[CC to qemu-devel since I'm obviously doing something wrong here,
I'm just not sure what.]
I was getting ready to add multiple threads to ‘qemu-img convert’ (the
longest part of v2v conversions) when I noticed that it had them
already! (To be fair this was only added in February this year so no
wonder we didn't notice.)
To enable parallel convert we would need to use the ‘qemu-img
2017 Nov 16
0
Re: [Qemu-devel] Effect of qemu-img convert -m and -W options
...threads are just an implementation detail. The caller doing the reads
and writes is not multi-threaded but a number of coroutines executing in
a single thread.
The qemu-img convert logic runs in coroutines from just one main loop
thread in qemu-img.c:convert_do_copy():
for (i = 0; i < s->num_coroutines; i++) {
s->co[i] = qemu_coroutine_create(convert_co_do_copy, s);
s->wait_sector_num[i] = -1;
qemu_coroutine_enter(s->co[i]);
}
while (s->running_coroutines) {
main_loop_wait(false);
}
>
> I did some testing to see what effect this has. For this I...
2017 Nov 16
2
Re: [Qemu-devel] Effect of qemu-img convert -m and -W options
...detail. The caller doing the reads
> and writes is not multi-threaded but a number of coroutines executing in
> a single thread.
>
> The qemu-img convert logic runs in coroutines from just one main loop
> thread in qemu-img.c:convert_do_copy():
>
> for (i = 0; i < s->num_coroutines; i++) {
> s->co[i] = qemu_coroutine_create(convert_co_do_copy, s);
> s->wait_sector_num[i] = -1;
> qemu_coroutine_enter(s->co[i]);
> }
>
> while (s->running_coroutines) {
> main_loop_wait(false);
> }
>
>> I did some t...