[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 3/5] blockjob: add AioContext attached callba
From: |
Fam Zheng |
Subject: |
Re: [Qemu-devel] [PATCH v4 3/5] blockjob: add AioContext attached callback |
Date: |
Wed, 15 Jun 2016 17:05:28 +0800 |
User-agent: |
Mutt/1.6.1 (2016-04-27) |
On Tue, 06/14 19:17, Stefan Hajnoczi wrote:
>
> +static void block_job_attached_aio_context(AioContext *new_context,
> + void *opaque)
> +{
> + BlockJob *job = opaque;
> +
> + if (job->driver->attached_aio_context) {
> + job->driver->attached_aio_context(job, new_context);
> + }
> +
> + block_job_resume(job);
> +}
> +
> +static void block_job_detach_aio_context(void *opaque)
> +{
> + BlockJob *job = opaque;
> +
> + /* In case the job terminates during aio_poll()... */
> + block_job_ref(job);
> +
> + block_job_pause(job);
> +
> + if (!job->paused) {
> + /* If job is !job->busy this kicks it into the next pause point. */
> + block_job_enter(job);
> + }
> + while (!job->paused && !job->completed) {
> + aio_poll(blk_get_aio_context(job->blk), true);
For the complete part, we should do it like block_job_finish_sync:
while (!job->completed) {
aio_poll(job->deferred_to_main_loop ? qemu_get_aio_context() :
blk_get_aio_context(job->blk),
true);
}
> + }
> +
> + block_job_unref(job);
> +}
> +
Fam
- [Qemu-devel] [PATCH v4 4/5] mirror: follow AioContext change gracefully, (continued)
- [Qemu-devel] [PATCH v4 4/5] mirror: follow AioContext change gracefully, Stefan Hajnoczi, 2016/06/14
- [Qemu-devel] [PATCH v4 2/5] blockjob: add pause points, Stefan Hajnoczi, 2016/06/14
- [Qemu-devel] [PATCH v4 1/5] blockjob: move iostatus reset out of block_job_enter(), Stefan Hajnoczi, 2016/06/14
- [Qemu-devel] [PATCH v4 5/5] backup: follow AioContext change gracefully, Stefan Hajnoczi, 2016/06/14
- [Qemu-devel] [PATCH v4 3/5] blockjob: add AioContext attached callback, Stefan Hajnoczi, 2016/06/14
- Re: [Qemu-devel] [PATCH v4 3/5] blockjob: add AioContext attached callback,
Fam Zheng <=
- Re: [Qemu-devel] [PATCH v4 0/5] blockjob: AioContext change support for mirror and backup, Jason J. Herne, 2016/06/14
- Re: [Qemu-devel] [PATCH v4 0/5] blockjob: AioContext change support for mirror and backup, Paolo Bonzini, 2016/06/15