Re: [PATCH 1/2] mm: rename mm->nr_ptes to mm->nr_pgtables

From: Kirill A. Shutemov
Date: Wed Jan 14 2015 - 09:35:14 EST


On Wed, Jan 14, 2015 at 12:45:38PM +0300, Cyrill Gorcunov wrote:
> On Tue, Jan 13, 2015 at 01:49:10PM -0800, Dave Hansen wrote:
> > On 01/13/2015 01:43 PM, Cyrill Gorcunov wrote:
> > > On Tue, Jan 13, 2015 at 09:14:15PM +0200, Kirill A. Shutemov wrote:
> > >> We're going to account pmd page tables too. Let's rename mm->nr_pgtables
> > >> to something more generic.
> > >>
> > >> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
> > >> --- a/fs/proc/task_mmu.c
> > >> +++ b/fs/proc/task_mmu.c
> > >> @@ -64,7 +64,7 @@ void task_mem(struct seq_file *m, struct mm_struct *mm)
> > >> data << (PAGE_SHIFT-10),
> > >> mm->stack_vm << (PAGE_SHIFT-10), text, lib,
> > >> (PTRS_PER_PTE * sizeof(pte_t) *
> > >> - atomic_long_read(&mm->nr_ptes)) >> 10,
> > >> + atomic_long_read(&mm->nr_pgtables)) >> 10,
> > >
> > > This implies that (PTRS_PER_PTE * sizeof(pte_t)) = (PTRS_PER_PMD * sizeof(pmd_t))
> > > which might be true for all archs, right?

I doubt it. And even if it's true now, nobody can guarantee that this will
be true for all future configurations.

> > I wonder if powerpc is OK on this front today. This diagram:
> >
> > http://linux-mm.org/PageTableStructure
> >
> > says that they use a 128-byte "pte" table when mapping 16M pages. I
> > wonder if they bump mm->nr_ptes for these.
>
> It looks like this doesn't matter. The statistics here prints the size
> of summary memory occupied for pte_t entries, here PTRS_PER_PTE * sizeof(pte_t)
> is only valid for, once we start accounting pmd into same counter it implies
> that PTRS_PER_PTE == PTRS_PER_PMD, which is not true for all archs
> (if I understand the idea of accounting here right).

Yeah. good catch. Thank you.

I'll respin with separate counter for pmd tables. It seems the best
option.

--
Kirill A. Shutemov
--
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/