|
测试了一下,本以为zsmalloc凭借自己的高压缩率可以避免很多reject_compress_poor. 我还没写代码,但测试时发现reject_alloc_fail与reject_compress_poor不相上下. 压缩率的话zram中是30%~40%左右,和zbud也差不多. 虽然没能成功作出一些改进,但看了一些代码,我很满足
让zswap的zsmalloc实现LRU,有什么思路? 目前我的思路是在zswap.c里面利用zswap_entry和zswap_pool和内核提供的链表设施(rculist.h / list.h)来实现LRU 理由: 1.实现简单,如果从zsmalloc去实现的话,会经过更多层接口,我的挨个了解这些接口 2.在zsmalloc实现LRU的话,会增加zram的zpool元数据开销,但zram不需要LRU
缺点: 1.如果zpool类型是zbud的话就会导致LRU链表重复,额外增加开销 缺点1貌似可以通过设置单独链表,然后通过参数来解决 2.由于是直接修改了zswap,可能不利于兼容未来可能出现的新zpool_driver.(就像缺点1一样,LRU重复,或更糟的未知情况)
疑惑: 1.如果zswap的zsmalloc实现了LRU,zswap还需要去使用或兼容zbud吗? 2.zswap会创建多个zswap_pool? zswap_pool里面的 list是干什么用的? 不像是为每个swap设备创建的样子,难道是我没看出来?
_________________ Linux桌面优化综合贴[2017.09.18](欢迎各位补充或指正误区) [2016.03.10]会C语言但看不懂英文文档的点这里,一个用C语言编写的简陋学习工具 单硬盘通过iso文件实机安装Debian的方法 重启或操作fcitx时失去响应的一个解决方法,不妨试试看
|