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, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>