On Thu, Mar 25, 2021 at 07:24:23PM -0400, Josh Rickmar wrote: > On Thu, Mar 25, 2021 at 05:28:54PM -0500, Scott Cheloha wrote: > > Feel free to share your raw data. > > Attached.
Hmmm, interesting stuff. $ ministat -q cpu* x cpu1-skew + cpu2-skew * cpu3-skew % cpu4-skew # cpu5-skew @ cpu6-skew O cpu7-skew N Min Max Median Avg Stddev x 1000 1.4605543e+09 1.4605543e+09 1.4605543e+09 1.4605543e+09 -nan + 1000 1.4605543e+09 1.4605544e+09 1.4605544e+09 1.4605544e+09 -nan No difference proven at 95.0% confidence * 1000 1.4605543e+09 1.4605543e+09 1.4605543e+09 1.4605543e+09 32.397926 No difference proven at 95.0% confidence % 1000 1.4605543e+09 1.4605544e+09 1.4605544e+09 1.4605544e+09 -nan No difference proven at 95.0% confidence # 1000 1.4605543e+09 1.4605543e+09 1.4605543e+09 1.4605543e+09 45.817587 No difference proven at 95.0% confidence @ 1000 1.4605543e+09 1.4605544e+09 1.4605544e+09 1.4605544e+09 129.59171 Difference at 95.0% confidence 60.42 +/- 6.73519 4.13679e-06% +/- 4.61139e-07% (Student's t, pooled s = 76.8384) O 1000 1.4605543e+09 1.4605543e+09 1.4605543e+09 1.4605543e+09 104.98128 Difference at 95.0% confidence 5.71 +/- 4.81512 3.90947e-07% +/- 3.29678e-07% (Student's t, pooled s = 54.9334) I wish ministat wasn't NaNing the stddev but I don't have the time to work around it right now. Anyway, every AP TSC is off from the BSP by about ~1.46 billion cycles. All skews fall between 1460554280 and 1460554380. So, pretty consistent, but consistently off. You definitely won't be able to use the TSC for userspace timecounting until someone decides how to map the skews into userspace. Or maybe if someone will figure out why the TSCs on machines like yours are not synchronized at boot and devises a way to prevent it from happening at all. Thanks for the data!