mm: introduce wrappers to access mm->nr_ptes
Let's add wrappers for ->nr_ptes with the same interface as for nr_pmd and nr_pud. The patch also makes nr_ptes accounting dependent onto CONFIG_MMU. Page table accounting doesn't make sense if you don't have page tables. It's preparation for consolidation of page-table counters in mm_struct. Link: http://lkml.kernel.org/r/20171006100651.44742-1-kirill.shutemov@linux.intel.com Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Acked-by: Michal Hocko <mhocko@suse.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
b4e98d9ac7
commit
c4812909f5
@@ -1680,6 +1680,38 @@ static inline void mm_dec_nr_pmds(struct mm_struct *mm)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MMU
|
||||
static inline void mm_nr_ptes_init(struct mm_struct *mm)
|
||||
{
|
||||
atomic_long_set(&mm->nr_ptes, 0);
|
||||
}
|
||||
|
||||
static inline unsigned long mm_nr_ptes(const struct mm_struct *mm)
|
||||
{
|
||||
return atomic_long_read(&mm->nr_ptes);
|
||||
}
|
||||
|
||||
static inline void mm_inc_nr_ptes(struct mm_struct *mm)
|
||||
{
|
||||
atomic_long_inc(&mm->nr_ptes);
|
||||
}
|
||||
|
||||
static inline void mm_dec_nr_ptes(struct mm_struct *mm)
|
||||
{
|
||||
atomic_long_dec(&mm->nr_ptes);
|
||||
}
|
||||
#else
|
||||
static inline void mm_nr_ptes_init(struct mm_struct *mm) {}
|
||||
|
||||
static inline unsigned long mm_nr_ptes(const struct mm_struct *mm)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void mm_inc_nr_ptes(struct mm_struct *mm) {}
|
||||
static inline void mm_dec_nr_ptes(struct mm_struct *mm) {}
|
||||
#endif
|
||||
|
||||
int __pte_alloc(struct mm_struct *mm, pmd_t *pmd, unsigned long address);
|
||||
int __pte_alloc_kernel(pmd_t *pmd, unsigned long address);
|
||||
|
||||
|
Reference in New Issue
Block a user