While investigating high context switch numbers in the runtime, it was discovered the PPC64 implementation of usleep passes incorrect values to the tv_nsec parameter of the nanosleep syscall. It fails to convert the remainder microseconds to nanoseconds. This can be observed with perf stat on simple benchmarks. The high context-switch rate was related to sysmon polling at 1000x the desired rate.
@golang/ppc64
While investigating high context switch numbers in the runtime, it was discovered the PPC64 implementation of usleep passes incorrect values to the tv_nsec parameter of the nanosleep syscall. It fails to convert the remainder microseconds to nanoseconds. This can be observed with
perf staton simple benchmarks. The high context-switch rate was related to sysmon polling at 1000x the desired rate.@golang/ppc64