GNU Binutils Adds Bits For AMD Zen 2's RDPRU + MCOMMIT Instructions
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.
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.
Add A Comment