Messages in this thread | | | Date | Mon, 20 Jan 2014 11:26:09 -0600 | From | Alex Thorlton <> | Subject | Re: [RFC PATCHv2 1/2] Add mm flag to control THP |
| |
On Sun, Jan 19, 2014 at 01:41:34AM +0200, Kirill A. Shutemov wrote: > On Thu, Jan 16, 2014 at 03:01:43PM -0600, Alex Thorlton wrote: > > diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h > > index 91672e2..475f59f 100644 > > --- a/include/linux/huge_mm.h > > +++ b/include/linux/huge_mm.h > > @@ -1,6 +1,8 @@ > > #ifndef _LINUX_HUGE_MM_H > > #define _LINUX_HUGE_MM_H > > > > +#include <linux/sched.h> > > + > > Hm, now <linux/mm.h> depends on <linux/sched.h>. It doesn't look as a good > idea. > > Why do we have MMF_* defines in <linux/sched.h>? > Wouldn't it more appropriate to put them in <linux/mm_types.h>?
I'm not sure about that. I just placed my definitions where everything else was defined. It might make more sense to have these in mm_types.h, though that's a separate effort. For now, I don't think I have a choice but to include sched.h here, but it does seem to make sense that I should be able to see the defined mm flags from huge_mm.h, without having to include sched.h. I'm sure there are other places where this applies as well.
> > extern int do_huge_pmd_anonymous_page(struct mm_struct *mm, > > struct vm_area_struct *vma, > > unsigned long address, pmd_t *pmd, > > @@ -74,7 +76,8 @@ extern bool is_vma_temporary_stack(struct vm_area_struct *vma); > > (1<<TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG) && \ > > ((__vma)->vm_flags & VM_HUGEPAGE))) && \ > > !((__vma)->vm_flags & VM_NOHUGEPAGE) && \ > > - !is_vma_temporary_stack(__vma)) > > + !is_vma_temporary_stack(__vma) && \ > > + !test_bit(MMF_THP_DISABLE, &(__vma)->vm_mm->flags)) > > #define transparent_hugepage_defrag(__vma) \ > > ((transparent_hugepage_flags & \ > > (1<<TRANSPARENT_HUGEPAGE_DEFRAG_FLAG)) || \ > > @@ -227,7 +230,6 @@ static inline int do_huge_pmd_numa_page(struct mm_struct *mm, struct vm_area_str > > { > > return 0; > > } > > - > > #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ > > > > #endif /* _LINUX_HUGE_MM_H */ > > Why?
Are you asking about the line I removed there? That was probably an accident. I'll fix that
- Alex
| |