Exmap error with page allocation on kernel 6.2
fluffychaos opened this issue · comments
As mentioned in #5 I do get a runtime error when using the exmap module with a 6.2.* kernel, resulting in the application using exmap being killed. The corresponding journalctl entry is as follows
RIP: 0010:exmap_alloc_iter+0x10c/0x230 [exmap]
This happens when I call ioctl(exmapfd, EXMAP_IOCTL_ACTION, &action_params)
with the op-code set to EXMAP_OP_ALLOC
.
My system has the following config:
- Distribution: Fedora 38
- Kernel: 6.2.14-300.fc38.x86_64
- gcc: 13.1.1 20230426
- Only the 2 changed mentioned in #5 applied to get exmap to compile
- Block device used is a loopback device created with
losetup
pointing to a regular file - Application used: vmcache, compiled with the same version of gcc
- Environment variables set for vmcache control:
BLOCK=/dev/loop0
whereloop0
is the block device mentioned above
I was able to reproduce this error in a small test application which only makes the setup calls, loads the memory into the address space via mmap
and then makes the ioctl
call for page allocation. Due to a lack of time I was not able to dig deeper into this so far, including re-creating the environment used for the benchmarks in the original paper. But maybe someone here has an idea what the root cause is.
Hello! It's been quite a while, and many changes and fixes have been made.
Can you check whether you can still reproduce this error with the current version of exmap? If not, I'd (finally) close this issue.