I looked back through your previous messages and did not see that you ever indicated what platform you are running. An earlier message did report that the only time sources your platform has available are tsc and acpi_pm which I take to mean you are on an x86 platform, but I have not seen an x86 platform in a long time which does not also have HPET timer available as a clock source.  According to the wiki article on HPET it has been in x86 chipsets since 2005:
https://en.wikipedia.org/wiki/High_Precision_Event_Timer

My platform is: Kontron COMe-mBT10, A quad-core Intel Atom E3845 at 1,91GHz.

I check again the path "cat /sys/devices/system/clocksource/clocksource0/available_clocksource" and there is not HPET, only tsc and acpi_pm. I checked it on the realtime kernel Preempt-RT and the generic kernel of Ubuntu. No one of them have HPET.

Have you looked at the description of TSC on wikipedia?
https://en.wikipedia.org/wiki/Time_Stamp_Counter

"There is no promise that the timestamp counters of multiple CPUs on a single motherboard will be synchronized. Therefore, a program can get reliable results only by limiting itself to run on one specific CPU. Even then, the CPU speed may change because of power-saving measures taken by the OS or BIOS, or the system may be hibernated and later resumed, resetting the TSC."

I disabled P-States and C-States on the BIOS, so the frequency on the processor will be the maximum without relaxing.



Does /proc/cpuinfo contain the constant_tsc flag?  If not then probably the processor clock is being changed which is changing the rate at which the tsc is ticking. Even if your platform does have constant_tsc I am not positive what happens if the processor goes into thermal throttling. Can you monitor core temperatures to see what happens when you start the load program?  Maybe the processor clock first increases because of the higher load, then decreases as the processor gets hot.  If that seems to be the case you could try  running the processor at a constant clock and lock to a frequency lower than maximum (using the user mode scheduler for example).

Checking "/proc/cpuinfo" I saw "constant_tsc" flag. "tsc" flag as well. What do you want me to do? I have to active it somehow?

The synchronization issue is immediately after I push enter to run the stress-ng with priority fifo 50 and load percentage 25%. I do not consider that the heat is a factor. The error appears just after pushing the enter key.



I should note that my workstation is using TSC for clock, not HPET, so I would guess that is the common choice if the processor supports constant_tsc. According to the Red Hat documentation the TSC clock is preferred, but again I would assume that is on platforms which have constant_tsc, so definitely verify that first. https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux_for_real_time/7/html/reference_guide/chap-timestamping

That Red Hat doc has a lot of good information, you could read through and compare the options available on your platform to how that doc describes the behavior of the various options.


What more could I do?


Thank you very much for your help Chris,

Diego G.

_______________________________________________
Linuxptp-users mailing list
Linuxptp-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-users

Reply via email to