Re: [PATCH v4 0/2] Move x86_cpu_to_apicid to the __read_mostlysection

From: Ingo Molnar
Date: Mon May 21 2012 - 16:20:03 EST



* Vlad Zolotarov <vlad@xxxxxxxxxxx> wrote:

> On Monday, May 21, 2012 17:23:48 Ingo Molnar wrote:
> > * Vlad Zolotarov <vlad@xxxxxxxxxxx> wrote:
> > > Pls., consider applying this patch series.
> > >
> > > It contains the following changes:
> > > - Adds two new macros DEFINE_EARLY_PER_CPU_READ_MOSTLY() and
> > >
> > > DECLARE_EARLY_PER_CPU_READ_MOSTLY().
> > >
> > > - Adds "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 and improve the performance on large multiprocessor
> > > systems.
> >
> > Why have you resent this? The feedback I gave has not been
> >
> > addressed:
>
> Hmmm... I'm a bit confused. There were two feedbacks/threads:
> one on "Signed- off-by" format and the other where u asked for
> a justification on a vSMP side.
>
> The signed-off format sounded to me as a clear blocker for a
> series so I fixed it and respined. I also mentioned it in
> patch0.

Well, you need to address all blockers before we can proceed.

> The second thread seams like getting to submitting a separate
> patch with a doc under Documents and vSMP testing results
> explaining and justifying when and were per-CPU and/or
> __read_mostly variables should be used.

No. As I said I'm not convinced that there are fewer read-mostly
than read-write percpu variables. Please:

> Well, a quick tally of percpu variables on a 'make defconfig'
> kernel would tell us one way or another?
>
> Here there's almost 200 percpu variables active in the 64-bit
> x86 defconfig, and a quick random sample suggests that most
> are read-mostly.
>
> 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
...

Thanks,

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/