在 GNU/Linux 上,我想在 RAM 磁盘中处理一些可压缩的数据(比如 Linux 内核源代码)。估计的最大数据量将比 RAM 大 2...3 倍,但如果压缩后预计会很好地适应。理想情况下,我想使用像“tmpfs”这样不合适的东西,因为当太多数据引发广泛交换时,它会导致死锁。“zram”是一个几乎理想的解决方案,但它不可交换,因此可以确定过多的 RAM。我想知道如何修补 Linux 内核以使 zram 可交换,类似于 tmpfs?
可以通过修改“drivers/staging/zram/zram_drv.c”中的 GFP 标志来完成吗?
例如,我(相当天真地)认为可以修改以下行以达到理想的效果:
zram->mem_pool = zs_create_pool("zram", GFP_NOIO | __GFP_HIGHMEM);
请问有什么想法吗?