From: Nick Desaulniers <ndesaulniers@google.com>
To: Bill Wendling <morbo@google.com>
Cc: Jonathan Corbet <corbet@lwn.net>,
Masahiro Yamada <masahiroy@kernel.org>,
Linux Doc Mailing List <linux-doc@vger.kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
Linux Kbuild mailing list <linux-kbuild@vger.kernel.org>,
clang-built-linux <clang-built-linux@googlegroups.com>,
Andrew Morton <akpm@linux-foundation.org>,
Sami Tolvanen <samitolvanen@google.com>,
Nathan Chancellor <natechancellor@gmail.com>,
Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [PATCH v4] pgo: add clang's Profile Guided Optimization infrastructure
Date: Fri, 15 Jan 2021 16:01:51 -0800 [thread overview]
Message-ID: <CAKwvOd=rEngs-8DR6pagynYc5-=a06brTOOx5TT1TC+v7-3m2Q@mail.gmail.com> (raw)
In-Reply-To: <CAKwvOd=0wWz4o652EoZNvfu1L+fuhuGZusqpxiJ+561DtCh7Eg@mail.gmail.com>
On Wed, Jan 13, 2021 at 8:07 PM Nick Desaulniers
<ndesaulniers@google.com> wrote:
>
> On Wed, Jan 13, 2021 at 12:55 PM Nathan Chancellor
> <natechancellor@gmail.com> wrote:
> >
> > However, I see an issue with actually using the data:
> >
> > $ sudo -s
> > # mount -t debugfs none /sys/kernel/debug
> > # cp -a /sys/kernel/debug/pgo/profraw vmlinux.profraw
> > # chown nathan:nathan vmlinux.profraw
> > # exit
> > $ tc-build/build/llvm/stage1/bin/llvm-profdata merge --output=vmlinux.profdata vmlinux.profraw
> > warning: vmlinux.profraw: Invalid instrumentation profile data (bad magic)
> > error: No profiles could be merged.
> >
> > Am I holding it wrong? :) Note, this is virtualized, I do not have any
> > "real" x86 hardware that I can afford to test on right now.
>
> Same.
>
> I think the magic calculation in this patch may differ from upstream
> llvm: https://github.com/llvm/llvm-project/blob/49142991a685bd427d7e877c29c77371dfb7634c/llvm/include/llvm/ProfileData/SampleProf.h#L96-L101
Err...it looks like it was the padding calculation. With that fixed
up, we can query the profile data to get insights on the most heavily
called functions. Here's what my top 20 are (reset, then watch 10
minutes worth of cat videos on youtube while running `find /` and
sleeping at my desk). Anything curious stand out to anyone?
$ llvm-profdata show -topn=20 /tmp/vmlinux.profraw
Instrumentation level: IR entry_first = 0
Total functions: 48970
Maximum function count: 62070879
Maximum internal block count: 83221158
Top 20 functions with the largest internal block counts:
drivers/tty/n_tty.c:n_tty_write, max count = 83221158
rcu_read_unlock_strict, max count = 62070879
_cond_resched, max count = 25486882
rcu_all_qs, max count = 25451477
drivers/cpuidle/poll_state.c:poll_idle, max count = 23618576
_raw_spin_unlock_irqrestore, max count = 18874121
drivers/cpuidle/governors/menu.c:menu_select, max count = 18721624
_raw_spin_lock_irqsave, max count = 18509161
memchr, max count = 15525452
_raw_spin_lock, max count = 15484254
__mod_memcg_state, max count = 14604619
__mod_memcg_lruvec_state, max count = 14602783
fs/ext4/hash.c:str2hashbuf_signed, max count = 14098424
__mod_lruvec_state, max count = 12527154
__mod_node_page_state, max count = 12525172
native_sched_clock, max count = 8904692
sched_clock_cpu, max count = 8895832
sched_clock, max count = 8894627
kernel/entry/common.c:exit_to_user_mode_prepare, max count = 8289031
fpregs_assert_state_consistent, max count = 8287198
--
Thanks,
~Nick Desaulniers
next prev parent reply other threads:[~2021-01-16 0:03 UTC|newest]
Thread overview: 123+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-11 8:18 [PATCH] pgo: add clang's Profile Guided Optimization infrastructure Bill Wendling
2021-01-11 8:39 ` Sedat Dilek
2021-01-11 8:42 ` Sedat Dilek
2021-01-11 9:17 ` Bill Wendling
2021-01-11 9:57 ` Sedat Dilek
2021-01-11 18:28 ` Nathan Chancellor
2021-01-11 20:12 ` Fangrui Song
2021-01-11 20:23 ` Bill Wendling
2021-01-11 20:31 ` Fangrui Song
2021-01-12 0:37 ` Bill Wendling
2021-01-12 0:44 ` Fāng-ruì Sòng
2021-01-11 21:04 ` Nathan Chancellor
2021-01-11 21:17 ` Nick Desaulniers
2021-01-11 21:32 ` Bill Wendling
2021-01-12 5:14 ` [PATCH v2] " Bill Wendling
2021-01-12 5:17 ` Sedat Dilek
2021-01-12 5:31 ` [PATCH v3] " Bill Wendling
2021-01-12 9:10 ` kernel test robot
2021-01-12 9:10 ` kernel test robot
2021-01-12 17:22 ` Nathan Chancellor
2021-01-13 6:19 ` [PATCH v4] " Bill Wendling
2021-01-13 20:55 ` Nathan Chancellor
2021-01-13 21:59 ` Bill Wendling
2021-01-14 4:07 ` Nick Desaulniers
2021-01-16 0:01 ` Nick Desaulniers [this message]
2021-01-16 0:13 ` Nick Desaulniers
2021-01-16 4:30 ` Sedat Dilek
2021-01-16 5:07 ` Sedat Dilek
2021-01-16 5:18 ` Sedat Dilek
2021-01-18 0:57 ` Sedat Dilek
2021-01-13 23:01 ` Nick Desaulniers
2021-01-16 9:43 ` [PATCH v5] " Bill Wendling
2021-01-16 17:38 ` Sedat Dilek
2021-01-16 18:36 ` Sedat Dilek
2021-01-16 20:23 ` Bill Wendling
2021-01-17 10:44 ` Sedat Dilek
2021-01-17 10:53 ` Sedat Dilek
2021-01-17 11:23 ` Sedat Dilek
2021-01-17 11:42 ` Sedat Dilek
2021-01-17 11:58 ` Sedat Dilek
2021-01-17 12:05 ` Sedat Dilek
2021-01-17 17:42 ` Sedat Dilek
2021-01-17 20:34 ` Bill Wendling
2021-01-17 23:33 ` Sedat Dilek
2021-01-18 0:26 ` Sedat Dilek
2021-01-18 2:32 ` Bill Wendling
2021-01-18 12:39 ` Sedat Dilek
2021-01-18 17:26 ` Sedat Dilek
2021-01-18 21:56 ` Bill Wendling
2021-01-18 23:29 ` Sedat Dilek
2021-01-21 2:03 ` Sedat Dilek
2021-01-21 22:44 ` Sedat Dilek
2021-01-22 1:42 ` Nick Desaulniers
2021-01-22 1:49 ` Sedat Dilek
2021-01-22 1:52 ` Nick Desaulniers
2021-01-22 1:54 ` Sedat Dilek
2021-01-20 1:02 ` Nick Desaulniers
2021-01-21 0:51 ` Nick Desaulniers
2021-01-21 8:24 ` Bill Wendling
2021-01-21 8:24 ` [PATCH v6] " Bill Wendling
2021-01-21 10:34 ` Sedat Dilek
2021-01-22 1:44 ` Nick Desaulniers
2021-01-22 1:51 ` Sedat Dilek
2021-01-22 0:14 ` Sedat Dilek
2021-01-22 0:58 ` Sedat Dilek
2021-01-22 1:29 ` Nick Desaulniers
2021-01-22 10:11 ` [PATCH v7] " Bill Wendling
2021-01-22 11:31 ` Sedat Dilek
2021-01-22 18:41 ` Nick Desaulniers
2021-01-28 20:46 ` Sedat Dilek
2021-01-28 21:12 ` Nick Desaulniers
2021-01-28 21:19 ` Sedat Dilek
2021-01-28 21:24 ` Nick Desaulniers
2021-01-28 21:39 ` Sedat Dilek
2021-01-29 7:43 ` Sedat Dilek
2021-01-29 21:48 ` Nick Desaulniers
2021-02-10 23:25 ` Bill Wendling
2021-02-22 21:52 ` Bill Wendling
2021-02-26 22:20 ` [PATCH v8] " Bill Wendling
2021-02-26 22:55 ` Bill Wendling
2021-02-28 18:52 ` Fangrui Song
2021-02-28 21:50 ` Fangrui Song
2021-01-12 17:37 ` [PATCH v2] " Nick Desaulniers
2021-01-12 17:45 ` Fāng-ruì Sòng
2021-01-21 2:21 ` [PATCH] " Sedat Dilek
2021-01-22 1:34 ` Nick Desaulniers
2021-01-22 1:43 ` Sedat Dilek
2021-04-07 21:17 ` [PATCH v9] " Bill Wendling
2021-04-07 21:22 ` Kees Cook
2021-04-07 21:44 ` Fāng-ruì Sòng
2021-04-07 21:47 ` Nathan Chancellor
2021-04-07 21:58 ` Bill Wendling
2021-05-19 21:37 ` Kees Cook
2021-05-22 23:51 ` Bill Wendling
2021-05-31 21:12 ` Nathan Chancellor
2021-06-01 17:31 ` Nick Desaulniers
2021-06-12 16:59 ` Peter Zijlstra
2021-06-12 17:25 ` Bill Wendling
2021-06-12 18:15 ` Peter Zijlstra
2021-06-12 19:10 ` Bill Wendling
2021-06-12 19:28 ` Bill Wendling
2021-06-12 20:25 ` Peter Zijlstra
2021-06-12 20:56 ` Bill Wendling
2021-06-12 22:47 ` Bill Wendling
2021-06-13 18:07 ` Bill Wendling
2021-06-14 9:43 ` Peter Zijlstra
2021-06-14 10:18 ` Peter Zijlstra
2021-06-14 7:51 ` Peter Zijlstra
2021-06-14 9:01 ` Peter Zijlstra
2021-06-14 9:39 ` Bill Wendling
2021-06-14 10:44 ` Peter Zijlstra
2021-06-14 11:41 ` Bill Wendling
2021-06-14 11:43 ` Bill Wendling
2021-06-14 14:16 ` Marco Elver
2021-06-14 15:26 ` Kees Cook
2021-06-14 15:35 ` Peter Zijlstra
2021-06-14 16:22 ` Kees Cook
2021-06-14 18:07 ` Nick Desaulniers
2021-06-14 20:49 ` Nick Desaulniers
2021-06-14 15:46 ` Peter Zijlstra
2021-06-14 16:03 ` Nick Desaulniers
2021-06-12 20:20 ` Fangrui Song
2021-06-12 20:31 ` Peter Zijlstra
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='CAKwvOd=rEngs-8DR6pagynYc5-=a06brTOOx5TT1TC+v7-3m2Q@mail.gmail.com' \
--to=ndesaulniers@google.com \
--cc=akpm@linux-foundation.org \
--cc=clang-built-linux@googlegroups.com \
--cc=corbet@lwn.net \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=masahiroy@kernel.org \
--cc=morbo@google.com \
--cc=natechancellor@gmail.com \
--cc=samitolvanen@google.com \
--cc=torvalds@linux-foundation.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.