在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);
有什么想法吗?