From: Vlad Zolotarov <vlad@scalemp.com>
To: Ingo Molnar <mingo@kernel.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>,
Thomas Gleixner <tglx@linutronix.de>,
linux-kernel <linux-kernel@vger.kernel.org>,
Shai@scalemp.com, ido@wizery.com
Subject: Re: [PATCH v4 0/2] Move x86_cpu_to_apicid to the __read_mostly section
Date: Wed, 23 May 2012 12:16:29 +0300 [thread overview]
Message-ID: <1415723.ntIHEoaamI@vlad> (raw)
In-Reply-To: <5555210.ryZGheQWJb@vlad>
On Tuesday, May 22, 2012 18:55:41 Vlad Zolotarov wrote:
> > > I have no fundamental prefer to either approach, but the
> > > direction taken should be justified explicitly, with numbers,
> > > arguments, etc. - also a short blurb somewhere in the headers
> > > that explains when they should be used, so that others can be
> > > aware of vSMP's special needs here.
> >
> > I.e. *numbers* are needed: roughly how many percpu variables in
> > a defconfig of one type versus the other type. This settles the
> > question whether we want to identify read-mostly or
> > write-frequently variables, to address this particular problem
> > ...
>
Ingo, here is the proposal to the patch (series) description:
------------------------------------------------------------------------------------------------
Added "read-mostly" qualifier to the following variables in smp.h:
- cpu_sibling_map
- cpu_core_map
- cpu_llc_shared_map
- cpu_llc_id
- cpu_number
- x86_cpu_to_apicid
- x86_bios_cpu_apicid
- x86_cpu_to_logical_apicid
As long as all the variables above are only written during the initialization,
this change is meant to prevent the false sharing. More specifically, on vSMP
Foundation platform x86_cpu_to_apicid shared the same internode_cache_line
with frequently written lapic_events.
>From the analysis of the first 33 per_cpu variables out of 219 (memories they
describe, to be more specific) the 8 have read_mostly nature
(tlb_vector_offset, cpu_loops_per_jiffy, xen_debug_irq, etc.) and 25 are
frequently written (irq_stack_union, gdt_page, exception_stacks, idt_desc,
etc.). Assuming that the spread of the rest of the per_cpu variables is
similar, identifying the read mostly memories will make more sense in terms of
long-term code maintenance comparing to identifying frequently written
memories.
---------------------------------------------------------------------------------------------------
Pls., tell me if the above looks satisfactory to u in light of all your
previous remarks.
If yes - I'll respin the series with the description above.
thanks,
vlad
next prev parent reply other threads:[~2012-05-23 9:16 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-21 15:02 [PATCH v4 0/2] Move x86_cpu_to_apicid to the __read_mostly section Vlad Zolotarov
2012-05-21 15:23 ` Ingo Molnar
2012-05-21 15:42 ` Vlad Zolotarov
2012-05-21 20:19 ` Ingo Molnar
2012-05-22 15:55 ` Vlad Zolotarov
2012-05-22 15:59 ` Vlad Zolotarov
2012-05-23 9:16 ` Vlad Zolotarov [this message]
2012-06-07 8:18 ` Vlad Zolotarov
2012-06-11 9:00 ` Ingo Molnar
2012-06-11 9:08 ` Vlad Zolotarov
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=1415723.ntIHEoaamI@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=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.