Memory may be hot-removed on a per-memory-block basis, particularly on POWER where the SPARSEMEM section size often matches the memory-block size. A user-level agent must be able to identify which sections of memory are likely to be removable before attempting the potentially expensive operation. This patch adds a file called "removable" to the memory directory in sysfs to help such an agent. In this patch, a memory block is considered removable if; o It contains only MOVABLE pageblocks o It contains only pageblocks with free pages regardless of pageblock type On the other hand, a memory block starting with a PageReserved() page will never be considered removable. Without this patch, the user-agent is forced to choose a memory block to remove randomly. Sample output of the sysfs files: ./memory/memory0/removable: 0 ./memory/memory1/removable: 0 ./memory/memory2/removable: 0 ./memory/memory3/removable: 0 ./memory/memory4/removable: 0 ./memory/memory5/removable: 0 ./memory/memory6/removable: 0 ./memory/memory7/removable: 1 ./memory/memory8/removable: 0 ./memory/memory9/removable: 0 ./memory/memory10/removable: 0 ./memory/memory11/removable: 0 ./memory/memory12/removable: 0 ./memory/memory13/removable: 0 ./memory/memory14/removable: 0 ./memory/memory15/removable: 0 ./memory/memory16/removable: 0 ./memory/memory17/removable: 1 ./memory/memory18/removable: 1 ./memory/memory19/removable: 1 ./memory/memory20/removable: 1 ./memory/memory21/removable: 1 ./memory/memory22/removable: 1 Signed-off-by: Badari Pulavarty <pbadari@us.ibm.com> Signed-off-by: Mel Gorman <mel@csn.ul.ie> Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
		
			
				
	
	
		
			24 lines
		
	
	
	
		
			907 B
			
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
	
		
			907 B
			
		
	
	
	
		
			Text
		
	
	
	
	
	
What:		/sys/devices/system/memory
 | 
						|
Date:		June 2008
 | 
						|
Contact:	Badari Pulavarty <pbadari@us.ibm.com>
 | 
						|
Description:
 | 
						|
		The /sys/devices/system/memory contains a snapshot of the
 | 
						|
		internal state of the kernel memory blocks. Files could be
 | 
						|
		added or removed dynamically to represent hot-add/remove
 | 
						|
		operations.
 | 
						|
 | 
						|
Users:		hotplug memory add/remove tools
 | 
						|
		https://w3.opensource.ibm.com/projects/powerpc-utils/
 | 
						|
 | 
						|
What:		/sys/devices/system/memory/memoryX/removable
 | 
						|
Date:		June 2008
 | 
						|
Contact:	Badari Pulavarty <pbadari@us.ibm.com>
 | 
						|
Description:
 | 
						|
		The file /sys/devices/system/memory/memoryX/removable
 | 
						|
		indicates whether this memory block is removable or not.
 | 
						|
		This is useful for a user-level agent to determine
 | 
						|
		identify removable sections of the memory before attempting
 | 
						|
		potentially expensive hot-remove memory operation
 | 
						|
 | 
						|
Users:		hotplug memory remove tools
 | 
						|
		https://w3.opensource.ibm.com/projects/powerpc-utils/
 |