( Zsugabubus | 2018. 01. 12., p – 20:58 )

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)