mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
8aa6d35929
We are seeing boot failures on some very large boxes even with
commit b5416ca9f8
(powerpc: Move kdump default base address to
64MB on 64bit).
This patch halves the RMO so both kernels get about the same
amount of RMO memory. On large machines this region will be
at least 256MB, so each kernel will get 128MB.
We cap it at 256MB (small SLB size) since some early allocations need
to be in the bolted SLB region. We could relax this on machines with
1TB SLBs in a future patch.
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
47 lines
1.3 KiB
C
47 lines
1.3 KiB
C
#ifndef _PPC64_KDUMP_H
|
|
#define _PPC64_KDUMP_H
|
|
|
|
#include <asm/page.h>
|
|
|
|
#define KDUMP_KERNELBASE 0x2000000
|
|
|
|
/* How many bytes to reserve at zero for kdump. The reserve limit should
|
|
* be greater or equal to the trampoline's end address.
|
|
* Reserve to the end of the FWNMI area, see head_64.S */
|
|
#define KDUMP_RESERVE_LIMIT 0x10000 /* 64K */
|
|
|
|
#ifdef CONFIG_CRASH_DUMP
|
|
|
|
/*
|
|
* On PPC64 translation is disabled during trampoline setup, so we use
|
|
* physical addresses. Though on PPC32 translation is already enabled,
|
|
* so we can't do the same. Luckily create_trampoline() creates relative
|
|
* branches, so we can just add the PAGE_OFFSET and don't worry about it.
|
|
*/
|
|
#ifdef __powerpc64__
|
|
#define KDUMP_TRAMPOLINE_START 0x0100
|
|
#define KDUMP_TRAMPOLINE_END 0x3000
|
|
#else
|
|
#define KDUMP_TRAMPOLINE_START (0x0100 + PAGE_OFFSET)
|
|
#define KDUMP_TRAMPOLINE_END (0x3000 + PAGE_OFFSET)
|
|
#endif /* __powerpc64__ */
|
|
|
|
#define KDUMP_MIN_TCE_ENTRIES 2048
|
|
|
|
#endif /* CONFIG_CRASH_DUMP */
|
|
|
|
#ifndef __ASSEMBLY__
|
|
|
|
#if defined(CONFIG_CRASH_DUMP) && !defined(CONFIG_RELOCATABLE)
|
|
extern void reserve_kdump_trampoline(void);
|
|
extern void setup_kdump_trampoline(void);
|
|
#else
|
|
/* !CRASH_DUMP || RELOCATABLE */
|
|
static inline void reserve_kdump_trampoline(void) { ; }
|
|
static inline void setup_kdump_trampoline(void) { ; }
|
|
#endif
|
|
|
|
#endif /* __ASSEMBLY__ */
|
|
|
|
#endif /* __PPC64_KDUMP_H */
|