On Wed, Feb 07, 2007 at 12:47:17PM -0800, Nishanth Aravamudan wrote:
> On 07.02.2007 [14:27:10 -0600], Adam Litke wrote:
> > On Wed, 2007-02-07 at 11:37 -0800, Nishanth Aravamudan wrote:
> > > @@ -831,6 +832,57 @@ static void remap_segments(struct seg_info *seg, int 
> > > num)
> > >   /* The segments are all back at this point.
> > >    * and it should be safe to reference static data
> > >    */
> > > +
> > > + /*
> > > +  * This pagecache dropping code should not be used for shared
> > > +  * segments.  But we currently only share read-only segments, so
> > > +  * the below check for PROT_WRITE is implicitly sufficient.
> > > +  *
> > > +  * Note: if minimal_copy is enabled, it is overkill to try and
> > > +  * save huge pages here, as we will end up using more than
> > > +  * normal anyways. Also, due to limitations on certain
> > > +  * architectures, we would need to avoid prefaulting in the
> > > +  * extracopy area so as to not use an inordinate number of huge
> > > +  * pages.
> > > +  */
> > > + if (minimal_copy) {
> > 
> > Now the added indent is really making me want to say this is getting
> > large enough to want its own function.  I think the previous patch to
> > store the extracopy info in the seg array allows you to pass only one
> > param (the seg array) into the drop_cache() function.
> 
> heh, yep, updated again:
> 
> Author: Nishanth Aravamudan <[EMAIL PROTECTED]>
> Date:   Mon Feb 5 14:22:02 2007 -0800
> 
> elflink: drop hugepage cached pages for writable segments
> 
> We currently use extra hugepages for writable segments because of the
> first MAP_SHARED mmap() which stays resident in the page cache.  Use a
> helper function to force a COW for the filesz portion, as well as the
> extracopy area, of writable segments and then fadvise() to drop the page
> cache pages while keeping our PRIVATE mapping. This is mutually
> exclusive to segment sharing, but is also orthogonal in code because we
> only allow sharing of read-only segments.  Also, if the minimal_copy
> algorithm is disabled, we disable this optimization.
> 
> Signed-off-by: Nishanth Aravamudan <[EMAIL PROTECTED]>

Looks reasonable.  However, we probably don't want to apply this patch
for real until the kernel bug which makes the fadvise() screw up the
reserved pages accounting is fixed.

-- 
David Gibson                    | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
                                | _way_ _around_!
http://www.ozlabs.org/~dgibson

-------------------------------------------------------------------------
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