linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Ingo Molnar <mingo@redhat.com>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH] tracing: uninline trace_trigger_soft_disabled()
Date: Thu, 10 Feb 2022 09:26:17 -0500	[thread overview]
Message-ID: <20220210092617.2bb40912@gandalf.local.home> (raw)
In-Reply-To: <38191e96ec6d331662ee7278e26edb79cdf95402.1644482771.git.christophe.leroy@csgroup.eu>

On Thu, 10 Feb 2022 09:47:52 +0100
Christophe Leroy <christophe.leroy@csgroup.eu> wrote:

> On a ppc32 build with CONFIG_CC_OPTIMISE_FOR_SIZE,
> trace_trigger_soft_disabled() appears more than 50 times in vmlinux.
> 
> That function is rather big for an inlined function, and
> it doesn't benefit much from inlining as its only parameter
> is a pointer to a struct in memory:

The number of parameters is not the reason for it being inlined. It's in a
*very* hot path, and a function call causes a noticeable performance hit.


> 
> 	c003df60 <trace_trigger_soft_disabled>:
> 	c003df60:	94 21 ff f0 	stwu    r1,-16(r1)
> 	c003df64:	7c 08 02 a6 	mflr    r0
> 	c003df68:	90 01 00 14 	stw     r0,20(r1)
> 	c003df6c:	bf c1 00 08 	stmw    r30,8(r1)
> 	c003df70:	83 e3 00 24 	lwz     r31,36(r3)
> 	c003df74:	73 e9 01 00 	andi.   r9,r31,256
> 	c003df78:	41 82 00 10 	beq     c003df88 <trace_trigger_soft_disabled+0x28>
> 	c003df7c:	38 60 00 00 	li      r3,0
> 	c003df80:	39 61 00 10 	addi    r11,r1,16
> 	c003df84:	4b fd 60 ac 	b       c0014030 <_rest32gpr_30_x>
> 	c003df88:	73 e9 00 80 	andi.   r9,r31,128
> 	c003df8c:	7c 7e 1b 78 	mr      r30,r3
> 	c003df90:	41 a2 00 14 	beq     c003dfa4 <trace_trigger_soft_disabled+0x44>
> 	c003df94:	38 c0 00 00 	li      r6,0
> 	c003df98:	38 a0 00 00 	li      r5,0
> 	c003df9c:	38 80 00 00 	li      r4,0
> 	c003dfa0:	48 05 c5 f1 	bl      c009a590 <event_triggers_call>
> 	c003dfa4:	73 e9 00 40 	andi.   r9,r31,64
> 	c003dfa8:	40 82 00 28 	bne     c003dfd0 <trace_trigger_soft_disabled+0x70>
> 	c003dfac:	73 ff 02 00 	andi.   r31,r31,512
> 	c003dfb0:	41 82 ff cc 	beq     c003df7c <trace_trigger_soft_disabled+0x1c>
> 	c003dfb4:	80 01 00 14 	lwz     r0,20(r1)
> 	c003dfb8:	83 e1 00 0c 	lwz     r31,12(r1)
> 	c003dfbc:	7f c3 f3 78 	mr      r3,r30
> 	c003dfc0:	83 c1 00 08 	lwz     r30,8(r1)
> 	c003dfc4:	7c 08 03 a6 	mtlr    r0
> 	c003dfc8:	38 21 00 10 	addi    r1,r1,16
> 	c003dfcc:	48 05 6f 6c 	b       c0094f38 <trace_event_ignore_this_pid>
> 	c003dfd0:	38 60 00 01 	li      r3,1
> 	c003dfd4:	4b ff ff ac 	b       c003df80 <trace_trigger_soft_disabled+0x20>
> 
> It doesn't benefit much from inlining as its only parameter is a
> pointer to a struct in memory so no constant folding is involved.
> 
> Uninline it and move it into kernel/trace/trace_events_trigger.c
> 
> It reduces the size of vmlinux by approximately 10 kbytes.

If you have an issue with the size, perhaps the function can be modified to
condense it. I'm happy to have a size reduction, but I will NACK making it
into a function call.

-- Steve


  reply	other threads:[~2022-02-10 14:26 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-10  8:47 Christophe Leroy
2022-02-10 14:26 ` Steven Rostedt [this message]
2022-02-10 15:05   ` Christophe Leroy
2022-02-10 16:54     ` Steven Rostedt

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=20220210092617.2bb40912@gandalf.local.home \
    --to=rostedt@goodmis.org \
    --cc=christophe.leroy@csgroup.eu \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mingo@redhat.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