[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC 0/8] arm AioContext with its own timer stuff
From: |
Liu Ping Fan |
Subject: |
[Qemu-devel] [RFC 0/8] arm AioContext with its own timer stuff |
Date: |
Sun, 21 Jul 2013 16:42:57 +0800 |
Currently, the timers run on iothread within BQL, so virtio-block dataplane can
not use throttle,
as Stefan Hajnoczi pointed out in his patches to port dataplane onto block
layer.(Thanks, Stefan)
To enable this feature, I plan to enable timers to run on AioContext's thread.
And maybe in future, hpet can run with its dedicated thread too.
Also, I see Alex Bligh is on the same effort by another method,(it is a good
idea)
"[RFC] aio/async: Add timed bottom-halves".
So I think it is better to post my series for discussion, although I have not
thought
very clearly point, e.g. sigaction
This series ports two parts of timer stuff onto AioContext: alarm timer and
timer list.
Currently I worked based on Stefanha's git tree
https://github.com/stefanha/qemu.git dataplane-block-layer.
---
Open issue:
The thread safe problem on timer list. To resolve that, I plan to adopt the
bh model.
(Not sure about this, maybe Stefan's solution in another thread is better)
Although leave most of the race issue unresolved, patch 4 has tried to fix one
of
them as Jan Kiszka points out that vm_clock can be read outside BQL, thanks Jan
:)
Liu Ping Fan (8):
timer: associate alarm_timer with AioContext
timer: pick out timer list info from QemuClock
timer: make timers_state static
timer: protect timers_state with lock
timer: associate timer with AioContext
timer: run timers on aio_poll
block: associate BlockDriverState with AioContext
block: enable throttle with aiocontext
aio-posix.c | 2 +
async.c | 12 ++
block.c | 13 ++-
cpus.c | 29 ++++-
hw/block/dataplane/virtio-blk.c | 1 +
include/block/aio.h | 14 +++
include/block/block.h | 1 +
include/block/block_int.h | 1 +
include/qemu/timer.h | 24 +++-
main-loop.c | 6 -
qemu-timer.c | 237 +++++++++++++++++++++++++++-------------
11 files changed, 253 insertions(+), 87 deletions(-)
--
1.8.1.4
- [Qemu-devel] [RFC 0/8] arm AioContext with its own timer stuff,
Liu Ping Fan <=
- [Qemu-devel] [RFC 1/8] timer: associate alarm_timer with AioContext, Liu Ping Fan, 2013/07/21
- [Qemu-devel] [RFC 2/8] timer: pick out timer list info from QemuClock, Liu Ping Fan, 2013/07/21
- [Qemu-devel] [RFC 3/8] timer: make timers_state static, Liu Ping Fan, 2013/07/21
- [Qemu-devel] [RFC 4/8] timer: protect timers_state with lock, Liu Ping Fan, 2013/07/21
- [Qemu-devel] [RFC 5/8] timer: associate timer with AioContext, Liu Ping Fan, 2013/07/21
- [Qemu-devel] [RFC 6/8] timer: run timers on aio_poll, Liu Ping Fan, 2013/07/21