Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| summerofcode2019projects:virtualmemorycompression [2019/05/09 02:24] – PaavoEinariKaipila | summerofcode2019projects:virtualmemorycompression [2019/06/23 20:37] (current) – PaavoEinariKaipila | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Virtual Memory Compression ====== | ====== Virtual Memory Compression ====== | ||
| - | * Student: [[/ | + | * Student: [[/ |
| - | * Mentors: | + | * Mentors: |
| + | * [[https://freebsd.slack.com/ | ||
| - | ===== Introuduction | + | ===== Introduction |
| Virtual memory compression is a memory management technique implemented by multiple operating systems ranging from Windows to Darwin. Depending on the implementation, | Virtual memory compression is a memory management technique implemented by multiple operating systems ranging from Windows to Darwin. Depending on the implementation, | ||
| Line 21: | Line 22: | ||
| ===== Project Plan ===== | ===== Project Plan ===== | ||
| - | This page gives one example of a project page format. | + | ==== Primary goal: “zram for FreeBSD” ==== |
| - | ===== Deliverables ===== | + | The primary goal is to implement a compressed in-memory disk that can be utilized as a swap storage. The current plan is to integrate it to existing md(4) and the corresponding userland configuration tool mdconfig(8). Lz4 will be the default algorithm due to its good speed/ |
| - | * deliverable 1 | + | ==== Secondary goal: “zswap for FreeBSD” ==== |
| - | * deliverable 2 | + | |
| - | * ... | + | A secondary goal (only once the first one is considered ready and there' |
| ===== Milestones ===== | ===== Milestones ===== | ||
| - | * Dated list of milestones | + | |
| + | * soft start, getting to know my mentors | ||
| + | * getting familiar with DTrace as I believe it will be useful | ||
| + | * a script for building the system, installing it into an image and launching a VM in one go ✔ done | ||
| + | * May 27 | ||
| + | * Coding officially starts. From this day forward, I will spend about 7-8 hours per day on the project. | ||
| + | * June 21 - 23 | ||
| + | * Finnish midsummer (juhannus, a national holiday). I’m taking few days off. | ||
| + | * By mid-evaluations June 24 - 28 | ||
| + | * A compressed in-memory backend for md(4) | ||
| + | * Required new options for mdconfig(8) | ||
| + | * By final evaluations August 19 - 26 | ||
| + | * Testing, stabilization and benchmarking. Also on non-X86 systems. | ||
| + | * trying adaptive compression | ||
| + | * an rc script for configuring a compressed memory disk as a swap storage | ||
| + | * a userland utility for creating temporary file systems with compressed in-memory storage, probably as part of mdmfs(8) | ||
| + | * documentation | ||
| + | * (possibly) a compressed cache in front of another storage device | ||
| - | ===== Test Plan ===== | + | ===== Development and testing |
| - | A test plan. | + | Development and testing will happen in a 13.0-CURRENT system that I already have inside a bhyve virtual machine. As the project progresses, testing will gradually move to physical hardware that I have at disposal. That includes two [[/ |
| ===== The Code ===== | ===== The Code ===== | ||
| - | + | https:// | |
| - | * https:// | + | |
| - | + | ||
| - | ===== Notes ===== | + | |
| - | + | ||
| - | ===== Useful links ===== | + | |