Re: [PATCH] BUG in pv_clock when overflow condition is detected

From: Avi Kivity
Date: Wed Feb 15 2012 - 09:02:13 EST


On 02/15/2012 01:23 PM, Igor Mammedov wrote:
>>> static u64 pvclock_get_nsec_offset(struct pvclock_shadow_time
>>> *shadow)
>>> {
>>> - u64 delta = native_read_tsc() - shadow->tsc_timestamp;
>>> + u64 delta;
>>> + u64 tsc = native_read_tsc();
>>> + BUG_ON(tsc< shadow->tsc_timestamp);
>>> + delta = tsc - shadow->tsc_timestamp;
>>> return pvclock_scale_delta(delta, shadow->tsc_to_nsec_mul,
>>> shadow->tsc_shift);
>>
>> Maybe a WARN_ON_ONCE()? Otherwise a relatively minor hypervisor bug can
>> kill the guest.
>
>
> An attempt to print from this place is not perfect since it often leads
> to recursive calling to this very function and it hang there anyway.
> But if you insist I'll re-post it with WARN_ON_ONCE,
> It won't make much difference because guest will hang/stall due overflow
> anyway.

Won't a BUG_ON() also result in a printk?

>
> If there is an intention to keep guest functional after the event then
> maybe this patch is a way to go
> http://www.spinics.net/lists/kvm/msg68463.html
> this way clock will be re-silent to this kind of errors, like bare-metal
> one is.

It's the same patch... do you mean something that detects the overflow
and uses the last value?

--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/