cregit-Linux how code gets into the kernel

Release 4.7 include/linux/khugepaged.h

Directory: include/linux
#ifndef _LINUX_KHUGEPAGED_H

#define _LINUX_KHUGEPAGED_H

#include <linux/sched.h> /* MMF_VM_HUGEPAGE */

#ifdef CONFIG_TRANSPARENT_HUGEPAGE
extern int __khugepaged_enter(struct mm_struct *mm);
extern void __khugepaged_exit(struct mm_struct *mm);
extern int khugepaged_enter_vma_merge(struct vm_area_struct *vma,
				      unsigned long vm_flags);


#define khugepaged_enabled()					       \
	(transparent_hugepage_flags &                                  \
         ((1<<TRANSPARENT_HUGEPAGE_FLAG) |                     \
          (1<<TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG)))

#define khugepaged_always()				\
	(transparent_hugepage_flags &                   \
         (1<<TRANSPARENT_HUGEPAGE_FLAG))

#define khugepaged_req_madv()					\
	(transparent_hugepage_flags &                           \
         (1<<TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG))

#define khugepaged_defrag()					\
	(transparent_hugepage_flags &                           \
         (1<<TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG))


static inline int khugepaged_fork(struct mm_struct *mm, struct mm_struct *oldmm) { if (test_bit(MMF_VM_HUGEPAGE, &oldmm->flags)) return __khugepaged_enter(mm); return 0; }

Contributors

PersonTokensPropCommitsCommitProp
andrea arcangeliandrea arcangeli38100.00%1100.00%
Total38100.00%1100.00%


static inline void khugepaged_exit(struct mm_struct *mm) { if (test_bit(MMF_VM_HUGEPAGE, &mm->flags)) __khugepaged_exit(mm); }

Contributors

PersonTokensPropCommitsCommitProp
andrea arcangeliandrea arcangeli29100.00%1100.00%
Total29100.00%1100.00%


static inline int khugepaged_enter(struct vm_area_struct *vma, unsigned long vm_flags) { if (!test_bit(MMF_VM_HUGEPAGE, &vma->vm_mm->flags)) if ((khugepaged_always() || (khugepaged_req_madv() && (vm_flags & VM_HUGEPAGE))) && !(vm_flags & VM_NOHUGEPAGE)) if (__khugepaged_enter(vma->vm_mm)) return -ENOMEM; return 0; }

Contributors

PersonTokensPropCommitsCommitProp
andrea arcangeliandrea arcangeli6691.67%266.67%
david rientjesdavid rientjes68.33%133.33%
Total72100.00%3100.00%

#else /* CONFIG_TRANSPARENT_HUGEPAGE */
static inline int khugepaged_fork(struct mm_struct *mm, struct mm_struct *oldmm) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
andrea arcangeliandrea arcangeli20100.00%1100.00%
Total20100.00%1100.00%


static inline void khugepaged_exit(struct mm_struct *mm) { }

Contributors

PersonTokensPropCommitsCommitProp
andrea arcangeliandrea arcangeli11100.00%1100.00%
Total11100.00%1100.00%


static inline int khugepaged_enter(struct vm_area_struct *vma, unsigned long vm_flags) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
andrea arcangeliandrea arcangeli1578.95%150.00%
david rientjesdavid rientjes421.05%150.00%
Total19100.00%2100.00%


static inline int khugepaged_enter_vma_merge(struct vm_area_struct *vma, unsigned long vm_flags) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
andrea arcangeliandrea arcangeli1578.95%150.00%
david rientjesdavid rientjes421.05%150.00%
Total19100.00%2100.00%

#endif /* CONFIG_TRANSPARENT_HUGEPAGE */ #endif /* _LINUX_KHUGEPAGED_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
andrea arcangeliandrea arcangeli27093.75%266.67%
david rientjesdavid rientjes186.25%133.33%
Total288100.00%3100.00%
Directory: include/linux
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
{% endraw %}