https://www.phoronix.com/scan.php?page=news_item&px=AMD-Rele...
Yet more evidence not to trust hardware random number generators.
I remember reading somewhere that, for a long time, Intel's "test cases" basically consisted of all the operating systems they could find, going back to MS-DOS 1.0 and including some more obscured ones, as well as tons of other third-party software.
Unfortunately it seems this new generation no longer follows the "NEVER break backwards compatibility" principle that made the PC such a great platform, and as a result we're seeing hardware/software/firmware that's increasingly buggy and divergent. It used to be the case that if a new processor couldn't run existing software (even that which depended on undocumented but constant behaviour) unmodified, it was a fatal flaw.
https://www.amd.com/system/files/TechDocs/amd-random-number-...
> "The RNG uses 16 separate ring oscillator chains as a noise source. Each chain consists of a different prime number of inverters in a free-running configuration which capture natural clock jitter"
So it's (deliberately) dependent on natural manufacturing variation in the silicon, and in any deterministic simulator won't produce random numbers. It also takes a while to start; it's possible that the startup conditions are bad such that "a while" turns out to be "forever".
The problem is as it always is with these kinds of things. They help assure that you can measure your model and your implementation of that model. They're much less capable of determining you've got the right model to begin with. That part is still up to the humans.
The state of commonplace capabilities for testing and verification of software is extremely far behind that of hardware. For a variety of economic, cultural, and use case incentives reasons.
https://github.com/systemd/systemd/blob/f90bcf8679e870878829...
How long is very long? 100ms, or 10s?
In some ways, it's very much WONTFIX because something like sshd might actually need the entropy. I'm glad that systemd has proper workarounds implemented so that the machine actually boots out of the box, though.
And it's my experience, too. It's one reason to install something like haveged. I had boot delays in the range of minutes, without it.
Oh, the art of insulting the audience in the first line of a message intended for them. And it ends up being the person you'd expect to write it.
processor : 15
vendor_id : AuthenticAMD
cpu family : 23
model : 113
model name : AMD Ryzen 7 3700X 8-Core Processor
stepping : 0
microcode : 0x8701013
cpu MHz : 1863.008
cache size : 512 KB
physical id : 0
siblings : 16
core id : 7
cpu cores : 8
apicid : 15
initial apicid : 15
fpu : yes
fpu_exception : yes
cpuid level : 16
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 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate sme ssbd mba sev ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr wbnoinvd arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif umip rdpid overflow_recov succor smca
bugs : sysret_ss_attrs spectre_v1 spectre_v2 spec_store_bypass
bogomips : 7189.14
TLB size : 3072 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 43 bits physical, 48 bits virtual
power management: ts ttp tm hwpstate cpb eff_freq_ro [13] [14][0]: https://neosmart.net/blog/2017/will-amds-ryzen-finally-bring...
What do you think is more common? People rolling their own SHA implementation or people calling <insert crypto library>'s SHA256()? The former will barely get any sort of optimization, regardless of compiler flags, the latter will automatically use the SHA extensions.
The choice is easy: pay more for intel and 'It Just Works (tm)' or pay less for amd and fight with issues.
And it's great.
1. RDRAND returns -1 (and sets the carry bit meaning it thinks -1 is a random number). Supposedly this will be fixed in a BIOS update (which makes me think it's an intended mode wrongly turned on... a backdoor?)
2. On linux, CPU monitoring (e.g. temperature) is not available as AMD hasn't published the specs on that yet
3. While it has spectre "mitigations" (stibp, ibpb, ssbd), spectre is not yet dead (spectre_v1, spectre_v2, spec_store_bypass).
4. There is a bug/oddity in how it deals with %fs: https://www.phoronix.com/scan.php?page=news_item&px=DragonFl...
5. PSP/SEV ccp driver calls hang (on my machine at least, might be the mobo) but luckily linux only waits a few seconds before giving up and continuing the boot process.
6. There have been reports of high idle voltages, but under linux w/o monitoring I have no idea if I'm affected or if the issue is real or significant.
For most use cases all of the above are minor and don't overshadow the price-performance success of these processors.