Re: [RFC PATCHv2 1/2] Add mm flag to control THP

From: Alex Thorlton
Date: Mon Jan 20 2014 - 12:26:08 EST


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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/