|  |  | Subpages: | 
|  |  | ## Subpages | 
|  |  |  | 
|  |  | * [Test VM with libvirt and QEMU KVM](test-vm) | 
|  |  | * [Kernel Patching Notes](kernel-patching) | 
|  |  |  | 
|  |  | ## Roadmap | 
|  |  |  | 
|  |  | 0. [x] Merge old WIP branches to master | 
|  |  | 1. [ ] Kernel Patch | 
|  |  | 1. [ ] Create a reliable reproducer for the race conditions beween `luksSuspend` and Kernel `sync()` (loop with write operations to filesystem) | 
|  |  | 2. [ ] Develop, test and propose Kernel Patch | 
|  |  | 2. [ ] Clean implementation of the current state into Debian Cryptsetup package. Two key elements: | 
|  |  | 1. [ ] `cryptroot-suspend.c`: C program to make `luksSuspend` and system suspend as atomic as possible | 
|  |  | 2. [ ] `cryptroot-suspend-wrapper`: Shell script with all the logic: build chroot in ramfs; call `cryptroot-suspend.c`, `luksResume` after resume | 
|  |  | 3. [ ] Replace chroot from `cryptroot-suspend-wrapper` with `/boot/initramfs-...` | 
|  |  | 4. [ ] Tackle possible race conditions at resume: | 
|  |  | 1. [ ] Freeze processes: https://superuser.com/questions/485884/can-a-process-be-frozen-temporarily-in-linux | 
|  |  | 2. [ ] Maybe implement in C as `cryptroot-resume.c` | 
|  |  | 5. [ ] Testing and identifying problems with graphical environment | 
|  |  | 1. [ ] ... | 
|  |  | 6. [ ] Testing with different init systems (particularely systemd and sysvinit) | 
|  |  | 7. [ ] Open question: how do we reliably replace the diffent suspend implementations (systemd, Gnome, ...) with ours? | 
|  |  | 8. [ ] Add a configure flag for suspend feature to Gnome Power Management | 
|  |  | \ No newline at end of file |