Red Hat Bugzilla – Bug 245042
make new RHEL5 NFS symlink code use GFP_HIGHUSER for pagecache
Last modified: 2008-05-21 10:44:32 EDT
The patch for bug 218718 makes it so that nfs_symlink() allocates a page
destined for pagecache and uses that to hold the name to which the symlink
points. It allocates it using this:
page = alloc_page(GFP_KERNEL);
...but most pagecache pages are allocated using GFP_HIGHUSER. There's no reason
to use normal zone memory for this.
I pushed a patch upstream recently to change this to use GFP_HIGHUSER, but it's
not shown up in Trond's tree or mainline yet. I'd like this to go upstream for a
bit to make sure there are no issues, but eventually we should consider pulling
this back for RHEL5 (maybe for 5.2).
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux maintenance release. Product Management has requested
further review of this request by Red Hat Engineering, for potential
inclusion in a Red Hat Enterprise Linux Update release for currently deployed
products. This request is not yet committed for inclusion in an Update
Not sure how best to QA this...
It'll probably come down to installing a 32 bit machine with a large amount of
memory (>1G or so), writing script that creates a ton of symlinks on a NFS
mount, and watching memory statistics as it runs.
Without this patch, normal zone memory should drop much more quickly, while with
this patch, more of these pages should come out of highmem.
You can download this test kernel from http://people.redhat.com/dzickus/el5
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.