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 kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html