linux_dsm_epyc7002/arch/powerpc/include/asm
Hari Bathini 48a316e350 powerpc/fadump: Set an upper limit for boot memory size
By default, 5% of system RAM is reserved for preserving boot memory.
Alternatively, a user can specify the amount of memory to reserve.
See Documentation/powerpc/firmware-assisted-dump.txt for details. In
addition to the memory reserved for preserving boot memory, some more
memory is reserved, to save HPTE region, CPU state data and ELF core
headers.

Memory Reservation during first kernel looks like below:

  Low memory                                        Top of memory
  0      boot memory size                                       |
  |           |                       |<--Reserved dump area -->|
  V           V                       |   Permanent Reservation V
  +-----------+----------/ /----------+---+----+-----------+----+
  |           |                       |CPU|HPTE|  DUMP     |ELF |
  +-----------+----------/ /----------+---+----+-----------+----+
        |                                           ^
        |                                           |
        \                                           /
         -------------------------------------------
          Boot memory content gets transferred to
          reserved area by firmware at the time of
          crash

This implicitly means that the sum of the sizes of boot memory, CPU
state data, HPTE region, DUMP preserving area and ELF core headers
can't be greater than the total memory size. But currently, a user is
allowed to specify any value as boot memory size. So, the above rule
is violated when a boot memory size around 50% of the total available
memory is specified. As the kernel is not handling this currently, it
may lead to undefined behavior. Fix it by setting an upper limit for
boot memory size to 25% of the total available memory. Also, instead
of using memblock_end_of_DRAM(), which doesn't take the holes, if any,
in the memory layout into account, use memblock_phys_mem_size() to
calculate the percentage of total available memory.

Signed-off-by: Hari Bathini <hbathini@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2017-06-02 20:16:50 +10:00
..
book3s powerpc/mm/book3s/64: Rework page table geometry for lower memory usage 2017-05-09 19:24:23 +10:00
nohash powerpc/mm/nohash: MM_SLICE is only used by book3s 64 2017-03-31 23:09:47 +11:00
8xx_immap.h
accounting.h sched/cputime, powerpc: Prepare accounting structure for cputime flush on tick 2017-01-14 09:54:12 +01:00
agp.h
archrandom.h
asm-compat.h powerpc/ebpf/jit: Implement JIT compiler for extended BPF 2016-06-24 15:17:57 +10:00
asm-offsets.h
asm-prototypes.h powerpc: Fix missing CRCs, add more asm-prototypes.h declarations 2017-03-21 22:09:26 +11:00
async_tx.h
atomic.h powerpc: Remove static branch prediction in atomic{, 64}_add_unless 2016-10-04 16:13:13 +11:00
backlight.h
barrier.h powerpc: define __smp_xxx 2016-01-12 20:46:53 +02:00
bitops.h powerpc: Remove __ilog2()s and use generic ones 2017-06-02 19:23:56 +10:00
bootx.h
btext.h
bug.h debug: Add _ONCE() logic to report_bug() 2017-03-30 09:37:20 +02:00
bugs.h
cache.h powerpc: Add new cache geometry aux vectors 2017-02-06 19:46:04 +11:00
cacheflush.h powerpc: Move cpu_has_feature() to a separate file 2016-08-01 11:15:03 +10:00
cell-pmu.h
cell-regs.h
checksum.h powerpc/64: Fix checksum folding in csum_add() 2017-03-04 23:07:17 +11:00
cmpxchg.h powerpc: Fix __cmpxchg() to take a volatile ptr again 2016-11-25 14:07:50 +11:00
code-patching.h powerpc: Introduce a new helper to obtain function entry points 2017-04-24 19:07:58 +10:00
compat.h
context_tracking.h
copro.h
cpm1.h powerpc/8xx: Adding support of IRQ in MPC8xx GPIO 2017-05-02 22:35:00 -05:00
cpm2.h
cpm.h QE: Move QE from arch/powerpc to drivers/soc 2015-12-22 17:12:56 -06:00
cpu_has_feature.h powerpc/64s: Support new device tree binding for discovering CPU features 2017-05-09 23:42:55 +10:00
cpufeature.h powerpc: Add module autoloading based on CPU features 2016-07-21 20:33:57 +10:00
cpuidle.h powerpc/64s: Idle POWER8 avoid full state loss recovery where possible 2017-04-23 20:32:12 +10:00
cputable.h powerpc/64s: Support new device tree binding for discovering CPU features 2017-05-09 23:42:55 +10:00
cputhreads.h powerpc: cputhreads: Add missing include file 2016-08-22 11:09:33 +10:00
cputime.h sched/cputime: Remove generic asm headers 2017-02-01 09:14:07 +01:00
current.h
dbdma.h
dbell.h powerpc/powernv: POWER9 support for msgsnd/doorbell IPI 2017-04-13 23:34:34 +10:00
dcr-generic.h
dcr-mmio.h
dcr-native.h powerpc: Move cpu_has_feature() to a separate file 2016-08-01 11:15:03 +10:00
dcr-regs.h
dcr.h
debug.h powerpc: Create asm/debugfs.h and move powerpc_debugfs_root there 2017-04-11 07:46:03 +10:00
debugfs.h powerpc: Create asm/debugfs.h and move powerpc_debugfs_root there 2017-04-11 07:46:03 +10:00
delay.h
device.h treewide: Move dma_ops from struct dev_archdata into struct device 2017-01-24 12:23:35 -05:00
disassemble.h KVM: PPC: Book3S: Add MMIO emulation for FP and VSX instructions 2017-04-20 11:36:41 +10:00
dma-mapping.h treewide: Consolidate get_dma_ops() implementations 2017-01-24 12:23:35 -05:00
dma.h
dt_cpu_ftrs.h powerpc/64s: Support new device tree binding for discovering CPU features 2017-05-09 23:42:55 +10:00
edac.h
eeh_event.h
eeh.h powerpc/pci: Delay populating pdn 2016-06-21 15:30:56 +10:00
ehv_pic.h
elf.h powerpc/64: Fix L1D cache shape vector reporting L1I values 2017-03-06 21:51:32 +11:00
emergency-restart.h
emulated_ops.h
epapr_hcalls.h
exception-64e.h powerpc/e6500: hw tablewalk: make sure we invalidate and write to the same tlb entry 2015-10-27 18:14:40 -05:00
exception-64s.h powerpc updates for 4.12 part 1. 2017-05-05 11:36:44 -07:00
exec.h
extable.h powerpc: switch to extable.h 2017-03-28 18:23:54 -04:00
fadump.h powerpc/fadump: Set an upper limit for boot memory size 2017-06-02 20:16:50 +10:00
fb.h
feature-fixups.h powerpc/64s: Simplify POWER9 DD1 idle workaround code 2017-04-23 20:32:23 +10:00
firmware.h powerpc/pseries: Add hypercall wrappers for hash page table resizing 2017-02-09 21:45:48 +11:00
fixmap.h powerpc/8xx: Fix vaddr for IMMR early remap 2016-07-09 02:02:48 -05:00
floppy.h
fs_pd.h
fsl_85xx_cache_sram.h
fsl_gtm.h
fsl_hcalls.h scripts/spelling.txt: add "partiton" pattern and fix typo instances 2017-02-27 18:43:46 -08:00
fsl_lbc.h
fsl_pamu_stash.h
fsl_pm.h powerpc/rcpm: add RCPM driver 2016-03-04 23:50:27 -06:00
ftrace.h powerpc: Define and use PPC64_ELF_ABI_v2/v1 2016-06-14 13:58:27 +10:00
futex.h powerpc: EX_TABLE macro for exception tables 2016-11-14 11:11:51 +11:00
grackle.h
hardirq.h
head-64.h powerpc/64: Tool to check head sections location sanity 2017-05-30 14:59:51 +10:00
heathrow.h
highmem.h kmap_atomic_to_page() has no users, remove it 2015-11-09 15:11:24 -08:00
hmi.h powerpc: move hmi.c to arch/powerpc/kvm/ 2016-09-09 16:18:07 +10:00
hugetlb.h powerpc/mm: Fix little-endian 4K hugetlb 2017-01-18 11:58:50 +11:00
hvcall.h powerpc/pseries: Move struct hcall_stats to hvCall_inst.c 2017-03-20 19:02:49 +11:00
hvconsole.h
hvcserver.h
hvsi.h
hw_breakpoint.h
hw_irq.h powerpc/8xx: use SPRN_EIE and SPRN_EID to enable/disable interrupts 2016-09-25 02:38:53 -05:00
hydra.h powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
i8259.h
ibmebus.h
icswx.h crypto: nx-842 - Mask XERS0 bit in return value 2015-12-17 16:42:12 +08:00
ide.h
ima.h powerpc: ima: send the kexec buffer to the next kernel 2016-12-20 09:48:44 -08:00
immap_cpm2.h
io_event_irq.h
io-defs.h
io-workarounds.h
io.h powerpc/mm: Wire up ioremap_cache() 2017-04-21 21:08:47 +10:00
iommu.h KVM: PPC: iommu: Unify TCE checking 2017-04-20 11:39:21 +10:00
ipic.h
irq_work.h
irq.h
irqflags.h
isa-bridge.h powerpc: Add support for non-PCI ISA bridges 2017-01-31 13:54:17 +11:00
jump_label.h powerpc updates for 4.8 #2 2016-08-05 09:00:54 -04:00
Kbuild ppc: move exports to definitions 2016-08-07 23:50:09 -04:00
kdebug.h
kdump.h
kexec.h powerpc: ima: send the kexec buffer to the next kernel 2016-12-20 09:48:44 -08:00
keylargo.h
kgdb.h
kmap_types.h
kprobes.h powerpc/kprobes: Add support for KPROBES_ON_FTRACE 2017-04-24 19:07:58 +10:00
kvm_asm.h KVM: PPC: Book3S HV: Enable hypervisor virtualization interrupts while in guest 2016-11-24 09:24:23 +11:00
kvm_book3s_32.h
kvm_book3s_64.h powerpc/pseries: Skip using reserved virtual address range 2017-04-01 21:12:27 +11:00
kvm_book3s_asm.h KVM: PPC: Book3S HV: Native usage of the XIVE interrupt controller 2017-04-27 21:37:29 +10:00
kvm_book3s.h KVM: PPC: Book3S HV: Enable radix guest support 2017-01-31 19:11:52 +11:00
kvm_booke_hv_asm.h
kvm_booke.h
kvm_fpu.h
kvm_host.h Merge remote-tracking branch 'remotes/powerpc/topic/xive' into kvm-ppc-next 2017-04-28 08:23:16 +10:00
kvm_para.h
kvm_ppc.h * ARM: HYP mode stub supports kexec/kdump on 32-bit; improved PMU 2017-05-08 12:37:56 -07:00
libata-portmap.h libata: remove unused definitions from <asm/libata-portmap.h> 2016-09-22 11:50:19 -04:00
linkage.h powerpc: Define and use PPC64_ELF_ABI_v2/v1 2016-06-14 13:58:27 +10:00
livepatch.h powerpc/livepatch: Remove klp_write_module_reloc() stub 2016-12-19 11:15:25 +01:00
local.h
lppaca.h
lv1call.h
machdep.h powerpc/powernv: Override pcibios_default_alignment() to force PCI devices to be page aligned 2017-04-19 12:51:26 -05:00
macio.h
mc146818rtc.h
mce.h powerpc/book3s: Print task info if we take a machine check in user mode 2017-04-03 16:12:00 +10:00
mediabay.h
mm-arch-hooks.h
mman.h powerpc updates for 4.8 #2 2016-08-05 09:00:54 -04:00
mmu_context.h powerpc updates for 4.12 part 1. 2017-05-05 11:36:44 -07:00
mmu-8xx.h powerpc/8xx: Implement support of hugepages 2016-12-09 22:49:07 -06:00
mmu-40x.h
mmu-44x.h
mmu-book3e.h powerpc/mm/nohash: MM_SLICE is only used by book3s 64 2017-03-31 23:09:47 +11:00
mmu.h powerpc/mm/hash: Support 68 bit VA 2017-03-31 23:10:00 +11:00
mmzone.h powerpc: implement arch_reserved_kernel_pages 2016-10-07 18:46:28 -07:00
module.h powerpc/modules: If mprofile-kernel is enabled add it to vermagic 2017-05-15 19:31:38 +10:00
mpc5xxx.h
mpc6xx.h
mpc52xx_psc.h powerpc: mpc512x: drop bogus and unused psc register bit definitions 2015-10-22 16:06:08 +02:00
mpc52xx.h powerpc: Make ppc_md.{halt, restart} __noreturn 2016-07-14 21:12:06 +10:00
mpc85xx.h
mpc5121.h powerpc/512x: add LocalPlus Bus FIFO device driver 2015-10-22 15:19:40 +02:00
mpc8260.h
mpic_msgr.h powerpc: Remove all usages of NO_IRQ 2016-09-20 20:57:12 +10:00
mpic_timer.h
mpic.h
msi_bitmap.h
nmi.h
nvram.h
ohare.h
opal-api.h Merge branch 'topic/xive' (early part) into next 2017-04-12 22:31:37 +10:00
opal.h Merge branch 'topic/xive' (early part) into next 2017-04-12 22:31:37 +10:00
oprofile_impl.h
paca.h powerpc/powernv/idle: Use Requested Level for restoring state on P9 DD1 2017-05-30 14:59:51 +10:00
page_32.h powerpc32: Remove clear_pages() and define clear_page() inline 2016-03-11 17:20:11 -06:00
page_64.h powerpc/mm/slice: Move slice_mask struct definition to slice.c 2017-03-31 23:09:56 +11:00
page.h powerpc/mm: Fix virt_addr_valid() etc. on 64-bit hash 2017-05-19 13:04:35 +10:00
parport.h powerpc: Remove all usages of NO_IRQ 2016-09-20 20:57:12 +10:00
pasemi_dma.h
pci-bridge.h powerpc: Move isa bridge definitions to separate include 2017-01-31 13:54:17 +11:00
pci.h PCI: Add arch_can_pci_mmap_io() on architectures which can mmap() I/O space 2017-04-18 13:02:26 -05:00
percpu.h
perf_event_fsl_emb.h
perf_event_server.h powerpc/perf: Support to export MMCRA[TEC*] field to userspace 2017-04-19 20:00:22 +10:00
perf_event.h
pgalloc.h powerpc/mm: Copy pgalloc (part 2) 2016-05-11 21:53:49 +10:00
pgtable-be-types.h powerpc/mm: Fix little-endian 4K hugetlb 2017-01-18 11:58:50 +11:00
pgtable-types.h powerpc/mm: Fix little-endian 4K hugetlb 2017-01-18 11:58:50 +11:00
pgtable.h powerpc: port 64 bits pgtable_cache to 32 bits 2016-12-09 22:48:01 -06:00
plpar_wrappers.h powerpc/pseries: Add hypercall wrappers for hash page table resizing 2017-02-09 21:45:48 +11:00
pmac_feature.h powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
pmac_low_i2c.h
pmac_pfunc.h
pmc.h
pmi.h
pnv-pci.h drivers/pci/hotplug: Mask PDC interrupt if required 2017-02-15 20:02:43 +11:00
powernv.h powerpc/powernv: Introduce address translation services for Nvlink2 2017-04-04 13:27:26 +10:00
ppc4xx_ocm.h
ppc4xx.h powerpc: Make ppc_md.{halt, restart} __noreturn 2016-07-14 21:12:06 +10:00
ppc_asm.h powerpc/64s: Fix FIXUP_ENDIAN non-maskable interrupt reentrancy 2017-05-30 14:59:51 +10:00
ppc-opcode.h * ARM: HYP mode stub supports kexec/kdump on 32-bit; improved PMU 2017-05-08 12:37:56 -07:00
ppc-pci.h powerpc/eeh: Refactor EEH PE reset functions 2016-11-22 11:57:08 +11:00
probes.h
processor.h powerpc/64e: Don't place the stack beyond TASK_SIZE 2017-05-05 01:22:06 -05:00
prom.h powerpc: Update to new option-vector-5 format for CAS 2017-03-06 21:44:09 +11:00
ps3.h treewide: Consolidate get_dma_ops() implementations 2017-01-24 12:23:35 -05:00
ps3av.h powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
ps3gpu.h
ps3stor.h
pte-common.h powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
ptrace.h powerpc: Define and use PPC64_ELF_ABI_v2/v1 2016-06-14 13:58:27 +10:00
reg_8xx.h powerpc/8xx: Perf events on PPC 8xx 2017-01-26 17:49:34 -06:00
reg_a2.h
reg_booke.h powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
reg_fsl_emb.h
reg.h powerpc/64s: Support new device tree binding for discovering CPU features 2017-05-09 23:42:55 +10:00
rheap.h
rio.h
rtas.h powerpc/pseries: Implement indexed-count hotplug memory add 2017-02-17 17:57:30 +11:00
runlatch.h
scom.h
seccomp.h
sections.h powerpc/kprobes: Blacklist exception handlers 2017-04-23 20:32:25 +10:00
serial.h
setjmp.h
setup.h powerpc: Put exception configuration in a common place 2016-07-21 18:56:31 +10:00
sfp-machine.h
shmparam.h
signal.h powerpc: signals: Stop using current in signal code 2016-10-04 16:43:07 +11:00
smp.h powerpc: Add struct smp_ops_t.cause_nmi_ipi operation 2017-04-28 21:02:25 +10:00
smu.h powerpc/pmac: Remove early allocation of the SMU command buffer 2016-07-21 18:56:38 +10:00
sparsemem.h powerpc/mm: Fix build break with BOOK3S_64=n and MEMORY_HOTPLUG=y 2017-02-15 19:58:39 +11:00
spinlock_types.h
spinlock.h locking/core, powerpc: Implement vcpu_is_preempted(cpu) 2016-11-22 12:48:06 +01:00
spu_csa.h
spu_info.h
spu_priv1.h
spu.h
sstep.h
string.h powerpc: Remove assembly versions of strcpy, strcat, strlen and strcmp 2016-06-14 13:58:25 +10:00
swab.h
swiotlb.h treewide: Constify most dma_map_ops structures 2017-01-24 12:23:35 -05:00
switch_to.h powerpc/ptrace: Fix coredump since ptrace TM changes 2016-08-10 16:34:20 +10:00
synch.h powerpc: Factor do_feature_fixup calls 2016-07-21 18:51:42 +10:00
syscall.h
syscalls.h powerpc/tracing: Allow tracing of mmap syscalls 2017-04-12 22:32:43 +10:00
systbl.h powerpc: Wire up statx() syscall 2017-03-16 20:45:53 +11:00
tce.h powerpc/powernv/pci: Remove SWINV constants and obsolete TCE code 2016-07-17 16:42:47 +10:00
termios.h
thread_info.h powerpc updates for 4.12 part 1. 2017-05-05 11:36:44 -07:00
time.h powerpc: Move cpu_has_feature() to a separate file 2016-08-01 11:15:03 +10:00
timex.h
tlb.h mm: add tlb_remove_check_page_size_change to track page size change 2016-12-12 18:55:07 -08:00
tlbflush.h powerpc/mm: remove flush_tlb_page_nohash 2016-08-01 11:15:13 +10:00
tm.h powerpc: Remove do_load_up_transact_{fpu,altivec} 2016-10-04 20:33:16 +11:00
topology.h
trace_clock.h
trace.h tracing: Have the reg function allow to fail 2016-12-09 09:13:30 -05:00
tsi108_irq.h
tsi108_pci.h
tsi108.h powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
types.h powerpc: Define and use PPC64_ELF_ABI_v2/v1 2016-06-14 13:58:27 +10:00
uaccess.h powerpc: get rid of zeroing, switch to RAW_COPY_USER 2017-04-06 15:08:42 -04:00
udbg.h
uic.h
unaligned.h
uninorth.h powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
unistd.h powerpc: Wire up statx() syscall 2017-03-16 20:45:53 +11:00
uprobes.h
user.h
vdso_datapage.h powerpc: Standardise on NR_syscalls rather than __NR_syscalls. 2015-11-26 22:11:17 +11:00
vdso.h
vga.h
vio.h
word-at-a-time.h powerpc: EX_TABLE macro for exception tables 2016-11-14 11:11:51 +11:00
xics.h powerpc: Change the doorbell IPI calling convention 2017-04-13 23:34:33 +10:00
xilinx_intc.h powerpc/virtex: Use generic xilinx irqchip driver 2016-11-29 09:14:50 +00:00
xilinx_pci.h
xive-regs.h powerpc/xive: Native exploitation of the XIVE interrupt controller 2017-04-10 21:41:34 +10:00
xive.h KVM: PPC: Book3S HV: Native usage of the XIVE interrupt controller 2017-04-27 21:37:29 +10:00
xmon.h powerpc/xive: Native exploitation of the XIVE interrupt controller 2017-04-10 21:41:34 +10:00
xor.h powerpc: Move cpu_has_feature() to a separate file 2016-08-01 11:15:03 +10:00