GNU Binutils Adds Bits For AMD Zen 2's RDPRU + MCOMMIT Instructions
Written by Michael Larabel in AMD on 7 November 2019 at 08:15 AM EST. Add A Comment
AMD --
GNU Binutils with its "Gas" assembler has now added the rest of the instructions supported by the AMD Zen 2 microarchitecture that previously were unsupported by this piece of the GNU toolchain.

RDPRU and MCOMMIT are the two instructions for Zen 2 added to Binutils by SUSE's Jan Beulich. RDPRU has been covered multiple times on Phoronix and is for reading a processor register typically limited to privilege level zero. This allows for registers like MPERF/APERF to be easily read at user-level.

MCOMMIT on the other hand is an instruction set extension for Zen 2 that seems to actually be new to us. AMD hasn't mentioned MCOMMIT on their press slides nor commented on it when asking them previously at the July events about new instructions for Zen 2 or what we've seen in other Zen 2 toolchain patches to date.

AMD's tech doc only added the MCOMMIT instruction in September. MCOMMIT is used for committing stores to memory and provides a fencing / error detection capability for stores to system memory. The tech doc does note MCOMMIT needs to be explicitly enabled by the OS though when looking at the kernel, there hasn't been any MCOMMIT related kernel bits yet, so at least for Linux users is likely not enabled at this time even with compatible processors.

In any case, MCOMMIT and RDPRU are now plumbed into Binutils.
Related News
About The Author
Author picture

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter or contacted via MichaelLarabel.com.

Popular News This Week