From: David Daney <ddaney@caviumnetworks.com>
To: Andrew Morton <akpm@linux-foundation.org>,
<linux-kernel@vger.kernel.org>
Cc: David Daney <david.daney@cavium.com>
Subject: Re: [PATCH 3/3] smp.h: Move !SMP version of on_each_cpu() out-of-line
Date: Fri, 2 Aug 2013 15:24:47 -0700 [thread overview]
Message-ID: <51FC31AF.1070802@caviumnetworks.com> (raw)
In-Reply-To: <1375477776-13302-4-git-send-email-ddaney.cavm@gmail.com>
On 08/02/2013 02:09 PM, David Daney wrote:
> From: David Daney <david.daney@cavium.com>
>
> All of the other non-trivial !SMP versions of functions in smp.h are
> out-of-line in up.c. Move on_each_cpu() there as well.
>
> This allows us to get rid of the #include <linux/irqflags.h>. The
> drawback is that this makes both the x86_64 and i386 defconfig !SMP
> kernels about 200 bytes larger each.
I looked at the cause of the size difference and there are several main
parts to it.
1) kallsym data (28 bytes).
2) with the patch generating a function pointer to pass to on_each_cpu
vs. direct call (7 bytes * 22 call sites) and generating the the ignored
third parameter (5 bytes * 22 call sites); without the patch
local_irq_save/local_irq_restore(5 bytes * 22 call sites) for a total
of 7 * 22 == 154 bytes.
3) Other (21 bytes).
>
> Signed-off-by: David Daney <david.daney@cavium.com> ---
> include/linux/smp.h | 21 +++++---------------- kernel/up.c |
> 11 +++++++++++ 2 files changed, 16 insertions(+), 16 deletions(-)
>
prev parent reply other threads:[~2013-08-02 22:27 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-02 21:09 [PATCH 0/3] smp.h: !SMP cleanups David Daney
2013-08-02 21:09 ` [PATCH 1/3] smp: Quit unconditionally enabling irq in on_each_cpu_mask and on_each_cpu_cond David Daney
2013-08-02 21:09 ` [PATCH 2/3] up.c: Use local_irq_{save,restore}() in smp_call_function_single David Daney
2013-08-02 21:09 ` [PATCH 3/3] smp.h: Move !SMP version of on_each_cpu() out-of-line David Daney
2013-08-02 22:24 ` David Daney [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=51FC31AF.1070802@caviumnetworks.com \
--to=ddaney@caviumnetworks.com \
--cc=akpm@linux-foundation.org \
--cc=david.daney@cavium.com \
--cc=linux-kernel@vger.kernel.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.