Hi Scott Thank you for your comments. Kernel already has that function: is_vm_hugetlb_page() , but the original code didn't use it, in order to keep the coding style of the original code, I didn't use it either. For the sentence like: "vma->vm_flags & VM_HUGETLB" , hiding it behind 'is_vm_hugetlb_page()' is ok, but the sentence like: "vma->vm_flags & (VM_LOCKED|VM_HUGETLB|VM_PFNMAP)" appears in the patch 2/6, is it better to hide the bit combinations behind the is_vm_hugetlb_page() ? In my patch I just replaced it with "vma->vm_flags & (VM_LOCKED|VM_PFNMAP) || (vma->vm_flags & (VM_HUGETLB|VM_MERGEABLE)) == VM_HUGETLB". I am a newbie to Linux kernel, do you have any good suggestions on this situation? Thank you Wenwei 2015-07-03 5:49 GMT+08:00 Scott Wood <scottwood@xxxxxxxxxxxxx>: > On Wed, 2015-06-10 at 14:27 +0800, Wenwei Tao wrote: >> Hugetlb VMAs are not mergeable, that means a VMA couldn't have VM_HUGETLB >> and >> VM_MERGEABLE been set in the same time. So we use VM_HUGETLB to indicate new >> mergeable VMAs. Because of that a VMA which has VM_HUGETLB been set is a >> hugetlb >> VMA only if it doesn't have VM_MERGEABLE been set in the same time. > > Eww. > > If you must overload such bit combinations, please hide it behind a > vm_is_hugetlb() function. > > -Scott > -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html