Zhaoyang Huang
f472a59aa1
mm: fix a race on nr_swap_pages
...
commit b50da6e9f42ade19141f6cf8870bb2312b055aa3 upstream.
The scenario on which "Free swap = -4kB" happens in my system, which is caused
by several get_swap_pages racing with each other and show_swap_cache_info
happens simutaniously. No need to add a lock on get_swap_page_of_type as we
remove "Presub/PosAdd" here.
ProcessA ProcessB ProcessC
ngoals = 1 ngoals = 1
avail = nr_swap_pages(1) avail = nr_swap_pages(1)
nr_swap_pages(1) -= ngoals
nr_swap_pages(0) -= ngoals
nr_swap_pages = -1
Link: https://lkml.kernel.org/r/1607050340-4535-1-git-send-email-zhaoyang.huang@unisoc.com
Signed-off-by: Zhaoyang Huang <zhaoyang.huang@unisoc.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Hugh Dickins <hughd@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-01-30 13:55:19 +01:00
..
2021-01-27 11:55:23 +01:00
2020-09-24 13:43:39 -06:00
2019-09-04 07:42:01 -04:00
2019-07-12 12:24:03 -07:00
2020-07-10 13:54:00 -07:00
2020-08-12 10:57:57 -07:00
2020-09-01 09:19:43 +02:00
2020-11-14 11:26:03 -08:00
2017-11-02 11:10:55 +01:00
2020-10-16 11:11:14 -07:00
2020-10-13 18:38:29 -07:00
2020-10-13 18:38:32 -07:00
2020-01-31 10:30:38 -08:00
2020-10-13 18:38:29 -07:00
2019-07-12 11:05:43 -07:00
2020-12-11 14:02:14 -08:00
2020-06-09 09:39:14 -07:00
2020-08-14 19:56:56 -07:00
2020-10-18 09:27:09 -07:00
2020-12-30 11:53:54 +01:00
2020-10-16 11:11:18 -07:00
2020-08-12 10:58:02 -07:00
2020-12-30 11:53:55 +01:00
2020-12-06 10:19:07 -08:00
2021-01-19 18:27:21 +01:00
2020-10-16 11:11:16 -07:00
2020-12-30 11:53:54 +01:00
2020-10-16 11:11:19 -07:00
2019-06-19 17:09:08 +02:00
2020-08-07 11:33:26 -07:00
2020-12-06 10:19:07 -08:00
2020-06-14 01:57:21 +09:00
2020-10-16 11:11:22 -07:00
2020-10-13 18:38:27 -07:00
2020-10-15 07:49:40 +02:00
2020-12-06 10:19:07 -08:00
2020-08-12 10:57:59 -07:00
2020-12-30 11:53:55 +01:00
2020-10-13 18:38:27 -07:00
2020-04-02 09:35:29 -07:00
2020-10-15 07:49:46 +02:00
2021-01-27 11:55:14 +01:00
2019-09-24 15:54:08 -07:00
2021-01-06 14:56:50 +01:00
2020-12-30 11:53:55 +01:00
2020-12-30 11:53:54 +01:00
2020-11-02 12:14:19 -08:00
2020-10-13 18:38:34 -07:00
2020-11-02 12:14:18 -08:00
2017-11-02 11:10:55 +01:00
2021-01-27 11:55:14 +01:00
2020-10-13 18:38:29 -07:00
2020-09-19 13:13:38 -07:00
2020-08-07 11:33:26 -07:00
2020-12-06 10:19:07 -08:00
2020-06-09 09:39:14 -07:00
2020-10-16 11:11:17 -07:00
2017-11-02 11:10:55 +01:00
2020-09-04 12:46:07 +01:00
2020-08-07 11:33:27 -07:00
2020-06-09 09:39:14 -07:00
2020-10-18 09:27:10 -07:00
2020-10-13 18:38:35 -07:00
2021-01-30 13:55:19 +01:00
2020-10-13 18:38:30 -07:00
2020-04-07 10:43:40 -07:00
2020-06-08 11:05:55 -07:00
2020-10-13 18:38:30 -07:00
2020-10-16 11:11:19 -07:00
2020-10-16 11:11:19 -07:00
2020-10-16 11:11:17 -07:00
2020-10-16 11:11:19 -07:00
2020-06-09 09:39:13 -07:00
2020-08-14 19:56:56 -07:00
2021-01-12 20:18:22 +01:00
2020-06-09 09:39:14 -07:00
2020-08-12 10:57:55 -07:00
2020-08-12 10:57:55 -07:00
2020-08-12 10:57:55 -07:00
2020-08-12 10:57:55 -07:00
2020-10-30 23:02:28 +00:00
2020-08-07 11:33:26 -07:00
2020-06-09 09:39:13 -07:00
2021-01-19 18:27:21 +01:00
2020-06-09 09:39:14 -07:00
2020-10-17 13:49:08 -06:00
2020-12-30 11:53:55 +01:00
2020-08-21 09:52:53 -07:00
2020-10-16 11:11:15 -07:00
2020-10-16 11:11:19 -07:00
2020-08-07 11:33:29 -07:00
2020-08-12 10:57:58 -07:00
2020-10-16 11:11:19 -07:00
2020-12-06 10:19:07 -08:00
2020-08-07 11:33:24 -07:00
2021-01-30 13:55:16 +01:00
2020-08-07 11:33:27 -07:00
2020-10-16 11:11:18 -07:00
2020-06-03 20:09:48 -07:00
2020-10-13 18:38:30 -07:00
2020-10-16 11:11:19 -07:00
2020-10-13 18:38:33 -07:00
2021-01-30 13:55:19 +01:00
2020-11-02 12:14:19 -08:00
2020-08-12 10:57:58 -07:00
2020-08-12 10:57:55 -07:00
2020-10-16 11:11:17 -07:00
2020-06-10 19:14:18 -07:00
2021-01-19 18:27:21 +01:00
2020-04-02 09:35:31 -07:00
2021-01-19 18:27:29 +01:00
2020-10-16 11:11:17 -07:00
2020-10-20 14:39:37 -07:00
2020-12-30 11:54:10 +01:00
2020-10-13 18:38:34 -07:00
2020-08-12 10:57:58 -07:00
2020-12-06 10:19:07 -08:00
2020-04-07 10:43:41 -07:00