s390/memory hotplug: provide memory_block_size_bytes() function
Commit 0c2c99b1b "memory hotplug: Allow memory blocks to span
multiple memory sections" introduced a weak memory_block_size_bytes()
function which can be used to set the size of a memory block as
seen in sysfs.
Provide an s390 specific override which makes sure that each
memory block has at least a size of 256MB or the increment size of
of a memory increment, whatever is larger.
This way we can make sure that the number of memory sysfs objects
doesn't explode for very large memory configurations.
Reported-by: Gerald Schaefer <gerald.schaefer@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
			
			
This commit is contained in:
		
							parent
							
								
									df1bd59c5c
								
							
						
					
					
						commit
						e5d709bb5f
					
				| @ -21,6 +21,7 @@ | ||||
| #include <linux/init.h> | ||||
| #include <linux/pagemap.h> | ||||
| #include <linux/bootmem.h> | ||||
| #include <linux/memory.h> | ||||
| #include <linux/pfn.h> | ||||
| #include <linux/poison.h> | ||||
| #include <linux/initrd.h> | ||||
| @ -36,6 +37,7 @@ | ||||
| #include <asm/tlbflush.h> | ||||
| #include <asm/sections.h> | ||||
| #include <asm/ctl_reg.h> | ||||
| #include <asm/sclp.h> | ||||
| 
 | ||||
| pgd_t swapper_pg_dir[PTRS_PER_PGD] __attribute__((__aligned__(PAGE_SIZE))); | ||||
| 
 | ||||
| @ -214,6 +216,15 @@ int arch_add_memory(int nid, u64 start, u64 size) | ||||
| 	return rc; | ||||
| } | ||||
| 
 | ||||
| unsigned long memory_block_size_bytes(void) | ||||
| { | ||||
| 	/*
 | ||||
| 	 * Make sure the memory block size is always greater | ||||
| 	 * or equal than the memory increment size. | ||||
| 	 */ | ||||
| 	return max_t(unsigned long, MIN_MEMORY_BLOCK_SIZE, sclp_get_rzm()); | ||||
| } | ||||
| 
 | ||||
| #ifdef CONFIG_MEMORY_HOTREMOVE | ||||
| int arch_remove_memory(u64 start, u64 size) | ||||
| { | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user