lkml.org 
[lkml]   [2012]   [Aug]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [RFC patch 3/7] thp: make MADV_HUGEPAGE check for mm->def_flags
    From
    On Fri, Aug 24, 2012 at 1:17 AM, Gerald Schaefer
    <gerald.schaefer@de.ibm.com> wrote:
    > This adds a check to hugepage_madvise(), to refuse MADV_HUGEPAGE
    > if VM_NOHUGEPAGE is set in mm->def_flags. On System z, the VM_NOHUGEPAGE
    > flag will be set in mm->def_flags for kvm processes, to prevent any
    > future thp mappings. In order to also prevent MADV_HUGEPAGE on such an
    > mm, hugepage_madvise() should check mm->def_flags.
    >
    > Signed-off-by: Gerald Schaefer <gerald.schaefer@de.ibm.com>
    > ---
    > mm/huge_memory.c | 4 ++++
    > 1 file changed, 4 insertions(+)
    >
    > --- a/mm/huge_memory.c
    > +++ b/mm/huge_memory.c
    > @@ -1464,6 +1464,8 @@ out:
    > int hugepage_madvise(struct vm_area_struct *vma,
    > unsigned long *vm_flags, int advice)
    > {
    > + struct mm_struct *mm = vma->vm_mm;
    > +
    > switch (advice) {
    > case MADV_HUGEPAGE:
    > /*
    > @@ -1471,6 +1473,8 @@ int hugepage_madvise(struct vm_area_stru
    > */
    > if (*vm_flags & (VM_HUGEPAGE | VM_NO_THP))
    > return -EINVAL;
    > + if (mm->def_flags & VM_NOHUGEPAGE)
    > + return -EINVAL;

    Looks ifdefinery needed for s390 to wrap the added check, and
    a brief comment?

    > *vm_flags &= ~VM_NOHUGEPAGE;
    > *vm_flags |= VM_HUGEPAGE;


    \
     
     \ /
      Last update: 2012-08-25 15:21    [W:2.263 / U:0.044 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site