ARC: boot log: eliminate struct cpuinfo_arc #1: mm
authorVineet Gupta <vgupta@kernel.org>
Thu, 11 Jun 2020 06:03:22 +0000 (23:03 -0700)
committerVineet Gupta <vgupta@kernel.org>
Fri, 18 Aug 2023 03:31:57 +0000 (20:31 -0700)
commit72d861f2d22792eddc91d4617e410ec74db8d814
tree6276dc475d77866e4061e96bbafe22de9acdd2df
parent1918693ff1891ba57af22dbbf511cf300158a975
ARC: boot log: eliminate struct cpuinfo_arc #1: mm

This is first step in eliminating struct cpuinfo_arc[NR_CPUS]

Back when we had just ARCompact ISA, the idea was to read/bit-fiddle
the BCRs once and and cache decoded information in a global struct ready
to use.

With ARCv2 it was modified to contained abstract / ISA agnostic
information.

However with ARCv3 there 's too much disparity to abstract in common
structures. So drop the entire decode once and store paradigm. Afterall
there's only 2 users of this machinery anyways:  boot printing and
cat /proc/cpuinfo. None is performance critical to warrant locking away
resident memory per cpu.

This patch is first step in that direction
 - decouples struct cpuinfo_arc_mmu from global struct cpuinfo_arc
 - mmu code still has a trimmed down static version of
   struct cpuinfo_arc_mmu to cache information needed in performance
   critical code such as tlb flush routines
 - folds read_decode_mmu_bcr() into arc_mmu_mumbojumbo()
 - setup_processor() directly calls arc_mmu_init() and not via
   arc_cpu_init()

Tested-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202308151213.qKZPMiyz-lkp@intel.com/
Signed-off-by: Vineet Gupta <vgupta@kernel.org>
arch/arc/include/asm/arcregs.h
arch/arc/include/asm/setup.h
arch/arc/kernel/setup.c
arch/arc/mm/tlb.c