qemu-devel
[Top][All Lists]
Advanced

[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




reply via email to

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