All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joel Fernandes <joel@joelfernandes.org>
To: Daniel Colascione <dancol@google.com>
Cc: Suren Baghdasaryan <surenb@google.com>,
	LKML <linux-kernel@vger.kernel.org>,
	Tim Murray <timmurray@google.com>,
	Carmen Jackson <carmenjackson@google.com>,
	Mayank Gupta <mayankgupta@google.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Minchan Kim <minchan@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	kernel-team <kernel-team@android.com>,
	"Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>,
	Dan Williams <dan.j.williams@intel.com>,
	Jerome Glisse <jglisse@redhat.com>, linux-mm <linux-mm@kvack.org>,
	Matthew Wilcox <willy@infradead.org>,
	Michal Hocko <mhocko@suse.cz>,
	Ralph Campbell <rcampbell@nvidia.com>,
	Vlastimil Babka <vbabka@suse.cz>
Subject: Re: [PATCH v2] mm: emit tracepoint when RSS changes by threshold
Date: Wed, 4 Sep 2019 10:59:41 -0400	[thread overview]
Message-ID: <20190904145941.GF240514@google.com> (raw)
In-Reply-To: <CAKOZuet_M7nu5PYQj1iZErXV8hSZnjv4kMokVyumixVXibveoQ@mail.gmail.com>

On Tue, Sep 03, 2019 at 10:42:53PM -0700, Daniel Colascione wrote:
> On Tue, Sep 3, 2019 at 10:15 PM Joel Fernandes <joel@joelfernandes.org> wrote:
> >
> > On Tue, Sep 03, 2019 at 09:51:20PM -0700, Daniel Colascione wrote:
> > > On Tue, Sep 3, 2019 at 9:45 PM Suren Baghdasaryan <surenb@google.com> wrote:
> > > >
> > > > On Tue, Sep 3, 2019 at 1:09 PM Joel Fernandes (Google)
> > > > <joel@joelfernandes.org> wrote:
> > > > >
> > > > > Useful to track how RSS is changing per TGID to detect spikes in RSS and
> > > > > memory hogs. Several Android teams have been using this patch in various
> > > > > kernel trees for half a year now. Many reported to me it is really
> > > > > useful so I'm posting it upstream.
> > >
> > > It's also worth being able to turn off the per-task memory counter
> > > caching, otherwise you'll have two levels of batching before the
> > > counter gets updated, IIUC.
> >
> > I prefer to keep split RSS accounting turned on if it is available.
> 
> Why? AFAIK, nobody's produced numbers showing that split accounting
> has a real benefit.

I am not too sure. Have you checked the original patches that added this
stuff though? It seems to me the main win would be on big systems that have
to pay for atomic updates.

> > I think
> > discussing split RSS accounting is a bit out of scope of this patch as well.
> 
> It's in-scope, because with split RSS accounting, allocated memory can
> stay accumulated in task structs for an indefinite time without being
> flushed to the mm. As a result, if you take the stream of virtual
> memory management system calls that  program makes on one hand, and VM
> counter values on the other, the two don't add up. For various kinds
> of robustness (trace self-checking, say) it's important that various
> sources of data add up.
> 
> If we're adding a configuration knob that controls how often VM
> counters get reflected in system trace points, we should also have a
> knob to control delayed VM counter operations. The whole point is for
> users to be able to specify how precisely they want VM counter changes
> reported to analysis tools.

We're not adding more configuration knobs.

> > Any improvements on that front can be a follow-up.
> >
> > Curious, has split RSS accounting shown you any issue with this patch?
> 
> Split accounting has been a source of confusion for a while now: it
> causes that numbers-don't-add-up problem even when sampling from
> procfs instead of reading memory tracepoint data.

I think you can just disable split RSS accounting if it does not work well
for your configuration. It sounds like the problems you share are common all
with existing ways of getting RSS accounting working, and not this particular
one, hence I mentioned it is a bit of scope.

Also AFAIU, every TASK_RSS_EVENTS_THRESH the page fault code does sync the
counters. So it does not indefinitely lurk. The tracepoint's main intended
use is to detect spikes which provides ample opportunity to sync the cache.

You could reduce TASK_RSS_EVENTS_THRESH in your kernel, or even just disable
split RSS accounting if that suits you better. That would solve all the
issues you raised, not just any potential ones that you raised here for this
tracepoint.

thanks,

 - Joel



  reply	other threads:[~2019-09-04 14:59 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-03 20:09 [PATCH v2] mm: emit tracepoint when RSS changes by threshold Joel Fernandes (Google)
2019-09-04  4:44 ` Suren Baghdasaryan
2019-09-04  4:44   ` Suren Baghdasaryan
2019-09-04  4:51   ` Daniel Colascione
2019-09-04  4:51     ` Daniel Colascione
2019-09-04  5:15     ` Joel Fernandes
2019-09-04  5:42       ` Daniel Colascione
2019-09-04  5:42         ` Daniel Colascione
2019-09-04 14:59         ` Joel Fernandes [this message]
2019-09-04 17:15           ` Daniel Colascione
2019-09-04 17:15             ` Daniel Colascione
2019-09-04 23:59             ` sspatil
2019-09-04  5:02   ` Joel Fernandes
2019-09-04  5:38     ` Suren Baghdasaryan
2019-09-04  5:38       ` Suren Baghdasaryan
2019-09-04  8:45 ` Michal Hocko
2019-09-04 15:32   ` Joel Fernandes
2019-09-04 15:37     ` Michal Hocko
2019-09-04 16:28       ` Joel Fernandes
2019-09-05 10:54         ` Michal Hocko
2019-09-05 14:14           ` Joel Fernandes
2019-09-05 14:20             ` Michal Hocko
2019-09-05 14:23               ` Joel Fernandes
2019-09-05 14:43         ` Michal Hocko
2019-09-05 16:03           ` Suren Baghdasaryan
2019-09-05 16:03             ` Suren Baghdasaryan
2019-09-05 17:35             ` Steven Rostedt
2019-09-05 17:39               ` Suren Baghdasaryan
2019-09-05 17:39                 ` Suren Baghdasaryan
2019-09-05 17:43               ` Tim Murray
2019-09-05 17:43                 ` Tim Murray
2019-09-05 17:47               ` Joel Fernandes
2019-09-05 17:51                 ` Joel Fernandes
2019-09-05 19:56                   ` Tom Zanussi
2019-09-05 19:56                     ` Tom Zanussi
2019-09-05 20:24                     ` Daniel Colascione
2019-09-05 20:24                       ` Daniel Colascione
2019-09-05 20:32                       ` Tom Zanussi
2019-09-05 21:14                       ` Tom Zanussi
2019-09-05 22:12                         ` Daniel Colascione
2019-09-05 22:12                           ` Daniel Colascione
2019-09-05 22:51                           ` Daniel Colascione
2019-09-05 22:51                             ` Daniel Colascione
2019-09-05 17:50               ` Daniel Colascione
2019-09-05 17:50                 ` Daniel Colascione
2019-09-06  0:59                 ` Joel Fernandes
2019-09-06  1:15                   ` Daniel Colascione
2019-09-06  1:15                     ` Daniel Colascione
2019-09-06  3:01                     ` Joel Fernandes
2019-09-04 17:17       ` Daniel Colascione
2019-09-04 17:17         ` Daniel Colascione

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=20190904145941.GF240514@google.com \
    --to=joel@joelfernandes.org \
    --cc=akpm@linux-foundation.org \
    --cc=aneesh.kumar@linux.ibm.com \
    --cc=carmenjackson@google.com \
    --cc=dan.j.williams@intel.com \
    --cc=dancol@google.com \
    --cc=jglisse@redhat.com \
    --cc=kernel-team@android.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mayankgupta@google.com \
    --cc=mhocko@suse.cz \
    --cc=minchan@kernel.org \
    --cc=rcampbell@nvidia.com \
    --cc=rostedt@goodmis.org \
    --cc=surenb@google.com \
    --cc=timmurray@google.com \
    --cc=vbabka@suse.cz \
    --cc=willy@infradead.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.