And here is a series of patches based on v6.6-rc3: mostly just cosmetic mods in mm/shmem.c, but the last two enforcing the "size=" limit better. 8/8 goes into percpu counter territory, and could stand alone: I'll add some more Cc's on that one. Applies to any v6.6-rc so far, and to next-20230929 and to mm-everything-2023-09-29-23-51: hah, there's now an 09-30-01-16, I haven't tried it yet, but this should be good on that too. 1/8 shmem: shrink shmem_inode_info: dir_offsets in a union 2/8 shmem: remove vma arg from shmem_get_folio_gfp() 3/8 shmem: factor shmem_falloc_wait() out of shmem_fault() 4/8 shmem: trivial tidyups, removing extra blank lines, etc 5/8 shmem: shmem_acct_blocks() and shmem_inode_acct_blocks() 6/8 shmem: move memcg charge out of shmem_add_to_page_cache() 7/8 shmem: _add_to_page_cache() before shmem_inode_acct_blocks() 8/8 shmem,percpu_counter: add _limited_add(fbc, limit, amount) include/linux/percpu_counter.h | 23 ++ include/linux/shmem_fs.h | 16 +- lib/percpu_counter.c | 53 ++++ mm/shmem.c | 500 +++++++++++++++++------------------ 4 files changed, 333 insertions(+), 259 deletions(-) Hugh