[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 4/5] disk_deadlines: add control of requests tim
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-devel] [PATCH 4/5] disk_deadlines: add control of requests time expiration |
Date: |
Tue, 8 Sep 2015 13:06:24 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
Am 08.09.2015 um 10:00 hat Denis V. Lunev geschrieben:
> From: Raushaniya Maksudova <address@hidden>
>
> If disk-deadlines option is enabled for a drive, one controls time
> completion of this drive's requests. The method is as follows (further
> assume that this option is enabled).
>
> Every drive has its own red-black tree for keeping its requests.
> Expiration time of the request is a key, cookie (as id of request) is an
> appropriate node. Assume that every requests has 8 seconds to be completed.
> If request was not accomplished in time for some reasons (server crash or
> smth else), timer of this drive is fired and an appropriate callback
> requests to stop Virtial Machine (VM).
>
> VM remains stopped until all requests from the disk which caused VM's
> stopping are completed. Furthermore, if there is another disks whose
> requests are waiting to be completed, do not start VM : wait completion
> of all "late" requests from all disks.
>
> Signed-off-by: Raushaniya Maksudova <address@hidden>
> Signed-off-by: Denis V. Lunev <address@hidden>
> CC: Stefan Hajnoczi <address@hidden>
> CC: Kevin Wolf <address@hidden>
> + disk_deadlines->expired_tree = true;
> + need_vmstop = !atomic_fetch_inc(&num_requests_vmstopped);
> + pthread_mutex_unlock(&disk_deadlines->mtx_tree);
> +
> + if (need_vmstop) {
> + qemu_system_vmstop_request_prepare();
> + qemu_system_vmstop_request(RUN_STATE_PAUSED);
> + }
> +}
What behaviour does this result in? If I understand correctly, this is
an indirect call of do_vm_stop(), which involves a bdrv_drain_all(). In
this case, qemu would completely block (including unresponsive monitor)
until the request can complete.
Is this what you are seeing with this patch, or why doesn't the
bdrv_drain_all() call cause such effects?
Kevin
- Re: [Qemu-devel] [PATCH 2/5] disk_deadlines: add request to resume Virtual Machine, (continued)
[Qemu-devel] [PATCH 1/5] add QEMU style defines for __sync_add_and_fetch, Denis V. Lunev, 2015/09/08
[Qemu-devel] [PATCH 3/5] disk_deadlines: add disk-deadlines option per drive, Denis V. Lunev, 2015/09/08
[Qemu-devel] [PATCH 4/5] disk_deadlines: add control of requests time expiration, Denis V. Lunev, 2015/09/08
- Re: [Qemu-devel] [PATCH 4/5] disk_deadlines: add control of requests time expiration, Fam Zheng, 2015/09/08
- Re: [Qemu-devel] [PATCH 4/5] disk_deadlines: add control of requests time expiration,
Kevin Wolf <=
- Re: [Qemu-devel] [PATCH 4/5] disk_deadlines: add control of requests time expiration, Denis V. Lunev, 2015/09/08
- Re: [Qemu-devel] [PATCH 4/5] disk_deadlines: add control of requests time expiration, Kevin Wolf, 2015/09/08
- Re: [Qemu-devel] [PATCH 4/5] disk_deadlines: add control of requests time expiration, Denis V. Lunev, 2015/09/08
- Re: [Qemu-devel] [PATCH 4/5] disk_deadlines: add control of requests time expiration, Kevin Wolf, 2015/09/08
- Re: [Qemu-devel] [PATCH 4/5] disk_deadlines: add control of requests time expiration, Stefan Hajnoczi, 2015/09/10
- Re: [Qemu-devel] [PATCH 4/5] disk_deadlines: add control of requests time expiration, Kevin Wolf, 2015/09/10
- Re: [Qemu-devel] [PATCH 4/5] disk_deadlines: add control of requests time expiration, Stefan Hajnoczi, 2015/09/14
- Re: [Qemu-devel] [PATCH 4/5] disk_deadlines: add control of requests time expiration, Dr. David Alan Gilbert, 2015/09/25
- Re: [Qemu-devel] [PATCH 4/5] disk_deadlines: add control of requests time expiration, Stefan Hajnoczi, 2015/09/29
- Re: [Qemu-devel] [PATCH 4/5] disk_deadlines: add control of requests time expiration, Dr. David Alan Gilbert, 2015/09/29