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]
Message-Id: <20200914130042.11442-1-willy@infradead.org>
Date:   Mon, 14 Sep 2020 14:00:30 +0100
From:   "Matthew Wilcox (Oracle)" <willy@...radead.org>
To:     linux-mm@...ck.org
Cc:     "Matthew Wilcox (Oracle)" <willy@...radead.org>,
        Andrew Morton <akpm@...ux-foundation.org>,
        Hugh Dickins <hughd@...gle.com>,
        William Kucharski <william.kucharski@...cle.com>,
        Johannes Weiner <hannes@...xchg.org>, Jan Kara <jack@...e.cz>,
        Yang Shi <yang.shi@...ux.alibaba.com>,
        Dave Chinner <dchinner@...hat.com>,
        linux-kernel@...r.kernel.org
Subject: [PATCH v2 00/12] Overhaul multi-page lookups for THP

The critical patch to review here is patch 11, "Handle truncates that
split THPs".  This code is shared with shmem, and while xfstests passes
(both with the tmpfs filesystem and with THPs enabled for XFS), it is
terribly subtle.

I posted a similar patch series a few weeks ago [1], but this goes a few
steps further than that one did.  In addition to the unification of
find_get_entries() and pagevec_lookup_entries(), this patch series
includes:

 - Only return the head pages from tagged lookups
 - Factor a lot of common code out of the various batch lookup routines
 - Add mapping_seek_hole_data()
 - Only return head pages from find_get_entries

I also have a patch to iomap to use mapping_seek_hole_data(), but I'm
not including that as part of this batch of patches -- I'll send it
through the iomap tree once mapping_seek_hole_data() lands upstream.

[1] https://lore.kernel.org/linux-mm/20200819184850.24779-1-willy@infradead.org/

Matthew Wilcox (Oracle) (12):
  mm: Make pagecache tagged lookups return only head pages
  mm/shmem: Use pagevec_lookup in shmem_unlock_mapping
  mm/filemap: Add helper for finding pages
  mm/filemap: Add mapping_seek_hole_data
  mm: Add and use find_lock_entries
  mm: Add an 'end' parameter to find_get_entries
  mm: Add an 'end' parameter to pagevec_lookup_entries
  mm: Remove nr_entries parameter from pagevec_lookup_entries
  mm: Pass pvec directly to find_get_entries
  mm: Remove pagevec_lookup_entries
  mm/truncate,shmem: Handle truncates that split THPs
  mm/filemap: Return only head pages from find_get_entries

 include/linux/pagemap.h |   5 +-
 include/linux/pagevec.h |   4 -
 mm/filemap.c            | 267 +++++++++++++++++++++++++++-------------
 mm/internal.h           |   5 +
 mm/shmem.c              | 214 +++++++-------------------------
 mm/swap.c               |  38 +-----
 mm/truncate.c           | 249 ++++++++++++++-----------------------
 7 files changed, 329 insertions(+), 453 deletions(-)

-- 
2.28.0

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ