[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Re: Very large value from get_nsec_offset() in timer_interrupt
* Ryan Harper <ryanh@xxxxxxxxxx> [2006-04-20 17:47]: > > ns_offset is calculated from get_nsec_offset(). I'm going to dig > a little further, but I wanted to get what I'm seeing out there. static u64 get_nsec_offset(struct shadow_time_info *shadow) { u64 now, delta; rdtscll(now); delta = now - shadow->tsc_timestamp; return scale_delta(delta, shadow->tsc_to_nsec_mul, shadow->tsc_shift); } For some currently unknown reason, now is < shadow->tsc_timestamp; This results in a very large delta value, which is scaled up even larger. The output from the multi-cpu clock info dump doesn't show anything bogus: (XEN) Min = 68672793737292 ; Max = 68672793747633 ; Diff = 10341 (10 microseconds) (XEN) Min = 68899728719792 ; Max = 68899728727283 ; Diff = 7491 (7 microseconds) Any thoughts on why the shadow copy of the tsc_timestamp would be > than the value returned from reading the tsc would be helpful. Very likely this is related to the hardware, this is a 4-node x460 32-way. I've not reproduced this on anything but multi-node setups. -- Ryan Harper Software Engineer; Linux Technology Center IBM Corp., Austin, Tx (512) 838-9253 T/L: 678-9253 ryanh@xxxxxxxxxx _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |