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:	Wed, 20 Nov 2013 18:51:08 +0100
From:	Andrea Arcangeli <aarcange@...hat.com>
To:	Andrew Morton <akpm@...ux-foundation.org>
Cc:	linux-mm@...ck.org, linux-kernel@...r.kernel.org,
	Khalid Aziz <khalid.aziz@...cle.com>,
	Pravin Shelar <pshelar@...ira.com>,
	Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
	Ben Hutchings <bhutchings@...arflare.com>,
	Christoph Lameter <cl@...ux.com>,
	Johannes Weiner <jweiner@...hat.com>,
	Mel Gorman <mgorman@...e.de>, Rik van Riel <riel@...hat.com>,
	Andi Kleen <andi@...stfloor.org>,
	Minchan Kim <minchan@...nel.org>,
	Linus Torvalds <torvalds@...ux-foundation.org>
Subject: [PATCH 0/8] mm: hugetlbfs: fix hugetlbfs optimization v3

Changes since v2:

1) optimize away a few more locked ops in the get_page/put_page
   hugetlbfs and slab paths (see 3/8 and 4/8).

   3/8 is the least trivial addition to the series as we now are
   running PageSlab and PageHeadHuge on random page structure without
   holding any reference count on this. A smp_rmb() if any of the two
   checks succeeds is what is supposed to make it safe doing so and
   it's lighter weight than get_page_unless_zero (hence the supposed
   optimization out of it). 3/8 makes no difference whatsoever to the
   speed of the THP case. It's unclear if 3/8 is worth it but it seems
   every bit is affecting performance for directio over hugetlbfs with
   >8GB/sec storage devices so I thought of trying it. 4/8 is quite
   self explanatory and it removes some smp_rmb which is not needed
   with the current layout of the struct page.

2) two nice cleanups from Andrew

3) Removed the PageHeadHuge export as it's not needed right now

Andrea Arcangeli (6):
  mm: hugetlbfs: fix hugetlbfs optimization
  mm: hugetlb: use get_page_foll in follow_hugetlb_page
  mm: hugetlbfs: move the put/get_page slab and hugetlbfs optimization
    in a faster path
  mm: thp: optimize compound_trans_huge
  mm: tail page refcounting optimization for slab and hugetlbfs
  mm/hugetlb.c: defer PageHeadHuge() symbol export

Andrew Morton (2):
  mm/hugetlb.c: simplify PageHeadHuge() and PageHuge()
  mm/swap.c: reorganize put_compound_page()

 include/linux/huge_mm.h |  23 ++++
 include/linux/mm.h      |  32 +++++-
 mm/hugetlb.c            |  20 +++-
 mm/internal.h           |   3 +-
 mm/swap.c               | 284 +++++++++++++++++++++++++++++-------------------
 5 files changed, 240 insertions(+), 122 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