[PATCH v7 0/3] x86/fpu Measure the Latency of XSAVES and XRSTORS

From: Yi Sun
Date: Thu Sep 21 2023 - 15:53:43 EST


This series implements a solution for measuring the latency of
XSAVES/XRSTORS instructions on x86 processors. The motivation for This
solution is to provide a way to identify potential bottlenecks and
anomalies in the implementation of these instructions on different X86
hardware platforms and identify when the cost of XSAVES/XRSTORS is
increasing or decreasing. And Get the RFBM and XINUSE to figure out reason
if there are any issues.

The solution enables the comparison of the latency of the FPU across
different systems from various vendors over an long period of time.

The solution consists of two parts:
1. Two new tracepoints that calculate delta TSC as the latency.
2. A user-space tool that consumes trace logs and shows results.

We conducted extensive internal testing and compared several latency
computation methodologies. We believe it could be improved. Also the script
for consuming trace logs uses sqlite3 to display statistics data such as
max and min latency, and 97% tail latency, etc.

- Change from v6 to v7:
- Rebase patch to the most recent tag v6.6-rc1, no conflict.
- Remove all the additional crusts when disable CONFIG_X86_DEBUG_FPU.
(Ingo Molnar)

- Change from v5 to v6:
- Rebase patch to the most recent tag v6.5-rc7, no conflict.
- Add a colomn 'count' to the output of the script.

- Change from v4 to v5:
- Rebase patch to the most recent tag v6.1-rc2, no conflict.

- Change from v3 to v4:
- Rebase patch set to the latest tag v6.0-rc3, replacing
ALTERNATIVE_2 with ALTERNATIVE_3

- Change from v2 to v3:
- Move the script xsave-latency-trace.sh to folder tools/testing/fpu/
(Ingo Molnar)

- Change from v1 to v2:
- Reword the comments. (Laight, David; Mehta, Sohil)
- Rename all variable 'dtsc' to 'latency'. (Mehta, Sohil)

*** BLURB HERE ***

Yi Sun (3):
x86/fpu: Measure the Latency of XSAVE and XRSTOR
tools/testing/fpu: Add script to consume trace log of xsave latency
tools/testing/fpu: Add a 'count' column.

arch/x86/include/asm/trace/fpu.h | 37 ++++
arch/x86/kernel/fpu/xstate.h | 42 +++-
tools/testing/fpu/xsave-latency-trace.sh | 234 +++++++++++++++++++++++
3 files changed, 308 insertions(+), 5 deletions(-)
create mode 100755 tools/testing/fpu/xsave-latency-trace.sh

--
2.34.1