On Wed, Apr 17, 2019 at 02:04:17PM +0200, Vlastimil Babka wrote: > On 4/12/19 10:06 PM, Roman Gushchin wrote: > > On Fri, Apr 12, 2019 at 03:14:18PM -0400, Johannes Weiner wrote: > >> With the default overcommit==guess we occasionally run into mmap > >> rejections despite plenty of memory that would get dropped under > >> pressure but just isn't accounted reclaimable. One example of this is > >> dying cgroups pinned by some page cache. A previous case was auxiliary > >> path name memory associated with dentries; we have since annotated > >> those allocations to avoid overcommit failures (see d79f7aa496fc ("mm: > >> treat indirectly reclaimable memory as free in overcommit logic")). > >> > >> But trying to classify all allocated memory reliably as reclaimable > >> and unreclaimable is a bit of a fool's errand. There could be a myriad > >> of dependencies that constantly change with kernel versions. > > Just wondering, did you find at least one another reclaimable case like > those path names? I'm only aware of the cgroup structures which can be pinned by a dentry, inode, or page cache page. But they're an entire tree of memory allocations, per-cpu memory regions etc. that would be impossible to annotate correctly; it's also unreclaimable while the cgroup is user-visible and only becomes reclaimable once rmdir'd.