Skip to content

[Platforms] AMD CPU support #651

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

Closed
3 tasks done
raduweiss opened this issue Nov 26, 2018 · 10 comments
Closed
3 tasks done

[Platforms] AMD CPU support #651

raduweiss opened this issue Nov 26, 2018 · 10 comments
Assignees
Labels
Roadmap: Tracked Items tracked on the roadmap project.

Comments

@raduweiss
Copy link
Contributor

raduweiss commented Nov 26, 2018

Ensure Firecracker and all it's features work on AMD. While most functionality should carry over without changes, the cpu masking feature is not implemented for AMD.

Task breakdown:

@mikeroyal
Copy link

@iggy
Copy link
Contributor

iggy commented Dec 15, 2018

I was at least able to boot a VM on a Ryzen level CPU. So the basics at least work. I'll update if I run into any blockers (and maybe even try to fix them).

login[856]: root login on 'ttyS0'
localhost:~# cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 23
model           : 17
model name      : Intel(R) Xeon(R) Processor
stepping        : 0
microcode       : 0x1000065
cpu MHz         : 3196.760
physical id     : 0
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt tsc
_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ssbd ibpb vmmcall fsgsbase tsc_adjust bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 virt_ssbd arat npt nrip_save
 arch_capabilities
bugs            : fxsave_leak sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass
bogomips        : 6393.52
clflush size    : 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management:

@raduweiss
Copy link
Contributor Author

@iggy , out of curiosity, do all integration tests pass on that machine? tools/devtool test to run them.

@iggy
Copy link
Contributor

iggy commented Dec 17, 2018

Some, but not all of them. The output is quite long, so I'll link to a termbin.

http://termbin.com/v0ob

@patrobinson
Copy link

I'm running an AMD FX processor and it doesn't work for me. Here's the flags not present in my processor that are in @iggy 's

x2apic movbe tsc _deadline_timer rdrand hypervisor ibpb fsgsbase avx2 tsc_adjust smep rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 virt_ssbd

Of all these x2apic looks the most important but it seems like Ryzen doesn't support x2apic so I think KVM is emulating that for you. But it does support avic

🤷‍♂️

@bkleiner
Copy link

I recently switched to a Threadripper 1950X, however in contrast to @iggy vms do not fully start (they hang after rng init).
A lot of the integrations tests fail, probably because of the hanging vms.

@iggy
Copy link
Contributor

iggy commented Dec 17, 2018

Here's the cpuinfo from the actual host (vs the one above being inside the actual VM)

https://gist.github.com/iggy/7c72e0d3de86e37cafd3ce9032352316

@patrobinson
Copy link

Here's the CPU flag diff between @iggy's CPU flags (Ryzen Zen microarchitecture) and mine (FX - Bulldozer family)

adx avic avx2 bmi2 bpext clflushopt clzero fsgsbase ibpb irperf movbe mwaitx overflow_recov perfctr_llc rdrand rdseed sha_ni smap smca sme smep succor v_vmsave_vmload vgif xgetbv1 xsavec xsaveerptr xsaveopt xsave

@rv32ima
Copy link
Contributor

rv32ima commented Jan 2, 2019

Odd. I also have a FX-series processor and the only tests that are failing are
test regs::tests::test_setup_sregs ... FAILED
and test tests::test_cpuid ... FAILED
Everything else for the most part works, but VMs do not boot up at all

@raduweiss
Copy link
Contributor Author

I'll close this tracking milestone and move all AMD issues to a milestone.

@raduweiss raduweiss removed the Roadmap label Feb 15, 2019
@raduweiss raduweiss added the Roadmap: Tracked Items tracked on the roadmap project. label Jul 15, 2019
@raduweiss raduweiss changed the title AMD Support AMD CPU support Sep 18, 2020
@raduweiss raduweiss changed the title AMD CPU support Platforms: AMD CPU support Sep 18, 2020
@raduweiss raduweiss changed the title Platforms: AMD CPU support [Platforms] AMD CPU support Sep 18, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Roadmap: Tracked Items tracked on the roadmap project.
Projects
None yet
Development

No branches or pull requests

7 participants