[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210126141148.GC80448@C02TD0UTHF1T.local>
Date: Tue, 26 Jan 2021 14:11:48 +0000
From: Mark Rutland <mark.rutland@....com>
To: Will Deacon <will@...nel.org>
Cc: Jia He <justin.he@....com>,
Catalin Marinas <catalin.marinas@....com>,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
Anshuman Khandual <anshuman.khandual@....com>,
Suzuki K Poulose <suzuki.poulose@....com>,
"Gustavo A. R. Silva" <gustavoars@...nel.org>,
Richard Henderson <richard.henderson@...aro.org>,
Dave Martin <Dave.Martin@....com>,
Steven Price <steven.price@....com>,
Andrew Morton <akpm@...ux-foundation.org>,
Mike Rapoport <rppt@...nel.org>,
Ard Biesheuvel <ardb@...nel.org>,
Gavin Shan <gshan@...hat.com>,
Kefeng Wang <wangkefeng.wang@...wei.com>,
Mark Brown <broonie@...nel.org>, Marc Zyngier <maz@...nel.org>,
Cristian Marussi <cristian.marussi@....com>
Subject: Re: [RFC PATCH 1/2] arm64/cpuinfo: Move init_cpu_features() ahead of
setup.c::early_fixmap_init()
On Tue, Jan 26, 2021 at 01:57:13PM +0000, Will Deacon wrote:
> > @@ -297,16 +297,20 @@ void __init __no_sanitize_address setup_arch(char **cmdline_p)
> > */
> > arm64_use_ng_mappings = kaslr_requires_kpti();
> >
> > - early_fixmap_init();
> > - early_ioremap_init();
> > -
> > - setup_machine_fdt(__fdt_pointer);
> > -
> > /*
> > * Initialise the static keys early as they may be enabled by the
> > * cpufeature code and early parameters.
> > */
> > jump_label_init();
>
> I don't think your patch changes this, but afaict jump_label_init() uses
> per-cpu variables via cpus_read_lock(), yet we don't initialise our offset
> until later on. Any idea how that works?
We initialize the boot CPU's offset twice during boot, once before this
in smp_setup_processor_id(), and once afterwards in
smp_prepare_boot_cpu() since setup_per_cpu_areas() will allocate a new
region for CPU0.
IIUC per-cpu writes before smp_prepare_boot_cpu() are potentially dodgy
since they might be copied to other CPUs, but reads are all fine.
Mark.
Powered by blists - more mailing lists