Re: [RFC PATCH 0/3] Introduce per-cgroup compression priority
zhongjinji <[email protected]> Thu, 30 Oct 2025 19:32:28 +0800
| Newsgroups | dev.linux.lists.drbd-dev,org.kernel.vger.cgroups,org.kernel.vger.linux-block,org.kernel.vger.linux-doc,org.kernel.vger.linux-kernel,org.kvack.linux-mm |
|---|---|
| Message-ID | <[email protected]> |
> Hi Jinji, > > On Sun, Oct 26, 2025 at 01:05:07AM +0000, jinji zhong wrote: > > Hello everyone, > > > > On Android, different applications have varying tolerance for > > decompression latency. Applications with higher tolerance for > > decompression latency are better suited for algorithms like ZSTD, > > which provides high compression ratio but slower decompression > > speed. Conversely, applications with lower tolerance for > > decompression latency can use algorithms like LZ4 or LZO that > > offer faster decompression but lower compression ratios. For example, > > lightweight applications (with few anonymous pages) or applications > > without foreground UI typically have higher tolerance for decompression > > latency. > > > > Similarly, in memory allocation slow paths or under high CPU > > pressure, using algorithms with faster compression speeds might > > be more appropriate. > > > > This patch introduces a per-cgroup compression priority mechanism, > > where different compression priorities map to different algorithms. > > This allows administrators to select appropriate compression > > algorithms on a per-cgroup basis. > > > > Currently, this patch is experimental and we would greatly > > appreciate community feedback. I'm uncertain whether obtaining > > compression priority via get_cgroup_comp_priority in zram is the > > best approach. While this implementation is convenient, it seems > > somewhat unusual. Perhaps the next step should be to pass > > compression priority through page->private. > > > > Setting aside the issues in the implementation (like changing > compression algorithm of a cgroup while it already has some memory Zram uses flags to track the compression priority of each page, which should be ok when the page is decompressed. > compressed using older algo), I don't think memcg interface is the right > way to go about it. We usually add interfaces to memcg that have > hierarchical semantics. Thanks a lot, Shakeel. I got it. > Anyways if you want to have this feature, I think BPF might be the way > to get this flexibility without introducing any stable API and then you > can experiment and evaluate if this really helps.