[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CALOAHbBQxCvx2pR1VpsarxQF0RNpPFJ8i85CDSEjFXk0F-+K3w@mail.gmail.com>
Date: Thu, 26 Sep 2019 12:37:28 +0800
From: Yafang Shao <laoar.shao@...il.com>
To: Tony Jones <tonyj@...e.de>
Cc: Peter Zijlstra <peterz@...radead.org>, acme@...nel.org,
namhyung@...nel.org, Andrew Morton <akpm@...ux-foundation.org>,
jolsa@...hat.com, mingo@...hat.com, Linux MM <linux-mm@...ck.org>,
Florian Schmidt <florian.schmidt@...anix.com>,
Daniel Jordan <daniel.m.jordan@...cle.com>,
LKML <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 1/2] perf script python: integrate page reclaim analyze script
On Thu, Sep 26, 2019 at 11:36 AM Tony Jones <tonyj@...e.de> wrote:
>
> On 9/25/19 6:56 PM, Tony Jones wrote:
> > On 9/18/19 7:38 AM, Yafang Shao wrote:
> >> A new perf script page-reclaim is introduced in this patch. This new script
> >> is used to report the page reclaim details. The possible usage of this
> >> script is as bellow,
> >> - identify latency spike caused by direct reclaim
> >> - whehter the latency spike is relevant with pageout
> >> - why is page reclaim requested, i.e. whether it is because of memory
> >> fragmentation
> >> - page reclaim efficiency
> >> etc
> >> In the future we may also enhance it to analyze the memcg reclaim.
> >>
> >> Bellow is how to use this script,
> >> # Record, one of the following
> >> $ perf record -e 'vmscan:mm_vmscan_*' ./workload
> >> $ perf script record page-reclaim
> >>
> >> # Report
> >> $ perf script report page-reclaim
> >>
> >> # Report per process latency
> >> $ perf script report page-reclaim -- -p
> >
> >
> > I tested it with global-dhp__pagereclaim-performance from mmtests and got what appears to be reasonable results and the output looks correct and useful. However I'm not a vm expert so I can't comment further. Hopefully someone on linux-mm can give more specific feedback.
> >
> > There is one issue with Python3, see below. I didn't test with Python2.
>
> Ok, I guess this wasn't actually tested with Python3 as itervalues() is Python2 only. Any scripts need to work with both Python2.6+ and Python3.
>
> # perf script -i /tmp/perf.out -s page-reclaim.py -- -p
> ...
>
> Traceback (most recent call last):
> File "page-reclaim.py", line 305, in trace_end
> i.display_proc(),
> File "page-reclaim.py", line 268, in display_proc
> print_proc_latency(sorted(self.stat.stats['latency'].itervalues(),
> AttributeError: 'dict' object has no attribute 'itervalues'
> Fatal Python error: problem in Python trace event handler
>
> Use a try/except to handle this.
>
Hi Tony,
Thanks for your review.
I only verified it with python2.
I will improve it to make it work with both python2.6+ and python3.
Thanks
Yafang
Powered by blists - more mailing lists