Linux kernel source tree
Go to file
Suren Baghdasaryan 617a4ba0ec FROMLIST: psi: introduce psi monitor
Psi monitor aims to provide a low-latency short-term pressure
detection mechanism configurable by users. It allows users to
monitor psi metrics growth and trigger events whenever a metric
raises above user-defined threshold within user-defined time window.

Time window and threshold are both expressed in usecs. Multiple psi
resources with different thresholds and window sizes can be monitored
concurrently.

Psi monitors activate when system enters stall state for the monitored
psi metric and deactivate upon exit from the stall state. While system
is in the stall state psi signal growth is monitored at a rate of 10 times
per tracking window. Min window size is 500ms, therefore the min monitoring
interval is 50ms. Max window size is 10s with monitoring interval of 1s.

When activated psi monitor stays active for at least the duration of one
tracking window to avoid repeated activations/deactivations when psi
signal is bouncing.

Notifications to the users are rate-limited to one per tracking window.

Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>

(not upstream yet, latest version published at: https://lore.kernel.org/patchwork/patch/1052418/)

Bug: 127712811
Bug: 129157727
Test: lmkd in PSI mode
Change-Id: I860049d32420485346ad545c4650f990fe0c08e3
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2019-03-22 23:07:14 +00:00
arch ANDROID: cuttlefish_defconfig: Enable CONFIG_PSI 2019-03-22 22:10:05 +00:00
block BACKPORT: sched: loadavg: consolidate LOAD_INT, LOAD_FRAC, CALC_LOAD 2019-03-21 16:25:26 -07:00
certs export.h: remove VMLINUX_SYMBOL() and VMLINUX_SYMBOL_STR() 2018-08-22 23:21:44 +09:00
crypto This is the 4.19.25 stable release 2019-02-23 09:20:46 +01:00
Documentation FROMLIST: psi: introduce psi monitor 2019-03-22 23:07:14 +00:00
drivers FROMLIST: refactor header includes to allow kthread.h inclusion in psi_types.h 2019-03-22 23:07:04 +00:00
firmware kbuild: remove all dummy assignments to obj- 2017-11-18 11:46:06 +09:00
fs UPSTREAM: fs: kernfs: add poll file operation 2019-03-21 16:25:28 -07:00
include FROMLIST: psi: introduce psi monitor 2019-03-22 23:07:14 +00:00
init UPSTREAM: psi: clarify the Kconfig text for the default-disable option 2019-03-21 16:25:27 -07:00
ipc ANDROID: vfs: Add permission2 for filesystems with per mount permissions 2018-12-05 09:48:14 -08:00
kernel FROMLIST: psi: introduce psi monitor 2019-03-22 23:07:14 +00:00
lib This is the 4.19.29 stable release 2019-03-13 14:17:29 -07:00
LICENSES LICENSES: Remove CC-BY-SA-4.0 license text 2018-10-18 11:28:50 +02:00
mm UPSTREAM: psi: pressure stall information for CPU, memory, and IO 2019-03-21 16:25:27 -07:00
net This is the 4.19.30 stable release 2019-03-19 13:24:04 +01:00
samples samples: mei: use /dev/mei0 instead of /dev/mei 2019-02-15 08:10:11 +01:00
scripts This is the 4.19.21 stable release 2019-02-12 20:37:21 +01:00
security This is the 4.19.30 stable release 2019-03-19 13:24:04 +01:00
sound ALSA: hda/realtek: Enable headset MIC of Acer TravelMate X514-51T with ALC255 2019-03-19 13:12:42 +01:00
tools UPSTREAM: delayacct: track delays from thrashing cache pages 2019-03-21 16:25:26 -07:00
usr initramfs: move gen_initramfs_list.sh from scripts/ to usr/ 2018-08-22 23:21:44 +09:00
virt kvm: fix kvm_ioctl_create_device() reference counting (CVE-2019-6974) 2019-02-12 19:47:25 +01:00
.clang-format clang-format: Set IndentWrappedFunctionNames false 2018-08-01 18:38:51 +02:00
.cocciconfig scripts: add Linux .cocciconfig for coccinelle 2016-07-22 12:13:39 +02:00
.get_maintainer.ignore
.gitattributes .gitattributes: set git diff driver for C source code files 2016-10-07 18:46:30 -07:00
.gitignore Kbuild updates for v4.17 (2nd) 2018-04-15 17:21:30 -07:00
.mailmap libnvdimm-for-4.19_misc 2018-08-25 18:13:10 -07:00
build.config.cuttlefish.aarch64 ANDROID: Move from clang r346389b to r349610. 2019-02-12 13:23:13 -08:00
build.config.cuttlefish.x86_64 ANDROID: Move from clang r346389b to r349610. 2019-02-12 13:23:13 -08:00
COPYING COPYING: use the new text with points to the license files 2018-03-23 12:41:45 -06:00
CREDITS 9p: remove Ron Minnich from MAINTAINERS 2018-08-17 16:20:26 -07:00
Kbuild Kbuild updates for v4.15 2017-11-17 17:45:29 -08:00
Kconfig kconfig: move the "Executable file formats" menu to fs/Kconfig.binfmt 2018-08-02 08:06:55 +09:00
MAINTAINERS MAINTAINERS: Add Sasha as a stable branch maintainer 2018-12-01 09:37:25 +01:00
Makefile This is the 4.19.30 stable release 2019-03-19 13:24:04 +01:00
README Docs: Added a pointer to the formatted docs to README 2018-03-21 09:02:53 -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.
See Documentation/00-INDEX for a list of what is contained in each file.

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.