jlgreathouse / amd_ibs_toolkit Goto Github PK
View Code? Open in Web Editor NEWAMD Research Instruction Based Sampling Toolkit
AMD Research Instruction Based Sampling Toolkit
While this repository doesn't mention SpecLockMap
by name, FAM17H_MSR_WA_1
is MSRC001_1020[54]
:
AMD_IBS_Toolkit/driver/ibs-workarounds.c
Lines 31 to 32 in ce475e6
We found that MSRC001_1020[54]
disables SpecLockMap
(some advanced form of lock
speculation which may roll back a number of post-lock
instructions but doesn't correctly roll back performance counters) in rr-debugger/rr#2034 (comment).
Latest rr
(from git) now contains some detection logic for SpecLockMap
(execute a single atomic, check if r0825:u
aka SpecLockMapCommit
counted it), so you could use for testing (sadly I don't think there's a standalone version).
What we also know is that Zen 2 is just as affected by SpecLockMap
's missing counter rollback as Zen 1 or Zen 1+, which leads me to believe ce475e6 should've added Zen 2 to this list:
AMD_IBS_Toolkit/driver/ibs-core.c
Lines 384 to 391 in ce475e6
Furthermore, only on Zen 2 will setting the MSR bit stick, due to the kernel using MSRC001_1020[10]
as SSBD on earlier Zen (whereas Zen 2 got an architectural MSR for speculation control, and the kernel toggles that instead).
https://github.com/mozilla/rr/wiki/Zen contains more information on how to check if the workaround sticks on a given machine and what you can do to mitigate that - I suspect the tracepoint-based (kernel module) workaround by @glandium is the only one that would be readily applicable for you, since you're already operating within a kernel module (though currently you don't require tracepoints so that would be a new requirement for using the IBS Toolkit).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.