DJPLUS: High-performance data journaling
source set_env.sh
git submodule update --recursive --init
Develop data journal modules (jbd2) in kernel code. Modify code and build on host. Then reboot on QEMU. HIGHLY recommend you to use gcc-9 (gcc-13 makes compile error)
cp ./VM_kernel.config ./djournalplus-kernel.code/.config
cd ./djournal-kernel.code
make menuconfig # Optional
make -j
sudo make modules_install
sudo make install
Before setting Passthrough, check memlock of user by following command
ulimit -l
If it is not "unlimited" then modify "/etc/security/limits.conf" file.
For example add follow lines to the file. jhlee soft memlock unlimited jhlee hard memlock unlimited
Then applying the changes
sudo systemctl restart systemd-logind
After checking memlock, follow below steps
- Add
intel_iommu=on
toGRUB_CMDLINE_LINUX_DEFAULT
variable in/etc/default/grub
file. sudo update-grub
- Reboot the host machine.
- Check IOMMU has been activated with
dmesg | grep DMAR
.
SPDK repo will be used only for PCIe Passthrough setting. DO NOT build SPDK on host machine.
cd ./spdk
sudo ./scripts/setup.sh
You may see "0000:86:00.0 (144d a824): nvme -> vfio-pci" 86.00.0 will be PCIe address of NVMe drive, used in QEMU
You can reset PCIe passthrough
cd ./spdk
sudo ./scripts/setup.sh reset
Refer to README file in qemu directory.