linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andi Kleen <andi@firstfloor.org>
To: Harvey Harrison <harvey.harrison@gmail.com>
Cc: David Miller <davem@davemloft.net>,
	bunk@kernel.org, linux-kernel@vger.kernel.org,
	linux-arch <linux-arch@vger.kernel.org>,
	Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Subject: Re: RFC: remove __read_mostly
Date: Fri, 14 Dec 2007 00:06:02 +0100	[thread overview]
Message-ID: <p733au6gpph.fsf@bingen.suse.de> (raw)
In-Reply-To: <1197585855.898.33.camel@brick> (Harvey Harrison's message of "Thu\, 13 Dec 2007 14\:44\:15 -0800")

Harvey Harrison <harvey.harrison@gmail.com> writes:

> On Thu, 2007-12-13 at 14:32 -0800, David Miller wrote:
>> From: Adrian Bunk <bunk@kernel.org>
>> Date: Thu, 13 Dec 2007 23:20:44 +0100
>> 
>> > My question is:
>> > Is there anywhere in the kernel a case where __read_mostly brings a 
>> > measurable improvement or can it be removed?
>> 
>> Yes, on SMP when read-mostly objects share cache lines
>> with other objects which are frequently written to.
>> 
>> That is the whole reason we created __read_mostly
>
> I'm curious if anyone has been looking into replacing the __read_mostly
> approach with Mathieu's immediate values patchset.  Wouldn't they solve
> the cacheline sharing as well

Yes it would in most cases.  This means the writing case is much
more expensive with them, so if there is anything which is still
relatively frequently written (just not "mostly") it would be 
probably not a good idea. It should be only done for settings
that practically never change.

The other problem is that you have to change all accesses to the new
accessor macros which is potentially a lot. Also you have to add
sync calls for the writing case, which means that sysctl etc. setup
will be more complicated because you need "strategy" functions now.

Also for things that are not that critical the uglification in
the source is likely not worth it.

I would suggest to only do it after looking at oprofile cache miss
profiles.

> (perhaps more eficiently even with trading
> some icache for dcache)?

It should be more efficient because there will be less dcache misses.
icache is typically already prefetched by the CPU. This is especially
useful for the kernel because it often runs cache cold because user
space used all the cache.

-Andi

  reply	other threads:[~2007-12-13 23:06 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-13 22:20 RFC: remove __read_mostly Adrian Bunk
2007-12-13 22:29 ` Andi Kleen
2007-12-13 22:41   ` Adrian Bunk
2007-12-14 16:16     ` Arnd Bergmann
2007-12-14 16:31       ` Eric Dumazet
2007-12-13 22:32 ` David Miller
2007-12-13 22:44   ` Harvey Harrison
2007-12-13 23:06     ` Andi Kleen [this message]
2007-12-13 22:48 ` Eric Dumazet
2007-12-13 23:00   ` Adrian Bunk
2007-12-13 23:54 ` Kyle McMartin
2007-12-14  0:33   ` Andi Kleen
2007-12-17 10:33     ` Andrew Morton
2007-12-17 10:53       ` Eric Dumazet
2007-12-17 11:07         ` Andrew Morton
2007-12-17 12:19           ` Andi Kleen
2007-12-17 12:15       ` Andi Kleen
2007-12-17 12:40         ` Adrian Bunk
2007-12-14 15:24 ` Matt Mackall
2007-12-14 15:38   ` Eric Dumazet
2007-12-14 15:42     ` Matt Mackall

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=p733au6gpph.fsf@bingen.suse.de \
    --to=andi@firstfloor.org \
    --cc=bunk@kernel.org \
    --cc=davem@davemloft.net \
    --cc=harvey.harrison@gmail.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@polymtl.ca \
    /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;
as well as URLs for NNTP newsgroup(s).