Re: Stolen and degraded time and schedulers

Dan Hecht
2007-03-15T20:35:39Z

On 03/15/2007 01:14 PM, Rik van Riel wrote:
> Dan Hecht wrote:
>
>> Yes, the part in the "i.e." above is describing available time. So,
>> it is essentially is the same definition of stolen time VMI uses:
>
>> stolen time == ready to run but not running
>> available time == running or not ready to run
>
> S390 too. We were quite careful to make sure that steal time
> means the same on the different platforms when the code was
> introduced.
>

The S390 folks should correct me if I'm mistaken, but I think S390 works
a bit differently. I don't think their "steal clock" will differentiate
between idle time and stolen time (since it's implemented as a hardware
clock that counts the time a particular vcpu context is executing on the
pcpu). So they need the kernel to differentiate between really stolen
time and just idle time. At least, I assume this is why
account_steal_time() can then sometimes account steal time towards idle,
and looking at arch/s390/kernel/vtime.c seems to indicate this.

In the Xen and VMI case, the hypervisor differentiates between stolen
and idle time, which is why we use the hack to call into
account_steal_time with NULL tsk (so that all of steal gets accounted to
stolen, even if the idle task happened to be current). This allows us
to account stolen time that happened on the tail end of an idle period.