On 01/02/2019 10:50, Jan Beulich wrote:
>>>> On 01.02.19 at 08:26, <[email protected]> wrote:
>> While working on my core scheduling series I stumbled over the periodic
>> timer. Could it be this timer never worked correctly?
>>
>> When the vcpu with an active periodic timer is running everything seems
>> to be fine. But when not running the timer is stopped in schedule(). So
>> a vcpu going to idle relying to be woken up by the periodic timer will
>> remain sleeping until another event is happening. The periodic timer
>> won't fire as it is stopped.
>>
>> The periodic timer is used via VCPUOP_set_periodic_timer only, and
>> today's Linux kernel isn't using it at all. So I guess this timer not
>> really working as it should is no big issue.
> 
> Interesting. Our kernels have been using it until SLE11 SP1, as
> did the old 2.6.18 one that all of our old kernels were derived
> from. Yet the same code is present already in 3.2.0's schedule().
> Are you sure this timer is meant to wake the vCPU at the set
> rate, rather than just surfacing events if the vCPU is running?
> Looking at vcpu_periodic_timer_work()'s calculation of the
> next event time also suggests to me that there's no guarantee
> that the event will indeed surface at the set rate.

That's correct. The set rate just is the minimum time between two
interrupts.

The usability of such a timer is questionable in the best case IMO.


Juergen

_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to