From: Janani Ravichandran <janani.rvchndrn@gmail.com>
To: Michal Hocko <mhocko@kernel.org>
Cc: Janani Ravichandran <janani.rvchndrn@gmail.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
riel@surriel.com, akpm@linux-foundation.org,
vdavydov@virtuozzo.com, vbabka@suse.cz,
mgorman@techsingularity.net, rostedt@goodmis.org
Subject: Re: [RFC] scripts: Include postprocessing script for memory allocation tracing
Date: Tue, 13 Sep 2016 14:04:49 -0400 [thread overview]
Message-ID: <0ACE5927-A6E5-4B49-891D-F990527A9F50@gmail.com> (raw)
In-Reply-To: <20160912121635.GL14524@dhcp22.suse.cz>
> On Sep 12, 2016, at 8:16 AM, Michal Hocko <mhocko@kernel.org> wrote:
>
> Hi,
Hello Michal,
> I am sorry I didn't follow up on the previous submission.
That’s alright :)
> I find this
> _really_ helpful. It is great that you could build on top of existing
> tracepoints but one thing is not entirely clear to me. Without a begin
> marker in __alloc_pages_nodemask we cannot really tell how long the
> whole allocation took, which would be extremely useful. Or do you use
> any graph tracer tricks to deduce that?
I’m using the function graph tracer to see how long __alloc_pages_nodemask()
took.
> There is a note in your
> changelog but I cannot seem to find that in the changelog. And FWIW I
> would be open to adding a tracepoint like that. It would make our life
> so much easier…
The line
echo __alloc_pages_nodemask > set_ftrace_filter in setup_alloc_trace.sh
sets __alloc_pages_nodemask as a function graph filter and this should help
us observe how long the function took.
>
> On Sun 11-09-16 18:24:12, Janani Ravichandran wrote:
> [...]
>> allocation_postprocess.py is a script which reads from trace_pipe. It
>> does the following to filter out info from tracepoints that may not
>> be important:
>>
>> 1. Displays mm_vmscan_direct_reclaim_begin and
>> mm_vmscan_direct_reclaim_end only when try_to_free_pages has
>> exceeded the threshold.
>> 2. Displays mm_compaction_begin and mm_compaction_end only when
>> compact_zone has exceeded the threshold.
>> 3. Displays mm_compaction_try_to_compat_pages only when
>> try_to_compact_pages has exceeded the threshold.
>> 4. Displays mm_shrink_slab_start and mm_shrink_slab_end only when
>> the time elapsed between them exceeds the threshold.
>> 5. Displays mm_vmscan_lru_shrink_inactive only when shrink_inactive_list
>> has exceeded the threshold.
>>
>> When CTRL+C is pressed, the script shows the times taken by the
>> shrinkers. However, currently it is not possible to differentiate among
>> the
>> superblock shrinkers.
>>
>> Sample output:
>> ^Ci915_gem_shrinker_scan : total time = 8.731000 ms, max latency =
>> 0.278000 ms
>> ext4_es_scan : total time = 0.970000 ms, max latency = 0.129000 ms
>> scan_shadow_nodes : total time = 1.150000 ms, max latency = 0.175000 ms
>> super_cache_scan : total time = 8.455000 ms, max latency = 0.466000 ms
>> deferred_split_scan : total time = 25.767000 ms, max latency = 25.485000
>> ms
>
> Would it be possible to group those per the context?
Absolutely!
> I mean a single
> allocation/per-process drop down values rather than mixing all those
> values together? For example if I see that a process is talling due to
> direct reclaim I would love to see what is the worst case allocation
> stall and what is the most probable source of that stall. Mixing kswapd
> traces would be misleading here.
>
True. I’ll do that and send a v2. Thanks for the suggestions!
Janani
>
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2016-09-13 18:04 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-11 22:24 Janani Ravichandran
2016-09-12 12:16 ` Michal Hocko
2016-09-13 18:04 ` Janani Ravichandran [this message]
2016-09-19 9:42 ` Michal Hocko
2016-09-22 15:30 ` Janani Ravichandran
2016-09-23 8:07 ` Michal Hocko
2016-10-06 12:00 ` Michal Hocko
2016-10-11 14:43 ` Janani Ravichandran
2016-10-15 23:31 ` Janani Ravichandran
2016-10-16 7:33 ` Michal Hocko
[not found] ` <CANnt6X=RpSnuxGXZfF6Qa5mJpzC8gL3wkKJi3tQMZJBZJVWF3w@mail.gmail.com>
2016-10-17 17:31 ` Janani Ravichandran
2016-10-18 13:13 ` Michal Hocko
2016-10-20 23:10 ` Janani Ravichandran
2016-10-21 7:08 ` Michal Hocko
2016-10-27 15:42 ` Janani Ravichandran
-- strict thread matches above, loose matches on Subject: below --
2016-08-19 11:38 Janani Ravichandran
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=0ACE5927-A6E5-4B49-891D-F990527A9F50@gmail.com \
--to=janani.rvchndrn@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@techsingularity.net \
--cc=mhocko@kernel.org \
--cc=riel@surriel.com \
--cc=rostedt@goodmis.org \
--cc=vbabka@suse.cz \
--cc=vdavydov@virtuozzo.com \
/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