From: Eric Dumazet <dada1@cosmosbay.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Dipankar Sarma <dipankar@in.ibm.com>,
Linux kernel <linux-kernel@vger.kernel.org>
Subject: [PATCH] RCU : move three variables to __read_mostly to save space
Date: Tue, 11 Dec 2007 05:50:46 +0100 [thread overview]
Message-ID: <475E1726.1040908@cosmosbay.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 652 bytes --]
I noticed this vmlinux layout on i686 (where CONFIG_X86_L1_CACHE_SHIFT = 7) :
c06cdab4 d pid_caches_lh
c06cdb00 d qlowmark
c06cdb04 d qhimark
c06cdb08 d blimit
c06cdb80 d rcu_ctrlblk
c06cdc80 d rcu_bh_ctrlblk
This means that qlowmark, qhimark and blimit use a whole 128 bytes cache line.
Linker is not smart enough for us.
Moving these three variables to read_mostly section saves 116 (128-12) bytes.
# size vmlinux vmlinux.before_patch
text data bss dec hex filename
6343966 490818 630784 7465568 71ea60 vmlinux
6343966 490930 630784 7465680 71ead0 vmlinux.before_patch
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
[-- Attachment #2: rcu.patch --]
[-- Type: text/plain, Size: 610 bytes --]
diff --git a/kernel/rcupdate.c b/kernel/rcupdate.c
index a66d4d1..11c815c 100644
--- a/kernel/rcupdate.c
+++ b/kernel/rcupdate.c
@@ -75,9 +75,9 @@ DEFINE_PER_CPU(struct rcu_data, rcu_bh_data) = { 0L };
/* Fake initialization required by compiler */
static DEFINE_PER_CPU(struct tasklet_struct, rcu_tasklet) = {NULL};
-static int blimit = 10;
-static int qhimark = 10000;
-static int qlowmark = 100;
+static int blimit __read_mostly = 10;
+static int qhimark __read_mostly = 10000;
+static int qlowmark __read_mostly = 100;
static atomic_t rcu_barrier_cpu_count;
static DEFINE_MUTEX(rcu_barrier_mutex);
reply other threads:[~2007-12-11 4:51 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=475E1726.1040908@cosmosbay.com \
--to=dada1@cosmosbay.com \
--cc=akpm@linux-foundation.org \
--cc=dipankar@in.ibm.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.