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
