mirror of
https://github.com/torvalds/linux.git
synced 2024-12-30 14:52:05 +00:00
f8c9301fa5
During compaction, update_nr_listpages() has been used to count remaining non-migrated and free pages after a call to migrage_pages(). The freepages counting has become unneccessary, and it turns out that migratepages counting is also unnecessary in most cases. The only situation when it's needed to count cc->migratepages is when migrate_pages() returns with a negative error code. Otherwise, the non-negative return value is the number of pages that were not migrated, which is exactly the count of remaining pages in the cc->migratepages list. Furthermore, any non-zero count is only interesting for the tracepoint of mm_compaction_migratepages events, because after that all remaining unmigrated pages are put back and their count is set to 0. This patch therefore removes update_nr_listpages() completely, and changes the tracepoint definition so that the manual counting is done only when the tracepoint is enabled, and only when migrate_pages() returns a negative error code. Furthermore, migrate_pages() and the tracepoints won't be called when there's nothing to migrate. This potentially avoids some wasted cycles and reduces the volume of uninteresting mm_compaction_migratepages events where "nr_migrated=0 nr_failed=0". In the stress-highalloc mmtest, this was about 75% of the events. The mm_compaction_isolate_migratepages event is better for determining that nothing was isolated for migration, and this one was just duplicating the info. Signed-off-by: Vlastimil Babka <vbabka@suse.cz> Reviewed-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> Cc: Minchan Kim <minchan@kernel.org> Cc: Mel Gorman <mgorman@suse.de> Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com> Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Acked-by: Michal Nazarewicz <mina86@mina86.com> Cc: Christoph Lameter <cl@linux.com> Cc: Rik van Riel <riel@redhat.com> Acked-by: David Rientjes <rientjes@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
---|---|---|
.. | ||
9p.h | ||
asoc.h | ||
bcache.h | ||
block.h | ||
btrfs.h | ||
compaction.h | ||
context_tracking.h | ||
ext3.h | ||
ext4.h | ||
f2fs.h | ||
filelock.h | ||
filemap.h | ||
gfpflags.h | ||
gpio.h | ||
host1x.h | ||
hswadsp.h | ||
i2c.h | ||
intel-sst.h | ||
iommu.h | ||
irq.h | ||
jbd2.h | ||
jbd.h | ||
kmem.h | ||
kvm.h | ||
lock.h | ||
mce.h | ||
migrate.h | ||
module.h | ||
napi.h | ||
net.h | ||
nmi.h | ||
oom.h | ||
pagemap.h | ||
power_cpu_migrate.h | ||
power.h | ||
printk.h | ||
random.h | ||
ras.h | ||
rcu.h | ||
regmap.h | ||
regulator.h | ||
rpm.h | ||
sched.h | ||
scsi.h | ||
signal.h | ||
skb.h | ||
sock.h | ||
spi.h | ||
sunrpc.h | ||
swiotlb.h | ||
syscalls.h | ||
target.h | ||
task.h | ||
timer.h | ||
udp.h | ||
v4l2.h | ||
vmscan.h | ||
workqueue.h | ||
writeback.h | ||
xen.h |