When a data source has a high latency, it stalls the entire sampling thread.
We need a separate thread, that queries the slow data source at maximum interval, where the original sampler can copy its data from.
Experimental comparison of measured data latencies
| source name |
platform |
blocking time |
rapl:cores |
macOS-x86_64 |
40 µs |
mcp:dev0ch1 |
linux-ppc64le |
2690 µs |
opal:power1 |
linux-ppc64le |
198844 µs |
When a data source has a high latency, it stalls the entire sampling thread.
We need a separate thread, that queries the slow data source at maximum interval, where the original sampler can copy its data from.
Experimental comparison of measured data latencies
rapl:coresmcp:dev0ch1opal:power1