linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Michal Hocko <mhocko@kernel.org>
To: Roman Gushchin <guro@fb.com>
Cc: Vlastimil Babka <vbabka@suse.cz>,
	linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Johannes Weiner <hannes@cmpxchg.org>,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	kernel-team@fb.com, Linux API <linux-api@vger.kernel.org>
Subject: Re: [PATCH 1/3] mm: introduce NR_INDIRECTLY_RECLAIMABLE_BYTES
Date: Thu, 12 Apr 2018 16:46:51 +0200	[thread overview]
Message-ID: <20180412144651.GI23400@dhcp22.suse.cz> (raw)
In-Reply-To: <20180412143826.GA30714@castle.DHCP.thefacebook.com>

On Thu 12-04-18 15:38:33, Roman Gushchin wrote:
> On Thu, Apr 12, 2018 at 01:52:17PM +0200, Michal Hocko wrote:
> > On Thu 12-04-18 08:52:52, Vlastimil Babka wrote:
> > > On 04/11/2018 03:56 PM, Roman Gushchin wrote:
> > > > On Wed, Apr 11, 2018 at 03:16:08PM +0200, Vlastimil Babka wrote:
> > [...]
> > > >> With that in mind, can we at least for now put the (manually maintained)
> > > >> byte counter in a variable that's not directly exposed via /proc/vmstat,
> > > >> and then when printing nr_slab_reclaimable, simply add the value
> > > >> (divided by PAGE_SIZE), and when printing nr_slab_unreclaimable,
> > > >> subtract the same value. This way we would be simply making the existing
> > > >> counters more precise, in line with their semantics.
> > > > 
> > > > Idk, I don't like the idea of adding a counter outside of the vm counters
> > > > infrastructure, and I definitely wouldn't touch the exposed
> > > > nr_slab_reclaimable and nr_slab_unreclaimable fields.
> > 
> > Why?
> 
> Both nr_slab_reclaimable and nr_slab_unreclaimable have a very simple
> meaning: they are numbers of pages used by corresponding slab caches.

Right, but if names are reclaimable then they should end up in the
reclaimable slabs and to be accounted as such. Objects themselves are
not sufficient to reclaim the accounted memory.

> In the answer to the very first version of this patchset
> Andrew suggested to generalize the idea to allow further
> accounting of non-kmalloc() allocations.
> I like the idea, even if don't have a good example right now.

Well, I have to disagree here. It sounds completely ad-hoc without
a reasoable semantic. Or how does it help users when they do not know
what is the indirect dependency and how to trigger it.

> The problem with external names existed for many years before
> we've accidentally hit it, so if we don't have other examples
> right now, it doesn't mean that we wouldn't have them in the future.
> 
> > 
> > > We would be just making the reported values more precise wrt reality.
> > 
> > I was suggesting something similar in an earlier discussion. I am not
> > really happy about the new exposed counter either. It is just arbitrary
> > by name yet very specific for this particular usecase.
> > 
> > What is a poor user supposed to do with the new counter? Can this be
> > used for any calculations?
> 
> For me the most important part is to fix the overcommit logic, because it's
> a real security and production issue.

Sure, the problem is ugly. Not the first one when the unaccounted kernel
allocation can eat a lot of memory. We have many other such. The usual
answer was to use kmemcg accounting.

-- 
Michal Hocko
SUSE Labs

  reply	other threads:[~2018-04-12 14:46 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-05 13:37 [PATCH 0/3] indirectly reclaimable memory Roman Gushchin
2018-03-05 13:37 ` [PATCH 1/3] mm: introduce NR_INDIRECTLY_RECLAIMABLE_BYTES Roman Gushchin
2018-04-11 13:16   ` Vlastimil Babka
2018-04-11 13:56     ` Roman Gushchin
2018-04-12  6:52       ` Vlastimil Babka
2018-04-12 11:52         ` Michal Hocko
2018-04-12 14:38           ` Roman Gushchin
2018-04-12 14:46             ` Michal Hocko [this message]
2018-04-12 14:57         ` Roman Gushchin
2018-04-13  6:59           ` Michal Hocko
2018-04-13 12:13           ` vinayak menon
2018-04-25  3:49             ` Vijayanand Jitta
2018-04-25 12:52               ` Roman Gushchin
2018-04-25 15:47                 ` Vlastimil Babka
2018-04-25 16:48                   ` Roman Gushchin
2018-04-25 17:02                     ` Vlastimil Babka
2018-04-25 17:23                       ` Roman Gushchin
2018-04-25 15:55             ` Matthew Wilcox
2018-04-25 16:59               ` Vlastimil Babka
2018-03-05 13:37 ` [PATCH 2/3] mm: add indirectly reclaimable memory to MemAvailable Roman Gushchin
2018-03-05 13:47   ` Roman Gushchin
2018-03-05 13:37 ` [PATCH 2/3] mm: treat indirectly reclaimable memory as available in MemAvailable Roman Gushchin
2018-03-05 13:37 ` [PATCH 3/3] dcache: account external names as indirectly reclaimable memory Roman Gushchin
2018-03-12 21:17   ` Al Viro
2018-03-12 22:36     ` Roman Gushchin
2018-03-13  0:45       ` Al Viro
2018-04-05 22:11         ` Andrew Morton
2018-04-06 10:32           ` Roman Gushchin
2018-04-13 13:35   ` Minchan Kim
2018-04-13 13:59     ` Michal Hocko
2018-04-13 14:20       ` Vlastimil Babka
2018-04-13 14:28         ` Michal Hocko
2018-04-13 14:37           ` Johannes Weiner
2018-04-16 11:41             ` Michal Hocko
2018-04-16 12:06               ` Vlastimil Babka
2018-04-16 12:27                 ` Michal Hocko
2018-04-16 19:57                   ` Vlastimil Babka
2018-04-17  6:44                     ` Michal Hocko
2018-04-16 13:09                 ` Matthew Wilcox
2018-04-17 11:24               ` Roman Gushchin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180412144651.GI23400@dhcp22.suse.cz \
    --to=mhocko@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=guro@fb.com \
    --cc=hannes@cmpxchg.org \
    --cc=kernel-team@fb.com \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=vbabka@suse.cz \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).