> For anyone wishing to review this series, here's a diagram showing the > new relationships and a summary of this series: > > http://vmsplice.net/~stefan/timerlist.jpg > > TimerList is the list of QEMUTimers which are pending on a QEMUClock > clock source.
I just started reviewing this and the diagram may be different in v7, anyway: why do you need a default TimerListGroup? I would have thought it is enough to use the default AioContext's own TLG. Paolo > Previously QEMUClock contained this list inline but the goal is to let > AioContexts have their own independent timer lists. This makes timers > much more thread-friendly since we don't work on global lists and > callbacks are dispatched in the same thread's AioContext where they were > created. > > TimerListGroup holds a timerlist for each clock source ("rt", "vm", and > "host"). The main loop has the default TimerListGroup. Each AioContext > has its own TimerListGroup. > > The other major change is that QEMU now uses the event loop's poll() > timeout value instead of a separate OS-specific timer mechanism (aka the > "alarm timer"). > > Stefan >