qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH for 2.9 v3 09/10] block: Use bdrv_coroutine_ente


From: Fam Zheng
Subject: Re: [Qemu-devel] [PATCH for 2.9 v3 09/10] block: Use bdrv_coroutine_enter to start I/O coroutines
Date: Tue, 11 Apr 2017 19:37:45 +0800
User-agent: Mutt/1.8.0 (2017-02-23)

On Tue, 04/11 12:06, Kevin Wolf wrote:
> >  tests/qemu-iotests/109.out | 10 +++++-----
> 
> This one is curious. Why do we copy more data depending on how the job
> coroutine is reentered?

I did trace it and think the difference is not very important: on master, the
second iteration of the mirror_run loop gets a chance to run, and there we have:

    s->common.len = s->common.offset +
                    (cnt + s->sectors_in_flight) * BDRV_SECTOR_SIZE;

E.g. in the mirror job of the first updated output, iter #1 has cnt = 128
and s->sectors_in_flight = 0; iter #2 has cnt = 0, s->sectors_in_flight = 2.

I think the reason is simply that co_queue_wakeup in bdrv_coroutine_enter subtly
changed how the mirror coroutine and bdrv_co_pwritev are ordered.

Fam



reply via email to

[Prev in Thread] Current Thread [Next in Thread]