BACKPORT: FROMLIST: mm: multigenerational lru: mm_struct list
To scan PTEs for accessed pages, a mm_struct list is maintained for each memcg. When multiple threads traverse the same memcg->mm_list, each of them gets a unique mm_struct and therefore they can run walk_page_range() concurrently to reach page tables of all processes of this memcg. And to skip page tables of processes that have been sleeping since the last walk, the usage of mm_struct is also tracked between context switches. Signed-off-by:Yu Zhao <yuzhao@google.com> Tested-by:
Konstantin Kharlamov <Hi-Angel@yandex.ru> (am from https://lore.kernel.org/patchwork/patch/1478359/) BUG=b:123039911 TEST=Built Change-Id: I25d9eda8c6bdc7c3653b9f210a159d6c247c81e8 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/3132023 Tested-by:
Yu Zhao <yuzhao@chromium.org> Commit-Queue: Yu Zhao <yuzhao@chromium.org> Reviewed-by:
Sergey Senozhatsky <senozhatsky@chromium.org> Reviewed-by:
Alexandre Marciano Gimenez <raging@google.com>
Loading
Please sign in to comment