You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
The text was updated successfully, but these errors were encountered:
The existing implementation fails to convert the remainder
microseconds to nanoseconds. This causes sysmon to consume
much more cpu, and generate lots of context switches.
We can also do a little better here to avoid division by a
constant. I used go to determine the magic numbers.
Fixesgolang#56374
Change-Id: I2e37ec218b9027efab6db4634eed1504c0c1b3c8
Reviewed-on: https://go-review.googlesource.com/c/go/+/444735
Reviewed-by: Lynn Boger <laboger@linux.vnet.ibm.com>
Run-TryBot: Paul Murphy <murp@ibm.com>
Reviewed-by: David Chase <drchase@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
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
The text was updated successfully, but these errors were encountered: