Hi Julien,

> On 7 Jul 2022, at 16:33, Julien Grall <[email protected]> wrote:
> 
> Hi Jiamei,
> 
> On 06/07/2022 09:25, Jiamei Xie wrote:
>> virt_vtimer_save() will calculate the next deadline when the vCPU is
>> scheduled out. At the moment, Xen will use the following equation:
>> virt_timer.cval + virt_time_base.offset - boot_count
>> The three values are 64-bit and one (cval) is controlled by domain. In
>> theory, it would be possible that the domain has started a long time
>> after the system boot. So virt_time_base.offset - boot_count may be a
>> large numbers.
>> This means a domain may inadvertently set a cval so the result would
>> overflow. Consequently, the deadline would be set very far in the
>> future. This could result to loss of timer interrupts or the vCPU
>> getting block "forever".
>> One way to solve the problem, would be to separately
>> 1) compute when the domain was created in ns
>> 2) convert cval to ns
>> 3) Add 1 and 2 together
>> The first part of the equation never change (the value is set/known at
>> domain creation). So take the opportunity to store it in domain structure.
>> Signed-off-by: Jiamei Xie <[email protected]>
> 
> Reviewed-by: Julien Grall <[email protected]>
> 
> The commit message is my own, I would like to Bertrand or Stefano to confirm 
> they are happy with it :).

I am ok with it so:
Reviewed-by: Bertrand Marquis <[email protected]>

Cheers
Bertrand

> 
> Cheers,
> 
> -- 
> Julien Grall


Reply via email to