From: Will Deacon <will@kernel.org>
To: sunliming <sunliming@kylinos.cn>
Cc: catalin.marinas@arm.com, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] arm64,trace: Add page fault traceponits
Date: Fri, 6 May 2022 14:17:33 +0100 [thread overview]
Message-ID: <20220506131733.GE22892@willie-the-truck> (raw)
In-Reply-To: <20220420070109.1010257-1-sunliming@kylinos.cn>
On Wed, Apr 20, 2022 at 03:01:09PM +0800, sunliming wrote:
> The arm64 architecture lacks some tracepoints support, this patch
> adds page fault tracepoints. The code and arch policy is mainly
> inherited from x86.
>
> Experimented on my centos8 virtual machine:
> dracut:/# echo 1 > /sys/kernel/tracing/events/exceptions/enable
> dracut:/# cat /sys/kernel/tracing/trace
>
> The results:
> sh-6098 [001] ..... 1186.024675: page_fault_user: addr=0xffffe153cc00 pc=0xffffa4117338 esr=0xffffe153cc00
> cat-6126 [000] ..... 1186.024677: page_fault_kernel: addr=0xffffa4323740 pc=schedule_tail esr=0xffffa4323740
> sh-6098 [001] ..... 1186.026085: page_fault_user: addr=0xaaaad23fae34 pc=0xaaaad231c0fc esr=0xaaaad23fae34
> cat-6126 [000] ..... 1186.026106: page_fault_user: addr=0xffffa414565c pc=0xffffa414565c esr=0xffffa414565c
> cat-6126 [000] ..... 1186.026222: page_fault_user: addr=0xffffa4214e10 pc=0xffffa4145670 esr=0xffffa4214e10
> cat-6126 [000] ..... 1186.026243: page_fault_user: addr=0xffffa420fd88 pc=0xffffa41456ac esr=0xffffa420fd88
> cat-6126 [000] ..... 1186.026282: page_fault_user: addr=0xffffa4117338 pc=0xffffa4117338 esr=0xffffa4117338
> cat-6126 [000] ..... 1186.026308: page_fault_user: addr=0xffffe153cc00 pc=0xffffa4117338 esr=0xffffe153cc00
> cat-6126 [000] ..... 1186.026365: page_fault_user: addr=0xaaaad231bd84 pc=0xaaaad231bd84 esr=0xaaaad231bd84
> sh-6098 [001] ..... 1186.026372: page_fault_user: addr=0xaaab04330098 pc=0xffffa411be68 esr=0xaaab04330098
> cat-6126 [000] ..... 1186.026394: page_fault_user: addr=0xaaaad22ef420 pc=0xaaaad22ef420 esr=0xaaaad22ef420
> cat-6126 [000] ..... 1186.026414: page_fault_user: addr=0xaaaad23ee9b0 pc=0xaaaad22ef424 esr=0xaaaad23ee9b0
> cat-6126 [000] ..... 1186.026426: page_fault_user: addr=0xffffa40c3110 pc=0xffffa40c3110 esr=0xffffa40c3110
> cat-6126 [000] ..... 1186.026450: page_fault_user: addr=0xaaaad22f23f8 pc=0xaaaad22f23f8 esr=0xaaaad22f23f8
> cat-6126 [000] ..... 1186.026467: page_fault_user: addr=0xaaaad23f0030 pc=0xaaaad22f240c esr=0xaaaad23f0030
> cat-6126 [000] ..... 1186.026481: page_fault_user: addr=0xaaaad23fae3c pc=0xaaaad231be40 esr=0xaaaad23fae3c
> cat-6126 [000] ..... 1186.026530: page_fault_user: addr=0xffffa40d63d8 pc=0xffffa40d63d8 esr=0xffffa40d63d8
> cat-6126 [000] ..... 1186.026554: page_fault_user: addr=0xffffa431f650 pc=0xffffa40d63f8 esr=0xffffa431f650
> sh-6098 [001] ..... 1186.026556: page_fault_user: addr=0xaaab04358d28 pc=0xffffa411be70 esr=0xaaab04358d28
> cat-6126 [000] ..... 1186.026571: page_fault_user: addr=0xaaaad24015d0 pc=0xffffa40d640c esr=0xaaaad24015d0
> cat-6126 [000] ..... 1186.026600: page_fault_user: addr=0xaaaad2332be8 pc=0xaaaad2332be8 esr=0xaaaad2332be8
> cat-6126 [000] ..... 1186.026703: page_fault_user: addr=0xffffa416c438 pc=0xffffa416c438 esr=0xffffa416c438
> sh-6098 [001] ..... 1186.026749: page_fault_user: addr=0xaaab04369d70 pc=0xffffa41193d8 esr=0xaaab04369d70
> cat-6126 [000] ..... 1186.027610: page_fault_user: addr=0xaaaad2307754 pc=0xaaaad2307754 esr=0xaaaad2307754
> cat-6126 [000] ..... 1186.027711: page_fault_user: addr=0xaaaad24014c4 pc=0xaaaad23310e4 esr=0xaaaad24014c4
> cat-6126 [000] ..... 1186.027892: page_fault_user: addr=0xaaab04359a80 pc=0xaaaad23052f0 esr=0xaaab04359a80
> cat-6126 [000] ..... 1186.027916: page_fault_user: addr=0xaaaad236cf80 pc=0xaaaad236cf80 esr=0xaaaad236cf80
>
> Signed-off-by: sunliming <sunliming@kylinos.cn>
> ---
> arch/arm64/include/asm/trace/common.h | 12 +++++
> arch/arm64/include/asm/trace/exceptions.h | 54 +++++++++++++++++++++++
> arch/arm64/kernel/Makefile | 1 +
> arch/arm64/kernel/tracepoint.c | 24 ++++++++++
> arch/arm64/mm/Makefile | 3 ++
> arch/arm64/mm/fault.c | 19 ++++++++
We already report page faults via perf (see the calls to perf_sw_event()),
so why isn't that sufficient?
Will
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
prev parent reply other threads:[~2022-05-06 13:18 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-20 7:01 [PATCH] arm64,trace: Add page fault traceponits sunliming
2022-05-06 13:17 ` Will Deacon [this message]
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=20220506131733.GE22892@willie-the-truck \
--to=will@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=sunliming@kylinos.cn \
/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