cachepc

Prime+Probe cache-based side-channel attack on AMD SEV-SNP protected virtual machines
git clone https://git.sinitax.com/sinitax/cachepc
Log | Files | Refs | Submodules | README | sfeed.txt

DateCommit messageAuthorFiles+-
2023-02-09 14:49Modify README to reflect current progressLouis Burda1+9-5
2023-02-09 14:41Most consistent version of prime self-testsLouis Burda3+25-9
2023-02-09 12:22Added more tests and sanity checksLouis Burda5+434-125
2023-02-07 15:37Add perf-based test for irqs interrupting prime-probe in test/evictionLouis Burda1+5-0
2023-02-07 14:28fixup! Add syscall to deinit events to prevent blocking on sendLouis Burda1+2-2
2023-02-07 14:26Add counter for L1 misses in guestLouis Burda8+32-12
2023-02-07 13:58Add syscall to deinit events to prevent blocking on sendLouis Burda10+92-52
2023-02-07 13:38Add combined testcase based on exit codesLouis Burda6+39-84
2023-02-07 01:35fixup! Swap gp registers to xmm in vmenterLouis Burda4+10-7
2023-02-06 22:07Add kvm-targetstep to gitignoreLouis Burda3+2-2
2023-02-06 21:46Swap gp registers to xmm in vmenterLouis Burda2+0-8
2023-02-06 21:15Add aes crypto stepping initial testLouis Burda5+258-18
2023-02-06 17:30qemu-targetstep: Attempt to track guest process gfn when running in userspaceLouis Burda13+329-281
2023-02-05 22:02Fix stepping inconsistency by moving oneshot after primeeLouis Burda8+41-29
2023-02-03 18:08Simplify target gfn stepping by tracking a single pageLouis Burda2+2-11
2023-02-03 17:59Properly implement target gfn steppingLouis Burda18+429-1151
2023-02-03 00:38qemu-pagestep is quasi-realtime when suppresing slow kernel loggingLouis Burda8+85-41
2023-02-02 23:39Debug single-stepping on page-boundaries in page_stepLouis Burda8+19-11
2023-02-02 16:37Set default frequency to 1.5GHz and adjust apic timer divide accordinglyLouis Burda4+9-5
2023-02-02 15:42Add event batching and handling of instructions loads on page boundaries for CPC_TRACK_PAGESLouis Burda15+117-36
2023-02-01 22:57Add guest provisioning scripts and instructionsLouis Burda9+156-42
2023-02-01 18:20fixup! Event batchingLouis Burda6+21-24
2023-02-01 17:40Update READMELouis Burda1+29-15
2023-02-01 17:24Properly initialize locksLouis Burda3+4-1
2023-02-01 16:26Remove kernel config for previous version and updated READMELouis Burda4+22-10360
2023-02-01 13:03Fix build, add more build instructions to READMELouis Burda3+19-12
2023-01-30 12:58Add track config to TRACK_MODE ioctl and combine TRACK_STEPS_* modesLouis Burda11+68-575
2023-01-30 12:01Event batchingLouis Burda4+154-83
2023-01-30 10:25Added mainpfn guest utility to determine rough pfn for userspace codeLouis Burda5+69-10
2023-01-27 16:26Make CPC_TRACK_PAGES_RESOLVE the default since no extra overheadLouis Burda8+21-31
2023-01-27 15:42Consistent use of cpc shorthand instead of cachepcLouis Burda10+428-447
2023-01-27 15:33Add CPC_TRACK_STEPS and make apic reset more robustLouis Burda10+28-20
2023-01-26 23:01Added initial qemu-eviction and qemu-pagestepLouis Burda15+162-48
2023-01-26 03:24Basic qemu eviction test with signalled stepping and added rip syscallLouis Burda17+303-523
2023-01-25 19:21Use mfence instead of lfence for memory barrierLouis Burda4+7-4
2023-01-25 18:16Debug copy_to_user occasionally failing in kvm-stepLouis Burda5+29-33
2023-01-25 17:00Remove cachepc objects from kvm-amd moduleLouis Burda6+38-36
2023-01-25 15:34Replace bloated cache_ds alloc methodLouis Burda8+87-471
2023-01-24 15:17Create flat binaries to support more complex guestsLouis Burda20+536-482
2023-01-24 13:25Test page tracking with potential branch prediction in guestLouis Burda1+10-0
2023-01-24 00:43Page track support (without speculation)Louis Burda4+62-97
2023-01-23 21:24Move kvm to guest process and add ipc for synchronizationLouis Burda9+317-639
2023-01-23 19:48Remove unused ioctlsLouis Burda3+1-69
2023-01-23 19:45Specify which revisions are out-of-sync with kernel changesLouis Burda1+2-3
2023-01-23 19:38Use 16-bit realmode assembly for guests (!)Louis Burda12+200-47
2023-01-21 01:23Reimplement test and prime+probe in asm, make self-tests harder and improve noiseLouis Burda14+369-611
2023-01-19 13:11Stash asm version of hwpf testLouis Burda4+85-21
2023-01-19 00:48Many fixes, more precise single-stepping and more robust self-testsLouis Burda9+323-367
2023-01-17 15:30Fixup kvm-eviction and refactor kvm-stepLouis Burda18+1096-1535
2023-01-12 14:44Remove outdated kernel patchLouis Burda1+0-1185
2023-01-11 17:56Fix kvm-eviction kvm & sev supportLouis Burda9+283-148
2023-01-11 13:04Restructuring of kernel changesLouis Burda2+4-12
2023-01-10 16:08Stash fixupsLouis Burda7+19-192
2023-01-10 00:37Begin ioctl and test-case overhaulLouis Burda28+962-1265
2023-01-09 19:31Use compilation load average target instead of jobsLouis Burda1+6-6
2023-01-09 11:59Update cachepc-linux remoteLouis Burda1+1-1
2023-01-09 11:38Stash minor fixesLouis Burda5+27-20
2023-01-05 13:30Stash previous changesLouis Burda4+6-10
2022-12-18 23:53Fix page fault handling and investigate exec stepping with minimal vmLouis Burda16+11827-776
2022-12-11 01:51Adding support for exec based tracking (unstable)Louis Burda18+584-382
2022-11-29 14:26Debug printf for detecting changes in shared SEV resourcesLouis Burda1+92-20
2022-11-28 02:24Attempt to temporarily map vmsa page as sharedLouis Burda2+106-123
2022-11-25 20:50Implement VMSA change based single stepping and guest vmmcall intercept among other thingsLouis Burda17+372-143
2022-11-22 14:34Add program to verify SVME bit is set during VMRUNLouis Burda7+55-3
2022-11-22 14:03Improved single stepping and added initial cpuid eventsLouis Burda15+444-70
2022-11-16 15:03APIC single stepping workingLouis Burda4+26-21
2022-11-15 17:13Various fixes and improvementsLouis Burda8+108-190
2022-11-15 13:42Rename filesLouis Burda5+2-2
2022-11-15 13:38Update kernel source patchLouis Burda1+144-49
2022-11-12 01:06Rename sevstep to cachepc trackingLouis Burda7+204-204
2022-11-12 00:59Rename uspt to cachepc eventsLouis Burda6+177-189
2022-11-12 00:41Implement track mode instead of just cachepc_track_single_stepLouis Burda5+72-52
2022-11-12 00:25Try decrypting guest vmsa for rip debug info in sevstep testLouis Burda5+206-31
2022-11-10 17:16Add fault error codes to event + sevstep debuggingLouis Burda10+187-97
2022-11-04 13:56Enable tracking data fault after instruction fetchLouis Burda6+69-58
2022-11-04 00:16Fixed page tracking and somewhat working single step probeLouis Burda9+241-54
2022-11-03 18:45Stash progressLouis Burda11+345-82
2022-11-03 12:45Build crypto module and no ACCESS_PATTERN in aes-detect_guestLouis Burda4+10-9
2022-11-02 13:21Outline aes-detection guest host setupLouis Burda22+734-48
2022-10-27 21:35Add online baseline measurement and pmc resetLouis Burda8+179-88
2022-10-27 19:34Add baseline measurement modeLouis Burda4+49-0
2022-10-25 12:29Further prune and refactor sevstepLouis Burda10+135-1114
2022-10-21 16:48Validate cache topology at module initLouis Burda4+124-29
2022-10-20 15:47Fix sevstep page tracking exampleLouis Burda12+83-84
2022-10-14 18:19Update with debugging update for ack eventVincent Ulitzsch2+2-0
2022-10-14 18:09Fix the TRACK_ALL handler by using the vcpu->kvm->nr_memslot_pages counterVincent Ulitzsch17+20-39
2022-10-13 23:35Replace smp_processor_id with get_cpuLouis Burda5+51-21
2022-10-06 12:07Renaming, refactoring and pruningLouis Burda5+905-368
2022-10-06 10:02Move cachepc ioctl into kvm device and remove old procfs endpointLouis Burda14+698-749
2022-10-06 07:53Merge sevstep with cachepc dir and merge cachepc headersLouis Burda18+1130-1151
2022-10-05 16:28Add ioctl handling for sevstepLouis Burda4+621-7
2022-10-05 15:49More minor refactorsLouis Burda6+145-139
2022-10-05 15:13Add sevstep prefix to usptLouis Burda3+62-65
2022-10-05 15:05Migrate sevstep to cachepc pmc apiLouis Burda6+29-134
2022-10-05 14:49Sevstep and cachepc refactoringLouis Burda15+317-333
2022-10-05 13:33Fix uapi types and expose KVM_TRACK enumLouis Burda8+68-65
2022-10-05 13:05Refactor sevstep kernel patch into repositoryLouis Burda27+1516-1975
2022-10-04 12:54Small test fixesLouis Burda2+6-4
2022-10-04 12:49Small fixesLouis Burda3+2107-229565
2022-09-29 02:17Kernel seems to compile with page trackingVincent Ulitzsch1+228828-32
2022-09-29 00:14Add the page tracking to patchLouis Burda1+712-214
2022-09-28 22:32Adapt kernel module for sev-snp machineLouis Burda2+23-2
2022-09-26 21:38Removed unused variableLouis Burda2+2-1
2022-09-06 12:30Improve register saving and restoring for prime & probe around vmrunLouis Burda10+91-99
2022-09-06 11:04Fix kvm-amd moduleLouis Burda3+9-11
2022-09-06 10:19Refactor code out of kernel tree kvm.c into kmod dir to reduce patch sizeLouis Burda3+391-431
2022-09-01 21:53sev-es: Fixed OOM symptom, prime & probe working (but not directly around vmrun yet)Louis Burda5+204-167
2022-09-01 15:40Test esLouis Burda2+560-3
2022-08-31 17:13Run SEV_INIT on vmfd before intializing vmcpu for runtime memory decryptionLouis Burda5+288-399
2022-08-31 11:01Stash VU code stateLouis Burda3+7-122
2022-08-30 22:48Hang reproducible, but no bugfix yetVincent Ulitzsch1+8-5
2022-08-30 22:17Merge branch 'master' of github.com:Sinitax/kvm-prime-countLouis Burda0+0-0
2022-08-30 22:14VM guest state verification, VM run hangsVincent Ulitzsch1+30-9
2022-08-30 21:15Verification that enc/dec worksVincent Ulitzsch1+63-0
2022-08-30 20:28sev.c now works until KVM_SEV_LAUNCH_FINISHLouis Burda2+525-1
2022-08-29 20:39Further progress on launching an encrypted vmLouis Burda1+41-7
2022-08-29 19:25UpdateLouis Burda4+84-2
2022-08-29 20:39Further progress on launching an encrypted vmLouis Burda1+41-7
2022-08-29 19:25UPdateLouis Burda4+84-2
2022-08-29 19:25UPdateLouis Burda1+0-0
2022-08-29 19:25Add debugLouis Burda1+12-0
2022-08-26 17:35test/kvm: Remove consistent noise with baseline measurementLouis Burda1+54-19
2022-08-19 12:08Move measurement even closer and ensure preemption is disabledLouis Burda1+28-30
2022-08-19 11:50Inline prime and probe into vmenter.S for better accuracyLouis Burda3+207-6
2022-08-16 12:21Clean up kvm eviction testLouis Burda1+60-141
2022-08-15 19:52Minor tweaksLouis Burda5+145-134
2022-08-15 14:20Stash version with no consistent noise in eviction testLouis Burda5+120-91
2022-08-13 18:59Fixed counts read, added test for hwpf and disable attemptsLouis Burda3+71-21
2022-08-13 18:05Add cache line ordering that prevents hardware prefetching, fix cachepc counts readLouis Burda5+61-75
2022-08-13 16:06Fixup test/kvm, add target_set to ioctl tests as argumentLouis Burda9+178-135
2022-08-13 14:44Reorder repo into module and testsLouis Burda17+480-82
2022-08-13 14:05Add ioctl for eviction testLouis Burda2+11-4
2022-08-08 17:21Added ioctl interface and debuged single access evictionsLouis Burda11+243-90
2022-08-04 08:59Vincent' working single eviction testLouis Burda9+35-22
2022-07-26 15:16Single eviction test with sleepLouis Burda7+374-100
2022-07-25 20:51Added proc device for reading countsLouis Burda5+93-53
2022-07-25 18:13Working prime and probe - but inaccuarateLouis Burda6+94-57
2022-07-25 11:58Read program counters directly, add print and remove procfs approach for testingLouis Burda5+86-31
2022-07-06 11:59Add proc device for communicating counts with userspaceLouis Burda4+105-12
2022-07-04 14:26Initial out-of-tree setupLouis Burda10+659-0