438cc81a41
We've now implemented code in the pseries platform to use the new PAPR interface to allow resizing the hash page table (HPT) at runtime. This patch uses that interface to automatically attempt to resize the HPT when memory is hot added or removed. This tries to always keep the HPT at a reasonable size for our current memory size. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Reviewed-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
34 lines
969 B
C
34 lines
969 B
C
#ifndef _ASM_POWERPC_SPARSEMEM_H
|
|
#define _ASM_POWERPC_SPARSEMEM_H 1
|
|
#ifdef __KERNEL__
|
|
|
|
#ifdef CONFIG_SPARSEMEM
|
|
/*
|
|
* SECTION_SIZE_BITS 2^N: how big each section will be
|
|
* MAX_PHYSADDR_BITS 2^N: how much physical address space we have
|
|
* MAX_PHYSMEM_BITS 2^N: how much memory we can have in that space
|
|
*/
|
|
#define SECTION_SIZE_BITS 24
|
|
|
|
#define MAX_PHYSADDR_BITS 46
|
|
#define MAX_PHYSMEM_BITS 46
|
|
|
|
#endif /* CONFIG_SPARSEMEM */
|
|
|
|
#ifdef CONFIG_MEMORY_HOTPLUG
|
|
extern void resize_hpt_for_hotplug(unsigned long new_mem_size);
|
|
extern int create_section_mapping(unsigned long start, unsigned long end);
|
|
extern int remove_section_mapping(unsigned long start, unsigned long end);
|
|
#ifdef CONFIG_NUMA
|
|
extern int hot_add_scn_to_nid(unsigned long scn_addr);
|
|
#else
|
|
static inline int hot_add_scn_to_nid(unsigned long scn_addr)
|
|
{
|
|
return 0;
|
|
}
|
|
#endif /* CONFIG_NUMA */
|
|
#endif /* CONFIG_MEMORY_HOTPLUG */
|
|
|
|
#endif /* __KERNEL__ */
|
|
#endif /* _ASM_POWERPC_SPARSEMEM_H */
|