All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vlad Zolotarov <vlad@scalemp.com>
To: Ingo Molnar <mingo@kernel.org>
Cc: "Shai Fultheim (Shai@ScaleMP.com)" <Shai@scalemp.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
	Ido Yariv <ido@wizery.com>
Subject: Re: [PATCH v3 0/2] Move x86_cpu_to_apicid to the __read_mostly section
Date: Mon, 21 May 2012 16:54:25 +0300	[thread overview]
Message-ID: <1693911.sUneyHzERA@vlad> (raw)
In-Reply-To: <20120521123246.GB17065@gmail.com>

On Monday, May 21, 2012 02:32:46 PM Ingo Molnar wrote:
> * Shai Fultheim (Shai@ScaleMP.com) <Shai@ScaleMP.com> wrote:
> > Ingo,
> > 
> > The reason for this, as you pointed out, is the 'cache line'
> > size (4096 bytes).  We see significant false sharing is we do
> > not move this next to each other.
> 
> Which write-often variable caused the many cache flushes/fills?
> cpu_to_apicid is read mostly.
> 
> I.e. it might make more sense to identify the frequenty
> *modified* percpu variables, and move them to a separate
> section. I *think* most percpu variables are read mostly, so it
> would be more maintainable in the long run to figure out the
> frequently modified ones, not the frequently not modified ones.

I tend to disagree about the general claim that most per-CPU variables are 
read-mostly: consider the per-CPU data structures used in lock-less algorithms 
like softnet_data used in a NAPI. I'm not sure what is a more common - read-
only or not-read-only per-cpu data, but surely there are both...

In this specific patch we deal with something that is initialized once in the 
init time and then used as if it's a constant thus representing a clear 
"__read_mostly" case. 

Having said all that I think that the proposed solution, the one using 
__read_mostly infrastructure, is just ok both in a long run. I also doubt that 
we are currently facing a need to define an additional "frequently modified" 
section.

Pls., comment.

thanks,
vlad

> 
> Thanks,
> 
> 	Ingo

  reply	other threads:[~2012-05-21 13:54 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-20 15:19 [PATCH v3 0/2] Move x86_cpu_to_apicid to the __read_mostly section Vlad Zolotarov
2012-05-21  9:06 ` Ingo Molnar
2012-05-21 10:14   ` Shai Fultheim (Shai@ScaleMP.com)
2012-05-21 12:32     ` Ingo Molnar
2012-05-21 13:54       ` Vlad Zolotarov [this message]
2012-05-21 14:08         ` Ingo Molnar
2012-05-21 14:56           ` Vlad Zolotarov
2012-05-21 15:21             ` Ingo Molnar

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=1693911.sUneyHzERA@vlad \
    --to=vlad@scalemp.com \
    --cc=Shai@scalemp.com \
    --cc=hpa@zytor.com \
    --cc=ido@wizery.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=mingo@redhat.com \
    --cc=tglx@linutronix.de \
    /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.