Adam Litke wrote:
> On Wed, 2006-08-16 at 08:12 -0700, Nishanth Aravamudan wrote:
>> On 16.08.2006 [10:11:37 +0100], Andy Whitcroft wrote:
>>> Nishanth Aravamudan wrote:
>>>> morecore's comments indicate that we will failover to smallpage malloc
>>>> if we run out of hugepages at runtime, but that is not the case. Modify
>>>> one comment and remove another to not confuse anyone.
>>>>
>>>> Signed-off-by: Nishanth Aravamudan <[EMAIL PROTECTED]>
>>>>
>>>> diff --git a/morecore.c b/morecore.c
>>>> index 9f13316..08a356b 100644
>>>> --- a/morecore.c
>>>> +++ b/morecore.c
>>>> @@ -45,8 +45,8 @@ static long mapsize;
>>>>  * pretend there are none this covers us for the case where another
>>>>  * map is in the way.  This is required because 'morecore' must have
>>>>  * 'sbrk' semantics, ie. return sequential, contigious memory blocks.
>>>> - * Luckily, if it does not do so and we error out malloc will happily
>>>> - * go back to small pages and use mmap to get them.  Hurrah.
>>>> + * Sufficient hugepages must be allocated before the malloc calls, or
>>>> + * the application will be killed.
>>> Hmmm, that is a tricky one.  If morecore does return failure then the 
>>> malloc library will do all the things mentioned.  The problem here is 
>>> that with demand fault semantics we will say 'yes' and return a page 
>>> which can't be instantiated.
>>>
>>> The comment in and of itsself is correct IMO.  Your caveat is 
>>> appropriate though in addition.
>> Description: morecore's comments indicate that we will failover to
>> smallpage malloc if we run out of hugepages at runtime. While that is
>> the case, the semantics of demand faulting require sufficient hugepages
>> exist before the malloc calls. Add a comment to that effect to make it
>> clear.
>>
>> Signed-off-by: Nishanth Aravamudan <[EMAIL PROTECTED]>
>>
>> diff --git a/morecore.c b/morecore.c
>> index 9f13316..4b222ed 100644
>> --- a/morecore.c
>> +++ b/morecore.c
>> @@ -46,7 +46,9 @@ static long mapsize;
>>   * map is in the way.  This is required because 'morecore' must have
>>   * 'sbrk' semantics, ie. return sequential, contigious memory blocks.
>>   * Luckily, if it does not do so and we error out malloc will happily
>> - * go back to small pages and use mmap to get them.  Hurrah.
>> + * go back to small pages and use mmap to get them.  Hurrah. However,
>> + * sufficient hugepages must be allocated before the malloc calls, or
>> + * the application will be killed.
>>   */
> 
> How about this:
> 
> * go back to small pages and use mmap to get them.  Hurrah. However,
> * due to the semantics of demand faulting combined with MAP_PRIVATE
> mappings in newer kernels, we are unable to detect the out of huge pages
> condition and cannot return an error to glibc for that case.  The result
> is that when enough huge pages don't exist to satisfy the application's
> requirements, it may be killed at runtime.
> 

I'd also make the "However" clause a separate paragraph.  /me had more 
this in mind ...

+1

-apw

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Libhugetlbfs-devel mailing list
Libhugetlbfs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel

Reply via email to