On Sun, Feb 16, 2025 at 01:17:59PM +0800, Herbert Xu wrote: > On Mon, Jan 06, 2025 at 07:10:53PM -0800, Yosry Ahmed wrote: > > > > The main problem is memory usage. Zswap needs a PAGE_SIZE*2-sized > > buffer for each request on each CPU. We preallocate these buffers to > > avoid trying to allocate this much memory in the reclaim path (i.e. > > potentially allocating two pages to reclaim one). > > Actually this PAGE_SIZE * 2 thing baffles me. Why would you > allocate more memory than the input? The comment says that it's > because certain hardware accelerators will disregard the output > buffer length, but surely that's just a bug in the driver? > > Which driver does this? We should fix it or remove it if it's > writing output with no regard to the maximum length. > > You should only ever need PAGE_SIZE for the output buffer, if > the output exceeds that then just fail the compression. I agree this should be fixed if it can be. This was discussed before here: https://lore.kernel.org/lkml/CAGsJ_4wuTZcGurby9h4PU2DwFaiEKB4bxuycaeyz3bPw3jSX3A@xxxxxxxxxxxxxx/ Barry is the one who brought up why we need PAGE_SIZE*2. Barry, could you please chime in here? > > Cheers, > -- > Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> > Home Page: http://gondor.apana.org.au/~herbert/ > PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt >