_Timecounter_* behaviour with sleeping cores (windup delayed)

Silistru, Lucian-Raul lucian-raul.silistru at intel.com
Wed Nov 9 17:30:43 UTC 2022


I've seen a strange behaviour with _Timecounter_Binuptime where time can go back in a setup where the core is sometimes sleeping (with no periodic interrupts enabled - tick is off). The timecounter keeps running.

My current guess would be that the tick is skipped enough times that the timecounter almost does a full rollover, at which point time will restart from an earlier value i.e for a specific previous "th_offset_count" there are a few binuptime() calls where delta goes from 1 to 0xffff_ffff (resulting in a time increase) then delta rolls over to a small value again, which gives the time jump.

I am trying to find out if there's any obvious mechanism I am not seeing/finding that would prevent the above from happening?

Thank you
Lucian Silistru


More information about the devel mailing list