Messages in this thread | | | Date | Wed, 23 Nov 2011 01:10:08 +0100 | From | Andrea Arcangeli <> | Subject | Re: [PATCH][mm/memory.c]: transparent hugepage check condition missed |
| |
Hi,
On Mon, Oct 31, 2011 at 06:56:57PM +0800, GuanJun He wrote: > For the transparent hugepage module still does not support > tmpfs and cache,the check condition should always be checked > to make sure that it only affect the anonymous maps, the > original check condition missed this, this patch is to fix this. > Otherwise,the hugepage may affect the file-backed maps, > then the cache for the small-size pages will be unuseful, > and till now there is still no implementation for hugepage's cache. > > Signed-off-by: Guanjun He <gjhe@suse.com> > --- > mm/memory.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/mm/memory.c b/mm/memory.c > index a56e3ba..79b85fe 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -3475,7 +3475,8 @@ int handle_mm_fault(struct mm_struct *mm, struct > vm_area_struct *vma, > if (pmd_trans_huge(orig_pmd)) { > if (flags & FAULT_FLAG_WRITE && > !pmd_write(orig_pmd) && > - !pmd_trans_splitting(orig_pmd)) > + !pmd_trans_splitting(orig_pmd) && > + !vma->vm_ops) > return do_huge_pmd_wp_page(mm, vma, address, > pmd, orig_pmd); > return 0;
Not needed, this is the cow case and pmd_trans_huge can't be true if vm_ops is not null. That's already checked a few lines before the above code and in collapse_huge_page for khugepaged.
Thanks.
| |