cgvwzq / evsets

Tool for testing and finding minimal eviction sets
Apache License 2.0
95 stars 32 forks source link

Unable to generate verified correct eviction set address #11

Open Glutton0 opened 11 months ago

Glutton0 commented 11 months ago

lscpu Architecture: x86_64 CPU operating mode: 32-bit, 64-bit Address sizes: 45 bits physical, 48 bits virtual Byte order: Little Endian CPU: 4 Online CPU list: 0-3 Vendor ID: GenuineIntel Model name: 11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz CPU series: 6 Model: 167 Threads per core: 1 Number of cores per seat: 2 Seats: 2 step: 1 Bogo MIPS: 4992.00 Virtualization features: Hypervisor Vendor: VMware Virtualization Type: Full Caches (sum of all): L1d: 192 KiB (4 instances) L1i: 128 KiB (4 instances) L2: 2 MiB (4 instances) L3: 32 MiB (2 instances) NUMA: NUMA nodes: 1 NUMA Node 0 CPUs: 0-3 Vulnerabilities: Itlb multihit: KVM: Mitigation: VMX unsupported L1tf: Not affected Mds: Not affected Meltdown: Not affected Mmio stale data: Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown Retbleed: Mitigation; Enhanced IBRS Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl Specter v1: Mitigation; usercopy/swapgs barriers and __user pointer Sanitization Specter v2: Mitigation; Enhanced IBRS, IBPB conditional, RSB fillin g, PBRSB-eIBRS SW sequence Srbds: Not affected Tsx async abort: Not affected

cachecpu getconf -a | grep CACHE LEVEL1_ICACHE_SIZE 32768 LEVEL1_ICACHE_ASSOC
LEVEL1_ICACHE_LINESIZE 64 LEVEL1_DCACHE_SIZE 49152 LEVEL1_DCACHE_ASSOC 12 LEVEL1_DCACHE_LINESIZE 64 LEVEL2_CACHE_SIZE 524288 LEVEL2_CACHE_ASSOC 8 LEVEL2_CACHE_LINESIZE 64 LEVEL3_CACHE_SIZE 16777216 LEVEL3_CACHE_ASSOC 16 LEVEL3_CACHE_LINESIZE 64 LEVEL4_CACHE_SIZE 0 LEVEL4_CACHE_ASSOC
LEVEL4_CACHE_LINESIZE

./evsets -b 3000 -c 16 -s 8 -a n -e 2 -n 16 -o 4096 -r 10 -t 30 -C 0 --conflictset --verify [+] 11 MB buffer allocated at 0x7f8602000000 (192000 blocks) [+] Default Threshold = 30 [+] Compute conflict set: 12 [+] Initial candidate set evicted victim [+] Created linked list structure (12 elements) [+] Starting naive reduction... [+] Reduction time: 0.000002 seconds [+] Total execution time: 0.014549 seconds [+] (ID=0) Found minimal eviction set for 0x7f86069a1000 (length=12): 0x7f860814a000 0x7f8602405000 0x7f8604fe1000 0x7f8607ef2000 0x7f86070c2000 0x7f8607923000 0x7f86097d0000 0x7f8605d23000 0x7f8603631000 0x7f8607173000 0x7f8603426000 0x7f860371d000 [+] Verify eviction set (only in Linux with root):

As a student of CSCA, I plan to experiment and evaluate five minimal eviction set generation algorithms. I tried to adjust the parameters many times to get the correct verify result, but the result is still wrong, I don't know what is wrong. In addition, I also tried to modify the naive algorithm to output the unreduced eviction set, but it seems that because the limit out in the generate conflict function is always not greater than the number of conf.cache_way, I am confused…… And, I want to understand what conf.threshold does,thx : )

Glutton0 commented 11 months ago

I saw the previous two issues and seemed to understand the reason