Bug#599161: [Xen-devel] #599161: Xen debug patch for the "clock shifts by 50 minutes" bug.
>>> On 08.11.12 at 11:38, Keir Fraser <keir@xen.org> wrote:
> On 08/11/2012 09:39, "Jan Beulich" <JBeulich@suse.com> wrote:
>
>>>>>> (XEN) XXX plt_overflow: plt_now=5ece12d34128 plt_wrap=5ece12d09306
>>>>>> now=5ece12d16292 old_stamp=35c7c new_stamp=800366a5
>>>>>> plt_stamp64=15b800366a5 plt_mask=ffffffff tsc=e3839fd23854
>>>>>> tsc_stamp=e3839fcb0273
>>>>>
>>>>> (below is the complete xm dmesg output)
>>>>>
>>>>> did that help you ? do you need more info ?
>>>>
>>>> I'll leave this to Keir (who wrote the debugging patch) to answer but it
>>>> looks to me like it should be useful!
>>>
>>> I'm scratching my head. plt_wrap is earlier than plt_now, which should be
>>> impossible. plt_stamp64 oddly has low 32 bits identical to new_stamp. That
>>> seems very very improbable!
>>
>> Is it? My understanding was that plt_stamp64 is just a software
>> extension to the more narrow HW counter, and hence the low
>> plt_mask bits would always be expected to be identical.
>
> No, plt_stamp is simply the HW counter time at which plt_stamp64 was last
> brought up to date. Hence plt_stamp64 is updated as:
> plt_stamp64 += (new_stamp - old_stamp) & plt_mask;
I concur: Given that what old_stamp is here was new_stamp for
the last update, we should simply have
stamp64 = s0 + (s1 - s0) + (s2 - s1) + ...
(of course with the mask applied on each addend), which (for the
low bits) is the same as just new_stamp.
Jan
Reply to: