Phoronix posted an an article measuring Ryzen 2600 and Ryzen 2700. The comparisons were a 9-way CPU comparison of new processors (7 AMD and 2 Intel). In this posting, I’ll look more at the workloads being tested.
Continue reading →
Performance counters and memory analysis; checking with pmu_tools
After my previous post on backend analysis, I got a chance to look further breaking out backend stall statistics.
Continue reading →
Phoronix article – clear linux benchmarks (2018-05-16)
Phoronix posted an article about Clear linux. The goal was to look for changes in the system after all packages were rebuilt with GCC 8.1.
Continue reading →
Phoronix article – compiler benchmarks (2018-05-10)
Phoronix posted an article benchmarking GCC 8.1 today. These benchmarks compare GCC 8.1 vs GCC 7.3 on a variety of Ubuntu 18.04 systems.
While I haven’t reproduced the exact comparisons on Ubuntu, in this article I make some notes about the workloads to help characterize what is being measured. Also useful to make some notes of what benchmarks seem to be more sensitive to GCC compiler optimizations.
Continue reading →
Phoronix article – Clear Linux benchmarks (2018-05-04)
Phoronix posted an article about Clear linux benchmarks. The article was a three-way comparison between Clear Linux, Ubuntu 18.04 LTS and Fedora 28 on a variety of workloads. While I don’t have the same systems to compare, this posting characterizes the workloads so I can better understand the comparisons.
Continue reading →
Phoronix article – Ubuntu 18.04 vs 16.04 (2018-05-02)
On May 2nd, Phoronix published a benchmark comparison of 18.04 vs. 16.04 on multiple systems. It was intended to compare “out of the box” experiences.
As the article notes, similarities and differences between these systems include
- gcc 7.3 vs. gcc 5.4
- linux kernel 4.15 vs. kernel 4.12
- Slight differences in Spectre mitigation
- Newer Mesa, Python versions
While I don’t have the hardware or the OS versions, this post makes some notes characterizing the benchmarks to understand what is being measured as well as possible differences. As best I can tell below, benchmarks seem most sensitive to “build” and “runtime” environments. It is also an excuse to do some deeper dives on the benchmarks themselves to understand what is being measured.
Continue reading →
TODO list at end of April
As April finished, useful to take stock of where analysis is at as well as next steps. During May, I may also take a few week break to finish publishing my book and a cycle trip- so also useful to capture the loose ends.
Continue reading →
wspy – memory analysis for processes; need to sanity check the metrics…
As a followup to this post, I’ve implemented per-process capture of backend counters. I can now create a memory report from a process tree.
Continue reading →
wspy – added –perfcounter-model application
I have added a new mode:
--perfcounter-model application
this supplements the previous two modes:
--perfcounter-model process --perfcounter-model core
This mode works similar to the process model, except only the root process is instrumented and then the “inherit” flag is passed. This lets me compare the values of inherit vs. totaling all the counters of a tree.
In principle, this is also compatible with the ftrace processtree model, though I haven’t turned that plumbing on yet.
Adding robustness to building process trees
The ptrace(2) man page shows how one can subscribe for events such as PTRACE_EVENT_FORK or PTRACE_EVENT_VFORK type events that happens when a process calls fork()/vfork(). At such an event one can then call ptrace(PTRACE_GETEVENTMSG,…) to retrieve the pid of the new child.
This has worked fairly well, although I noticed in my most extreme cases, e.g. build-gcc with a million processes, that a small amount ~0.1% of the events might not retrieve a valid process id for the new child.
Continue reading →