- cross-posted to:
- phoronix@lemmy.world
- cross-posted to:
- phoronix@lemmy.world
You must log in or register to comment.
I couldn’t find a hard answer to whether this supports EPYC only, or Ryzen too; so I put together this script to read the CPUID to detect for
INVLPGB
support according to the AMD64 Programmer’s Manual, and my 7800X3D does not supportINVLPGB
.(Let me know if I’ve made an error though!)
Code
#include <stdio.h> #include <stdint.h> int main() { uint32_t eax, ebx, ecx, edx; eax = 0x80000008; __asm__ __volatile__ ( "cpuid" : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx) : "a" (eax) ); printf("EBX: 0x%x\n", ebx); if (ebx & (1 << 3)) { printf("CPU supports INVLPGB\n"); } else { printf("CPU does not support INVLPGB\n"); } return 0; }
I can’t keep up with the architecture family lines; is the Ryzen 7 5800 series on the Zen 3 line?
Assuming you’re talking about the 5800x, yes.
That’s
INVLPG
which has been there since the 486. The AMD64 Programmer’s Manual has some info on the differences betweenINVLPG
,INVLPGA
, andINVLPGB
though.