[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC] [PATCHv8 09/30] aio / timers: Add QEMUTimerListGr
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [RFC] [PATCHv8 09/30] aio / timers: Add QEMUTimerListGroup and helper functions |
Date: |
Fri, 9 Aug 2013 17:09:19 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Fri, Aug 09, 2013 at 04:35:31PM +0200, Paolo Bonzini wrote:
> Il 09/08/2013 16:27, Alex Bligh ha scritto:
> > Paolo,
> >
> >>> diff --git a/include/qemu/timer.h b/include/qemu/timer.h
> >>> index 1baa0e2..3b46f60 100644
> >>> --- a/include/qemu/timer.h
> >>> +++ b/include/qemu/timer.h
> >>> @@ -52,8 +52,10 @@ typedef enum {
> >>>
> >>> typedef struct QEMUClock QEMUClock;
> >>> typedef struct QEMUTimerList QEMUTimerList;
> >>> +typedef QEMUTimerList *QEMUTimerListGroup[QEMU_CLOCK_MAX];
> >>
> >> Please wrap this in a struct for easier future extensibility.
> >
> > OK
> >
> >> I'm not a big fan of the TimerListGroup name, but I cannot think of
> >> anything better...
> >
> > Ditto
> >
> >> ... except if we get rid of TimerListGroup completely and put it in
> >> AioContext. To do so, we can have _two_ AioContexts in main-loop.c.
> >> One is for the block layer, the other is only used for timers. Later we
> >> could move bottom halves from the first to the second, too.
> >
> > I don't really want to do this, or at least I don't want to do it yet.
> > Partly my concern is about initialising a dummy AioContext and having
> > it hang around. Partly the point is that the timer stuff is meant to
> > work without any AioContexts.
>
> Perhaps, but do we really need it to work outside AioContexts? Using a
> second AioContext for bottom halves has been mentioned for a while. It
> would fix issues where a bottom half runs spuriously before QEMU starts,
> just because something uses qemu_aio_wait(). Extending the same
> approach to timers is natural.
>
> At some point Stefan was planning to add a per-BlockDriverState
> AioContext. Once that is done, using two different AioContext for
> "default block layer context" and "default main loop" context would be
> very easily done.
The model I'm going for is that the user can configure how many event
loop threads to use. Then they can bind a -drive to a specific event
loop thread and it will operate in that AioContext.
So it isn't quite a per-BDS AioContext model but perhaps I'll hit
something which does require per-BDS AioContexts. History has shown the
Paolo's ideas here tend to be a good solution, even when I initially
tried another approach.
Stefan
- Re: [Qemu-devel] [RFC] [PATCHv8 09/30] aio / timers: Add QEMUTimerListGroup and helper functions, (continued)
- Re: [Qemu-devel] [RFC] [PATCHv8 09/30] aio / timers: Add QEMUTimerListGroup and helper functions, Paolo Bonzini, 2013/08/09
- Re: [Qemu-devel] [RFC] [PATCHv8 09/30] aio / timers: Add QEMUTimerListGroup and helper functions, Alex Bligh, 2013/08/09
- Re: [Qemu-devel] [RFC] [PATCHv8 09/30] aio / timers: Add QEMUTimerListGroup and helper functions, Paolo Bonzini, 2013/08/09
- Re: [Qemu-devel] [RFC] [PATCHv8 09/30] aio / timers: Add QEMUTimerListGroup and helper functions, Alex Bligh, 2013/08/09
- Re: [Qemu-devel] [RFC] [PATCHv8 09/30] aio / timers: Add QEMUTimerListGroup and helper functions, Paolo Bonzini, 2013/08/09
- Re: [Qemu-devel] [RFC] [PATCHv8 09/30] aio / timers: Add QEMUTimerListGroup and helper functions, Alex Bligh, 2013/08/10
- Re: [Qemu-devel] [RFC] [PATCHv8 09/30] aio / timers: Add QEMUTimerListGroup and helper functions, Paolo Bonzini, 2013/08/11
- Re: [Qemu-devel] [RFC] [PATCHv8 09/30] aio / timers: Add QEMUTimerListGroup and helper functions, Alex Bligh, 2013/08/11
- Re: [Qemu-devel] [RFC] [PATCHv8 09/30] aio / timers: Add QEMUTimerListGroup and helper functions, Wenchao Xia, 2013/08/12
- Re: [Qemu-devel] [RFC] [PATCHv8 09/30] aio / timers: Add QEMUTimerListGroup and helper functions, Alex Bligh, 2013/08/12
- Re: [Qemu-devel] [RFC] [PATCHv8 09/30] aio / timers: Add QEMUTimerListGroup and helper functions,
Stefan Hajnoczi <=
- Re: [Qemu-devel] [RFC] [PATCHv8 09/30] aio / timers: Add QEMUTimerListGroup and helper functions, Paolo Bonzini, 2013/08/09
- Re: [Qemu-devel] [RFC] [PATCHv8 09/30] aio / timers: Add QEMUTimerListGroup and helper functions, liu ping fan, 2013/08/09
- Re: [Qemu-devel] [RFC] [PATCHv8 09/30] aio / timers: Add QEMUTimerListGroup and helper functions, Paolo Bonzini, 2013/08/10
[Qemu-devel] [RFC] [PATCHv8 02/30] aio / timers: add qemu-timer.c utility functions, Alex Bligh, 2013/08/08
[Qemu-devel] [RFC] [PATCHv8 10/30] aio / timers: Add QEMUTimerListGroup to AioContext, Alex Bligh, 2013/08/08
[Qemu-devel] [RFC] [PATCHv8 11/30] aio / timers: Add a notify callback to QEMUTimerList, Alex Bligh, 2013/08/08