On 16.08.2006 [16:45:22 +0100], Andy Whitcroft wrote: > 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 ...
Works for me :) Thanks, Nish -- Nishanth Aravamudan <[EMAIL PROTECTED]> IBM Linux Technology Center ------------------------------------------------------------------------- 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