diff options
author | Nicholas Piggin <npiggin@gmail.com> | 2018-02-14 01:08:12 +1000 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2018-03-30 23:34:23 +1100 |
commit | d2e60075a3d4422dc54b919f3b125d8066b839d4 (patch) | |
tree | 0a053b218a2b6645da86b32e75947899158d3c33 /arch/powerpc/include/asm/paca.h | |
parent | 8e0b634b132752ec3eba50afb952502b1a87d6ba (diff) | |
download | linux-stable-d2e60075a3d4422dc54b919f3b125d8066b839d4.tar.gz linux-stable-d2e60075a3d4422dc54b919f3b125d8066b839d4.tar.bz2 linux-stable-d2e60075a3d4422dc54b919f3b125d8066b839d4.zip |
powerpc/64: Use array of paca pointers and allocate pacas individually
Change the paca array into an array of pointers to pacas. Allocate
pacas individually.
This allows flexibility in where the PACAs are allocated. Future work
will allocate them node-local. Platforms that don't have address limits
on PACAs would be able to defer PACA allocations until later in boot
rather than allocate all possible ones up-front then freeing unused.
This is slightly more overhead (one additional indirection) for cross
CPU paca references, but those aren't too common.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc/include/asm/paca.h')
-rw-r--r-- | arch/powerpc/include/asm/paca.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/powerpc/include/asm/paca.h b/arch/powerpc/include/asm/paca.h index 6db5ab2a29a3..e89887f5e56f 100644 --- a/arch/powerpc/include/asm/paca.h +++ b/arch/powerpc/include/asm/paca.h @@ -249,10 +249,10 @@ struct paca_struct { void *rfi_flush_fallback_area; u64 l1d_flush_size; #endif -}; +} ____cacheline_aligned; extern void copy_mm_to_paca(struct mm_struct *mm); -extern struct paca_struct *paca; +extern struct paca_struct **paca_ptrs; extern void initialise_paca(struct paca_struct *new_paca, int cpu); extern void setup_paca(struct paca_struct *new_paca); extern void allocate_pacas(void); |