qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 0/3] qemu-timer: make QEMUTimer functions thread


From: Jan Kiszka
Subject: Re: [Qemu-devel] [PATCH 0/3] qemu-timer: make QEMUTimer functions thread-safe
Date: Mon, 15 Jul 2013 14:57:41 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666

On 2013-07-15 14:45, Paolo Bonzini wrote:
> Il 05/07/2013 19:51, Jan Kiszka ha scritto:
>> On 2013-07-05 14:39, Stefan Hajnoczi wrote:
>>> This series makes the following functions thread-safe:
>>>
>>>   qemu_mod_timer_ns()
>>>   qemu_mod_timer()
>>>   qemu_del_timer()
>>>   qemu_timer_pending()
>>>
>>> The following were already thread-safe:
>>>
>>>   qemu_free_timer()
>>>   qemu_new_timer()
>>>   qemu_timer_expired()
>>>
>>> Now it is possible to use QEMUTimer outside the QEMU global mutex.  Timer
>>> callbacks are still invoked from the main loop.  If a thread wishes to run
>>> timer callbacks it must use a thread-safe QEMUBH (which Ping Fan Liu is 
>>> working
>>> on).
>>
>> What do you mean with this? We need main-loop independent timers for any
>> task that depends on timely alarm delivery. Do your patches keep this in
>> mind as well?
> 
> These are orthogonal issues.  Stefan's usecase does not need timely
> delivery.

Not necessarily. Timely delivery is likely the harder requirement that
also fulfills the need to move timer setup/manipulation outside of BQL.
I didn't have time to look into details yet, but there is a risk that
this rework will not help to achieve RT qualities but rather needs
another, non-orthogonal rework.

> 
>>> Note that host_clock is not thread-safe because it keeps state and invokes
>>> reset notifiers.  Device emulation threads mostly care about vm_clock, so 
>>> this
>>> is not a problem.
>>
>> I suppose you know that vm_clock cannot be read outside BQL yet due to
>> timers_state and, under TCG, icount. Any ideas regarding this already? I
>> didn't have to solve that problem so far as I only need CLOCK_REALTIME
>> outside BQL.
> 
> I was thinking of a seqlock.  It should be quite cheap, since there
> would be hardly any contention.

Will think about this as well.

> 
> No ideas about host_clock's notifiers.

Hmm, we should be able to push the notification into BH context over the
main thread. Just jump detection requires the read context - unless we
want to poll for it.

Jan

-- 
Siemens AG, Corporate Technology, CT RTC ITP SES-DE
Corporate Competence Center Embedded Linux



reply via email to

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