Skip to content

add a D script to report VMs' CPUID queries #934

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Aug 21, 2025
Merged

Conversation

iximeow
Copy link
Member

@iximeow iximeow commented Aug 20, 2025

a better version of the script from #933, actually worth holding on to.

here's a Debian 11 image booting:

# dtrace -s cpuid-queries.d 0xffffff35739b7000
<skipping some awfully noisy grub stuff>
CPUID query: leaf/subleaf 0x80000000/0x00000000, returns rax = 0x80000028, rbx = 0x68747541, rcx = 0x444d4163, rdx = 0x69746e65
CPUID query: leaf/subleaf 0x80000008/0x00000000, returns rax = 0x00003030, rbx = 0x00000007, rcx = 0x00000000, rdx = 0x00010000
CPUID query: leaf/subleaf 0x00000000/0x00000000, returns rax = 0x00000010, rbx = 0x68747541, rcx = 0x444d4163, rdx = 0x69746e65
CPUID query: leaf/subleaf 0x00000001/0x00000000, returns rax = 0x00a60f12, rbx = 0x00020800, rcx = 0xf6d83203, rdx = 0x178bfbff
CPUID query: leaf/subleaf 0x00000001/0x00000000, returns rax = 0x00a60f12, rbx = 0x00020800, rcx = 0xf6d83203, rdx = 0x178bfbff
CPUID query: leaf/subleaf 0x00000006/0x00000000, returns rax = 0x00000004, rbx = 0x00000000, rcx = 0x00000000, rdx = 0x00000000
CPUID query: leaf/subleaf 0x00000007/0x00000000, returns rax = 0x00000000, rbx = 0xf01703a9, rcx = 0x00000600, rdx = 0x00000000
CPUID query: leaf/subleaf 0x0000000d/0x00000001, returns rax = 0x00000001, rbx = 0x00000240, rcx = 0x00000000, rdx = 0x00000000
CPUID query: leaf/subleaf 0x80000000/0x00000000, returns rax = 0x80000028, rbx = 0x68747541, rcx = 0x444d4163, rdx = 0x69746e65
CPUID query: leaf/subleaf 0x80000001/0x00000000, returns rax = 0x00a60f12, rbx = 0x00000000, rcx = 0x444031fb, rdx = 0x25d3fbff
CPUID query: leaf/subleaf 0x80000007/0x00000000, returns rax = 0x00000000, rbx = 0x00000000, rcx = 0x00000000, rdx = 0x00000100
CPUID query: leaf/subleaf 0x80000008/0x00000000, returns rax = 0x00003030, rbx = 0x00000007, rcx = 0x00000000, rdx = 0x00010000
CPUID query: leaf/subleaf 0x8000000a/0x00000000, returns rax = 0x00000001, rbx = 0x00008000, rcx = 0x00000000, rdx = 0x1ebfbcff
CPUID query: leaf/subleaf 0x8000001f/0x00000000, returns rax = 0x00000001, rbx = 0x000000b3, rcx = 0x00000000, rdx = 0x00000000
CPUID query: leaf/subleaf 0x80000021/0x00000000, returns rax = 0x00062fcf, rbx = 0x0000015c, rcx = 0x00000000, rdx = 0x00000000
CPUID query: leaf/subleaf 0x00000000/0x00000000, returns rax = 0x00000010, rbx = 0x68747541, rcx = 0x444d4163, rdx = 0x69746e65
CPUID query: leaf/subleaf 0x00000006/0x00000000, returns rax = 0x00000004, rbx = 0x00000000, rcx = 0x00000000, rdx = 0x00000000
CPUID query: leaf/subleaf 0x00000000/0x00000000, returns rax = 0x00000010, rbx = 0x68747541, rcx = 0x444d4163, rdx = 0x69746e65
CPUID query: leaf/subleaf 0x00000006/0x00000000, returns rax = 0x00000004, rbx = 0x00000000, rcx = 0x00000000, rdx = 0x00000000

it'd be nice to elide the subleaf for leaves that do not have subleaves, output like

CPUID query: leaf/subleaf 0x00000000/0x7fac95621e97, returns rax = 0x00000010, rbx = 0x68747541, rcx = 0x444d4163, rdx = 0x69746e65
CPUID query: leaf/subleaf 0x00000001/0x7ffd11ee380c, returns rax = 0x00a60f12, rbx = 0x00020800, rcx = 0xfed83203, rdx = 0x178bfbff

is not ideal.. need to have a better treatment of CPUID leaves elsewhere so i might maybe generate a list of known leaf-y/subleaf-y leaves for this. but also if you're looking at this i assume you'll figure out pretty quick which "subleaf" items are not actually relevant.

@iximeow iximeow merged commit f85be0a into master Aug 21, 2025
11 checks passed
@iximeow iximeow deleted the ixi/cpuid-queries-script branch August 21, 2025 02:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants