On 10.02.2007 [15:40:56 -0600], Bill Buros wrote:
> 
> Add support for partial segment remapping, where non-relinked binaries
> >can try to take advantage of libhugetlbfs' segment remapping code. By
> >LD_PRELOAD'ing the library and specifying the __executable_start address
> >in the HUGETLB_FORCE_REMAP variable, the library mimics the behavior it
> >would have if the binary were relinked with our linker scripts.
> 
> 
> eh?    As a user, would does this do?    It lets me skip the linking step?

Sort of. So, if you're a user and you have a binary with a large BSS,
and maybe don't know if you want to try and relink the binary, but would
like to see what is possible, performance-wise, if you were to relink
the binary, this give a rough approximation to that.

Let's say for some 64-bit power binary, the BSS is 300M, from F400000
(244M) to 22000000 (544M) in the address space this code will do the
following:

Leave the portion of the BSS from 244M-256M in small pages
Attempt to put the entire portion of the BSS from 256M to 512M in huge
pages
Leave the portion of the BSS from 512M-544M in small pages

All without recompiling. Ideally :)

Now, I say *attempt* because as we know there are any number of reasons
for this to fail (insufficient huge pages, ...).

In thinking about this, we may want to extend this functionality so that
a user can say -- don't truncate the top of the possibly huge page area,
go ahead and put as much in huge pages as possible. The reason this
would matter is if in the previous example, rather than 300M BSS, we had
a 257M BSS. Since the BSS doesn't start *exactly* at a 256M region
boundary, we need to round up to find where we can start mapping in huge
pages, so that leaves us with 235M of BSS that can go in huge pages. But
rather than waste 21M of virtual addresses (the remaining part of the
next 256M region, if we were to successfully map in the huge pages), we
will see that the remaining BSS space is not large enough to cover the
full region and fail to do anything.

But if the user is requesting that we try and use hugepages for a
non-relinked binary, maybe it should be best effort. Or, at a sheer
minimum use up one region regardless of cost, but only use full regions
after that?

Does this help clear things up, Bill?

> Does this mean I can override the .bss segment being loaded for
> programs and push the segment to a specific place?

I'm not sure what you mean here :/ Hopefully the above clears it up.

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
[email protected]
https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel

Reply via email to