[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20170601093245.29238-1-jack@suse.cz>
Date: Thu, 1 Jun 2017 11:32:10 +0200
From: Jan Kara <jack@...e.cz>
To: <linux-mm@...ck.org>
Cc: Hugh Dickins <hughd@...gle.com>,
David Howells <dhowells@...hat.com>,
linux-afs@...ts.infradead.org,
Ryusuke Konishi <konishi.ryusuke@....ntt.co.jp>,
linux-nilfs@...r.kernel.org, Bob Peterson <rpeterso@...hat.com>,
cluster-devel@...hat.com, Jaegeuk Kim <jaegeuk@...nel.org>,
linux-f2fs-devel@...ts.sourceforge.net, tytso@....edu,
linux-ext4@...r.kernel.org, Ilya Dryomov <idryomov@...il.com>,
"Yan, Zheng" <zyan@...hat.com>, ceph-devel@...r.kernel.org,
linux-btrfs@...r.kernel.org, David Sterba <dsterba@...e.com>,
"Darrick J . Wong" <darrick.wong@...cle.com>,
linux-xfs@...r.kernel.org,
Nadia Yvette Chambers <nyc@...omorphy.com>,
Jan Kara <jack@...e.cz>
Subject: [PATCH 00/35 v1] pagevec API cleanups
Hello,
This series cleans up pagevec API. The original motivation for the series is
the patch "fs: Fix performance regression in clean_bdev_aliases()" however it
has somewhat grown beyond that... The series is pretty large but most of the
patches are trivial in nature. What the series does is:
* Make all pagevec_lookup_ and find_get_ functions update index to where the
search terminated. Currently tagged page lookup did update the index, other
variants did not...
* Implement ranged variants for pagevec_lookup and find_get_ functions. Lot
of callers actually want a ranged lookup and we unnecessarily opencode this
in lot of them.
* Remove nr_pages argument from pagevec_ API since after implementing ranged
lookups everyone just wants to pass PAGEVEC_SIZE there.
The conversion of the APIs for entries variants is not such a clear win as
for the other cases as callers tend to play more complex games with indices
etc. (hello THP). I still think the conversion is worth it for consistency
but I'm open to ideas (including just discarding that part) there.
The series also contains several fixes in the beginning to the bugs that I've
found during these cleanups. I've included them to have a clean base (4.12-rc3)
but those should get merged independently (e.g. ext4 fixes are already sitting
in ext4 tree). Also it is possible to split the series in smaller parts (like
convert one API at a time) however I wanted to post the full series so that
people can get the full picture.
The series can be also obtained from my git tree:
git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs.git find_get_pages_range
Opinions and review welcome!
Honza
Powered by blists - more mailing lists