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-next>] [day] [month] [year] [list]
Date:	Sun, 15 May 2011 18:20:20 -0400
From:	Stephen Wilson <wilsons@...rt.ca>
To:	Andrew Morton <akpm@...ux-foundation.org>
Cc:	linux-mm@...ck.org, linux-kernel@...r.kernel.org,
	KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com>
Subject: [PATCH v2 0/9] avoid allocation in show_numa_map()

Hi all,

This is version 2 of a patch series[1] aimed at removing repeated
allocation/free cycles happening in show_numa_maps() while we hold a reference
to an mm.  The concern is that performing an allocation while referencing an mm
could lead to a stalemate in the oom killer as previously explained by Hugh
Dickins[2].

This series addresses all issues raised in the previous round and is organized
as follows:

Patches 1-6 convert show_numa_maps() to use the generic walk_page_range()
functionality instead of the mempolicy.c specific page table walking logic.
Also, get_vma_policy() and mpol_to_str() are exported.  This makes the
show_numa_maps() implementation independent of mempolicy.c.

Patch 7 moves show_numa_maps() and supporting routines over to
fs/proc/task_mmu.c.

Finally, patches 8 and 9 provide minor cleanup and eliminate the troublesome
allocation.


These patches are based on mmotm-2011-05-12-15-52 and have been tested on a
dual node NUMA machine.


Thanks,

--
steve

[1] http://lkml.org/lkml/2011/4/27/578
[2] http://lkml.org/lkml/2011/4/25/496


Changes since v1:
	- Fix compilation error when CONFIG_TMPFS=n.

	- Traverse pte's with proper locking and checks.


Stephen Wilson (9):
      mm: export get_vma_policy()
      mm: use walk_page_range() instead of custom page table walking code
      mm: remove MPOL_MF_STATS
      mm: make gather_stats() type-safe and remove forward declaration
      mm: remove check_huge_range()
      mm: declare mpol_to_str() when CONFIG_TMPFS=n
      mm: proc: move show_numa_map() to fs/proc/task_mmu.c
      proc: make struct proc_maps_private truly private
      proc: allocate storage for numa_maps statistics once


 fs/proc/internal.h        |    7 ++
 fs/proc/task_mmu.c        |  204 ++++++++++++++++++++++++++++++++++++++++++++-
 include/linux/mempolicy.h |    7 +-
 include/linux/proc_fs.h   |    8 --
 mm/mempolicy.c            |  164 +-----------------------------------
 5 files changed, 215 insertions(+), 175 deletions(-)

--
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