Revision 64165b1affc5bc16231ac971e66aae7d68d57f2c authored by Hugh Dickins on 19 April 2019, 00:50:09 UTC, committed by Linus Torvalds on 19 April 2019, 16:46:04 UTC
The old try_to_unuse() implementation was driven by find_next_to_unuse(), which terminated as soon as all the swap had been freed. Add inuse_pages checks now (alongside signal_pending()) to stop scanning mms and swap_map once finished. The same ought to be done in shmem_unuse() too, but never was before, and needs a different interface: so leave it as is for now. Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1904081258200.1523@eggly.anvils Fixes: b56a2d8af914 ("mm: rid swapoff of quadratic complexity") Signed-off-by: Hugh Dickins <hughd@google.com> Cc: "Alex Xu (Hello71)" <alex_y_xu@yahoo.ca> Cc: Huang Ying <ying.huang@intel.com> Cc: Kelley Nielsen <kelleynnn@gmail.com> Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru> Cc: Rik van Riel <riel@surriel.com> Cc: Vineeth Pillai <vpillai@digitalocean.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent dd862de
File | Mode | Size |
---|---|---|
Kconfig | -rw-r--r-- | 3.5 KB |
Makefile | -rw-r--r-- | 542 bytes |
acl.c | -rw-r--r-- | 6.6 KB |
acl.h | -rw-r--r-- | 1.5 KB |
balloc.c | -rw-r--r-- | 25.7 KB |
bitmap.c | -rw-r--r-- | 2.7 KB |
block_validity.c | -rw-r--r-- | 6.1 KB |
dir.c | -rw-r--r-- | 16.9 KB |
ext4.h | -rw-r--r-- | 114.0 KB |
ext4_extents.h | -rw-r--r-- | 8.6 KB |
ext4_jbd2.c | -rw-r--r-- | 8.0 KB |
ext4_jbd2.h | -rw-r--r-- | 15.2 KB |
extents.c | -rw-r--r-- | 161.0 KB |
extents_status.c | -rw-r--r-- | 51.3 KB |
extents_status.h | -rw-r--r-- | 7.9 KB |
file.c | -rw-r--r-- | 13.3 KB |
fsmap.c | -rw-r--r-- | 19.7 KB |
fsmap.h | -rw-r--r-- | 2.0 KB |
fsync.c | -rw-r--r-- | 4.7 KB |
hash.c | -rw-r--r-- | 6.2 KB |
ialloc.c | -rw-r--r-- | 39.6 KB |
indirect.c | -rw-r--r-- | 43.0 KB |
inline.c | -rw-r--r-- | 49.3 KB |
inode.c | -rw-r--r-- | 179.7 KB |
ioctl.c | -rw-r--r-- | 29.2 KB |
mballoc.c | -rw-r--r-- | 146.3 KB |
mballoc.h | -rw-r--r-- | 5.3 KB |
migrate.c | -rw-r--r-- | 16.8 KB |
mmp.c | -rw-r--r-- | 9.9 KB |
move_extent.c | -rw-r--r-- | 20.7 KB |
namei.c | -rw-r--r-- | 101.5 KB |
page-io.c | -rw-r--r-- | 13.8 KB |
readpage.c | -rw-r--r-- | 7.5 KB |
resize.c | -rw-r--r-- | 59.9 KB |
super.c | -rw-r--r-- | 171.7 KB |
symlink.c | -rw-r--r-- | 1.7 KB |
sysfs.c | -rw-r--r-- | 12.1 KB |
truncate.h | -rw-r--r-- | 1.5 KB |
xattr.c | -rw-r--r-- | 81.9 KB |
xattr.h | -rw-r--r-- | 7.2 KB |
xattr_security.c | -rw-r--r-- | 1.6 KB |
xattr_trusted.c | -rw-r--r-- | 1.2 KB |
xattr_user.c | -rw-r--r-- | 1.2 KB |
Computing file changes ...