lkml.org 
[lkml]   [2006]   [Feb]   [24]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateFri, 24 Feb 2006 09:04:24 +0000 (GMT)
FromMel Gorman <>
SubjectRe: [PATCH 4/7] ppc64 - Specify amount of kernel memory at boot time
On Thu, 23 Feb 2006, Dave Hansen wrote:

> On Thu, 2006-02-23 at 18:01 +0000, Mel Gorman wrote:
>> On Thu, 23 Feb 2006, Dave Hansen wrote:
>>> OK, back to the hapless system admin using kernelcore. They have a
>>> 4-node system with 2GB of RAM in each node for 8GB total.  They use
>>> kernelcore=1GB.  They end up with 4x1GB ZONE_DMA and 4x1GB
>>> ZONE_EASYRCLM.  Perfect.  You can safely remove 4GB of RAM.
>>>
>>> Now, imagine that the machine has been heavily used for a while, there
>>> is only 1 node's memory available, but CPUs are available in the same
>>> places as before.  So, you start up your partition again have 8GB of
>>> memory in one node.  Same kernelcore=1GB option.  You get 1x7GB ZONE_DMA
>>> and 1x1GB ZONE_EASYRCLM.  I'd argue this is going to be a bit of a
>>> surprise to the poor admin.
>>>
>>
>> That sort of surprise is totally unacceptable but the behaviour of
>> kernelcore needs to be consistent on both the x86 and the ppc (any any
>> other ar. How about;
>>
>> 1. kernelcore=X determines the total amount of memory for !ZONE_EASYRCLM
>>     (be it ZONE_DMA, ZONE_NORMAL or ZONE_HIGHMEM)
>
> Sounds reasonable.  But, if you're going to do that, should we just make
> it the opposite and explicitly be easy_reclaim_mem=?  Do we want the
> limit to be set as "I need this much kernel memory", or "I want this
> much removable memory".  I dunno.
>

I think we should keep it at kernelcore=. If you have too little easyrclm 
memory, then hot-remove and hugetlb availability is impaired. If you 
have too little kernel memory, you have a really bad day.

>> 2. For every node that can have ZONE_EASYRCLM, split the kernelcore across
>>     the nodes as a percentage of the node size
>>
>>     Example: 4 nodes, 1 GiB each, kernelcore=512MB
>>  		node 0 ZONE_DMA = 128MB
>>  		node 1 ZONE_DMA = 128MB
>>  		node 2 ZONE_DMA = 128MB
>>  		node 3 ZONE_DMA = 128MB
>>
>>  	    2 nodes, 3GiB and 1GIB, kernelcore=512MB
>>  		node 0 ZONE_DMA = 384
>>  		node 1 ZONE_DMA = 128
>>
>> It gets a bit more complex on NUMA for x86 because ZONE_NORMAL is
>> involved but the idea would essentially be the same.
>
> Yes, chopping it up seems like the right thing (or as close as we can
> get) to me.
>

Ok, will rework the code to make it happen.

-- 
Mel Gorman
Part-time Phd Student                          Linux Technology Center
University of Limerick                         IBM Dublin Software Lab
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2006-02-24 10:07    [from the cache]
©2003-2008