* RE: + mm-fix-false-positive-warning-on-exit-due-mm_nr_pmdsmm.patch added to -mm tree
[not found] <54c69dbb.9IbFgxgVUFfaIvqP%akpm@linux-foundation.org>
@ 2015-02-09 14:40 ` Kirill A. Shutemov
0 siblings, 0 replies; only message in thread
From: Kirill A. Shutemov @ 2015-02-09 14:40 UTC (permalink / raw)
To: akpm
Cc: kirill.shutemov, gxt, james.hogan, linux, nm, tyler.baker,
mm-commits, linux-mm
akpm@ wrote:
>
> The patch titled
> Subject: mm: fix false-positive warning on exit due mm_nr_pmds(mm)
> has been added to the -mm tree. Its filename is
> mm-fix-false-positive-warning-on-exit-due-mm_nr_pmdsmm.patch
>
> This patch should soon appear at
> http://ozlabs.org/~akpm/mmots/broken-out/mm-fix-false-positive-warning-on-exit-due-mm_nr_pmdsmm.patch
> and later at
> http://ozlabs.org/~akpm/mmotm/broken-out/mm-fix-false-positive-warning-on-exit-due-mm_nr_pmdsmm.patch
>
> Before you just go and hit "reply", please:
> a) Consider who else should be cc'ed
> b) Prefer to cc a suitable mailing list as well
> c) Ideally: find the original patch on the mailing list and do a
> reply-to-all to that, adding suitable additional cc's
>
> *** Remember to use Documentation/SubmitChecklist when testing your code ***
>
> The -mm tree is included into linux-next and is updated
> there every 3-4 working days
>
> ------------------------------------------------------
> From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
> Subject: mm: fix false-positive warning on exit due mm_nr_pmds(mm)
>
> The problem is that we check nr_ptes/nr_pmds in exit_mmap() which happens
> *before* pgd_free(). And if an arch does pte/pmd allocation in
> pgd_alloc() and frees them in pgd_free() we see offset in counters by the
> time of the checks.
>
> We tried to workaround this by offsetting expected counter value according
> to FIRST_USER_ADDRESS for both nr_pte and nr_pmd in exit_mmap(). But it
> doesn't work in some cases:
>
> 1. ARM with LPAE enabled also has non-zero USER_PGTABLES_CEILING, but
> upper addresses occupied with huge pmd entries, so the trick with
> offsetting expected counter value will get really ugly: we will have
> to apply it nr_pmds, but not nr_ptes.
>
> 2. Metag has non-zero FIRST_USER_ADDRESS, but doesn't do allocation
> pte/pmd page tables allocation in pgd_alloc(), just setup a pgd entry
> which is allocated at boot and shared accross all processes.
>
> The proposal is to move the check to check_mm() which happens *after*
> pgd_free() and do proper accounting during pgd_alloc() and pgd_free()
> which would bring counters to zero if nothing leaked.
>
> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
> Reported-by: Tyler Baker <tyler.baker@linaro.org>
> Tested-by: Nishanth Menon <nm@ti.com>
> Cc: Russell King <linux@arm.linux.org.uk>
> Cc: James Hogan <james.hogan@imgtec.com>
> Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>
> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> ---
Small fix up for the patch.
^ permalink raw reply [flat|nested] only message in thread