lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 7 Jan 2016 11:54:04 +0100
From:	Michal Hocko <mhocko@...nel.org>
To:	Vlastimil Babka <vbabka@...e.cz>
Cc:	Andrew Morton <akpm@...ux-foundation.org>, linux-mm@...ck.org,
	linux-kernel@...r.kernel.org, Joonsoo Kim <iamjoonsoo.kim@....com>,
	Minchan Kim <minchan@...nel.org>,
	Sasha Levin <sasha.levin@...cle.com>,
	"Kirill A. Shutemov" <kirill.shutemov@...ux.intel.com>,
	Mel Gorman <mgorman@...e.de>, Hugh Dickins <hughd@...gle.com>
Subject: Re: [PATCH v3 12/14] mm, page_owner: track and print last migrate
 reason

On Fri 18-12-15 10:03:24, Vlastimil Babka wrote:
> During migration, page_owner info is now copied with the rest of the page, so
> the stacktrace leading to free page allocation during migration is overwritten.
> For debugging purposes, it might be however useful to know that the page has
> been migrated since its initial allocation. This might happen many times during
> the lifetime for different reasons and fully tracking this, especially with
> stacktraces would incur extra memory costs. As a compromise, store and print
> the migrate_reason of the last migration that occurred to the page. This is
> enough to distinguish compaction, numa balancing etc.

So you know that the page has been migrated because of compaction the
last time. You do not know anything about the previous migrations
though. How would you use that information during debugging? Wouldn't it
be sufficient to know that the page has been migrated (or count how many
times) instead? That would lead to less code and it might be sufficient
for practical use.

> Example page_owner entry after the patch:
> 
> Page allocated via order 0, mask 0x24213ca(GFP_HIGHUSER_MOVABLE|GFP_COLD|GFP_NOWARN|GFP_NORETRY)
> PFN 674308 type Movable Block 1317 type Movable Flags 0x1fffff80010068(uptodate|lru|active|mappedtodisk)
>  [<ffffffff81164e9a>] __alloc_pages_nodemask+0x15a/0xa30
>  [<ffffffff811ab938>] alloc_pages_current+0x88/0x120
>  [<ffffffff8115bc46>] __page_cache_alloc+0xe6/0x120
>  [<ffffffff81168b9b>] __do_page_cache_readahead+0xdb/0x200
>  [<ffffffff81168df5>] ondemand_readahead+0x135/0x260
>  [<ffffffff81168f8c>] page_cache_async_readahead+0x6c/0x70
>  [<ffffffff8115d5f8>] generic_file_read_iter+0x378/0x590
>  [<ffffffff811d12a7>] __vfs_read+0xa7/0xd0
> Page has been migrated, last migrate reason: compaction
> 
> Signed-off-by: Vlastimil Babka <vbabka@...e.cz>
> Cc: Joonsoo Kim <iamjoonsoo.kim@....com>
> Cc: Minchan Kim <minchan@...nel.org>
> Cc: Sasha Levin <sasha.levin@...cle.com>
> Cc: "Kirill A. Shutemov" <kirill.shutemov@...ux.intel.com>
> Cc: Mel Gorman <mgorman@...e.de>
> Cc: Michal Hocko <mhocko@...e.cz>
> Cc: Hugh Dickins <hughd@...gle.com>
> ---
>  include/linux/migrate.h    |  6 +++++-
>  include/linux/page_ext.h   |  1 +
>  include/linux/page_owner.h |  9 +++++++++
>  mm/debug.c                 | 11 +++++++++++
>  mm/migrate.c               | 10 +++++++---
>  mm/page_owner.c            | 17 +++++++++++++++++
>  6 files changed, 50 insertions(+), 4 deletions(-)
[...]
-- 
Michal Hocko
SUSE Labs
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ