From: Eric Dumazet <edumazet@google.com>
To: Yajun Deng <yajun.deng@linux.dev>
Cc: rostedt@goodmis.org, mhiramat@kernel.org, dennis@kernel.org,
tj@kernel.org, cl@linux.com, mark.rutland@arm.com,
davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
Alexander Lobakin <aleksander.lobakin@intel.com>,
linux-trace-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH net-next v7] net/core: Introduce netdev_core_stats_inc()
Date: Mon, 9 Oct 2023 10:20:25 +0200 [thread overview]
Message-ID: <CANn89i+r-pQGpen1mUhybmj+6ybhxSsuoaB07NFzOWyHUMFDNw@mail.gmail.com> (raw)
In-Reply-To: <508b33f7-3dc0-4536-21f6-4a5e7ade2b5c@linux.dev>
On Mon, Oct 9, 2023 at 10:14 AM Yajun Deng <yajun.deng@linux.dev> wrote:
>
>
> On 2023/10/9 15:53, Eric Dumazet wrote:
> > On Mon, Oct 9, 2023 at 5:07 AM Yajun Deng <yajun.deng@linux.dev> wrote:
> >
> >> 'this_cpu_read + this_cpu_write' and 'pr_info + this_cpu_inc' will make
> >> the trace work well.
> >>
> >> They all have 'pop' instructions in them. This may be the key to making
> >> the trace work well.
> >>
> >> Hi all,
> >>
> >> I need your help on percpu and ftrace.
> >>
> > I do not think you made sure netdev_core_stats_inc() was never inlined.
> >
> > Adding more code in it is simply changing how the compiler decides to
> > inline or not.
>
>
> Yes, you are right. It needs to add the 'noinline' prefix. The
> disassembly code will have 'pop'
>
> instruction.
>
The function was fine, you do not need anything like push or pop.
The only needed stuff was the call __fentry__.
The fact that the function was inlined for some invocations was the
issue, because the trace point
is only planted in the out of line function.
next prev parent reply other threads:[~2023-10-09 8:20 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20231007050621.1706331-1-yajun.deng@linux.dev>
[not found] ` <CANn89iL-zUw1FqjYRSC7BGB0hfQ5uKpJzUba3YFd--c=GdOoGg@mail.gmail.com>
[not found] ` <917708b5-cb86-f233-e878-9233c4e6c707@linux.dev>
[not found] ` <CANn89i+navyRe8-AV=ehM3qFce2hmnOEKBqvK5Xnev7KTaS5Lg@mail.gmail.com>
[not found] ` <a53a3ff6-8c66-07c4-0163-e582d88843dd@linux.dev>
[not found] ` <CANn89i+u5dXdYm_0_LwhXg5Nw+gHXx+nPUmbYhvT=k9P4+9JRQ@mail.gmail.com>
[not found] ` <9f4fb613-d63f-9b86-fe92-11bf4dfb7275@linux.dev>
[not found] ` <CANn89iK7bvQtGD=p+fHaWiiaNn=u8vWrt0YQ26pGQY=kZTdfJw@mail.gmail.com>
[not found] ` <4a747fda-2bb9-4231-66d6-31306184eec2@linux.dev>
2023-10-09 3:07 ` Yajun Deng
2023-10-09 7:53 ` Eric Dumazet
2023-10-09 8:13 ` Yajun Deng
2023-10-09 8:20 ` Eric Dumazet [this message]
2023-10-09 8:36 ` Yajun Deng
2023-10-09 9:30 ` Eric Dumazet
2023-10-09 9:43 ` Yajun Deng
2023-10-09 10:16 ` Eric Dumazet
2023-10-09 10:58 ` Yajun Deng
2023-10-09 14:28 ` Steven Rostedt
2023-10-10 3:46 ` Yajun Deng
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=CANn89i+r-pQGpen1mUhybmj+6ybhxSsuoaB07NFzOWyHUMFDNw@mail.gmail.com \
--to=edumazet@google.com \
--cc=aleksander.lobakin@intel.com \
--cc=cl@linux.com \
--cc=davem@davemloft.net \
--cc=dennis@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mhiramat@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=rostedt@goodmis.org \
--cc=tj@kernel.org \
--cc=yajun.deng@linux.dev \
/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