No description
  • C 96.9%
  • Assembly 0.9%
  • Rust 0.6%
  • Shell 0.6%
  • Python 0.5%
  • Other 0.3%
Find a file
Kalesh Singh 3af0191a59 Multi-gen LRU: fix workingset accounting
On Android app cycle workloads, MGLRU showed a significant reduction in
workingset refaults although pgpgin/pswpin remained relatively unchanged. 
This indicated MGLRU may be undercounting workingset refaults.

This has impact on userspace programs, like Android's LMKD, that monitor
workingset refault statistics to detect thrashing.

It was found that refaults were only accounted if the MGLRU shadow entry
was for a recently evicted folio.  However, recently evicted folios should
be accounted as workingset activation, and refaults should be accounted
regardless of recency.

Fix MGLRU's workingset refault and activation accounting to more closely
match that of the conventional active/inactive LRU.

Link: https://lkml.kernel.org/r/20230523205922.3852731-1-kaleshsingh@google.com
Fixes: ac35a49023 ("mm: multi-gen LRU: minimal implementation")
Signed-off-by: Kalesh Singh <kaleshsingh@google.com>
Reported-by: Charan Teja Kalla <quic_charante@quicinc.com>
Acked-by: Yu Zhao <yuzhao@google.com>
Cc: Brian Geffon <bgeffon@google.com>
Cc: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
Cc: Oleksandr Natalenko <oleksandr@natalenko.name>
Cc: Suren Baghdasaryan <surenb@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
History 2023-06-09 16:25:46 -07:00
arch mm/gup: remove vmas parameter from pin_user_pages() 2023-06-09 16:25:26 -07:00
block block: make bio_check_eod work for zero sized devices 2023-05-24 08:19:26 -06:00
certs KEYS: Add missing function documentation 2023-04-24 16:15:52 +03:00
crypto This push fixes the following problems: 2023-05-07 10:57:14 -07:00
Documentation mm/memcontrol: export memcg.swap watermark via sysfs for v2 memcg 2023-06-09 16:25:43 -07:00
drivers mm/gup: remove vmas parameter from pin_user_pages() 2023-06-09 16:25:26 -07:00
fs mm/gup: remove vmas parameter from get_user_pages_remote() 2023-06-09 16:25:26 -07:00
include maple_tree: relocate the declaration of mas_empty_area_rev(). 2023-06-09 16:25:46 -07:00
init cachestat: implement cachestat syscall 2023-06-09 16:25:16 -07:00
io_uring mm/gup: remove vmas parameter from pin_user_pages() 2023-06-09 16:25:26 -07:00
ipc Merge branch 'work.namespace' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2023-02-24 19:20:07 -08:00
kernel mm/gup: remove vmas parameter from get_user_pages_remote() 2023-06-09 16:25:26 -07:00
lib maple_tree: simplify and clean up mas_wr_node_store() 2023-06-09 16:25:45 -07:00
LICENSES LICENSES: Add the copyleft-next-0.3.1 license 2022-11-08 15:44:01 +01:00
mm Multi-gen LRU: fix workingset accounting 2023-06-09 16:25:46 -07:00
net mm/gup: remove vmas parameter from pin_user_pages() 2023-06-09 16:25:26 -07:00
rust Rust changes for v6.4 2023-04-30 11:20:22 -07:00
samples kmemleak-test: drop __init to get better backtrace 2023-06-09 16:25:40 -07:00
scripts Locking changes in v6.4: 2023-05-05 12:56:55 -07:00
security mm/gup: remove vmas parameter from get_user_pages_remote() 2023-06-09 16:25:26 -07:00
sound ALSA: hda/realtek: Enable headset onLenovo M70/M90 2023-05-24 14:18:59 +02:00
tools selftests: cgroup: fix unexpected failure on test_memcg_low 2023-06-09 16:25:39 -07:00
usr initramfs: Check negative timestamp to prevent broken cpio archive 2023-04-16 17:37:01 +09:00
virt mm/gup: remove vmas parameter from get_user_pages_remote() 2023-06-09 16:25:26 -07:00
.clang-format cxl for v6.4 2023-04-30 11:51:51 -07:00
.cocciconfig scripts: add Linux .cocciconfig for coccinelle 2016-07-22 12:13:39 +02:00
.get_maintainer.ignore get_maintainer: add Alan to .get_maintainer.ignore 2022-08-20 15:17:44 -07:00
.gitattributes .gitattributes: use 'dts' diff driver for *.dtso files 2023-02-26 15:28:23 +09:00
.gitignore linux-kselftest-kunit-6.4-rc1 2023-04-24 12:31:32 -07:00
.mailmap mailmap: add entries for Nikolay Aleksandrov 2023-05-17 09:35:05 +01:00
.rustfmt.toml rust: add .rustfmt.toml 2022-09-28 09:02:20 +02:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS MAINTAINERS: sctp: move Neil to CREDITS 2023-05-12 08:51:32 +01:00
Kbuild Kbuild updates for v6.1 2022-10-10 12:00:45 -07:00
Kconfig kbuild: ensure full rebuild when the compiler is updated 2020-05-12 13:28:33 +09:00
MAINTAINERS selftests: add selftests for cachestat 2023-06-09 16:25:17 -07:00
Makefile Linux 6.4-rc4 2023-05-28 07:49:00 -04:00
README Drop all 00-INDEX files from Documentation/ 2018-09-09 15:08:58 -06:00

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.