Git log: commit 6bacb5f20d67488edada9836f50c78dbb0686a13
Author: Christopher Obbard <chris.obbard@collabora.com>
Date: Tue Jan 11 14:30:15 2022 +0000
Do not install upstream systemd service (closes: #1001766).
Signed-off-by: Christopher Obbard <chris.obbard@collabora.com>
commit f7ed7bdd0b4034433130e24bc502468d39ce252c
Author: yangfl <yangfl@users.noreply.github.com>
Date: Tue Aug 31 22:27:52 2021 +0800
debian: update to 0.5.0
commit 41ebe54d10a8cb198f31c8c301ab11cc16748d1f
Merge: 99a7c1a e6b78d7
Author: yangfl <yangfl@users.noreply.github.com>
Date: Tue Aug 31 22:24:40 2021 +0800
Merge tag 'v0.5.0'
commit e6b78d77c7e4fe45e3c40dbb5675cc372bf052a2
Author: Daniel Xu <dlxu@fb.com>
Date: Wed Jun 23 12:24:34 2021 -0700
Bump version to 0.5.0
Summary: Prep for new open source oomd release
Reviewed By: htejun
Differential Revision: D29336747
fbshipit-source-id: 2e96a89d37a5f2645faed900fbbc3191820d2322
commit 3ad659121bdb5c19cdd63eda4de985bd12c1ea0b
Author: Leon Yang <lnyng@fb.com>
Date: Wed Jun 23 11:05:39 2021 -0700
Move Senpai plugin to open source (#151)
Summary:
Pull Request resolved: https://github.com/facebookincubator/oomd/pull/151
Senpai plugin was move to fb-only to make iteration easier. We eventually created an internal version to make collecting telemetry easier and evolve from there. The old version may still be useful for open source so let's make it public again. However this version probably won't be updated anymore.
Reviewed By: danobi
Differential Revision: D29311261
fbshipit-source-id: fee6a0fc95a6521982228edd3e18464cdb0d50c3
commit 080ae608b9dba2d95915deead8cec6a7f885aae5
Author: John Allen <jallen@fb.com>
Date: Tue Jun 22 18:20:54 2021 -0700
prekill hooks can know their timeout lifetime
Summary: Exposing the action context to the prekill hook. This lets us, among other things, to access the timeout timestamp
Reviewed By: jaredp
Differential Revision: D29208904
fbshipit-source-id: 90cb61584423c55daa5ba84427ad1a45a2d11f97
commit 01fe676087a919f0daf09fe09ef2665c140f344f
Author: Leon Yang <lnyng@fb.com>
Date: Tue Jun 22 15:04:26 2021 -0700
Fix CI apt-get (#152)
Summary:
Pull Request resolved: https://github.com/facebookincubator/oomd/pull/152
Fix CI by invoking apt-get update before fetching.
Reviewed By: htejun
Differential Revision: D29312189
fbshipit-source-id: dbc6de5680cf82b4c34d6ff771729fbf3350f2bc
commit 4b7aae01486f4aa71a5963e1f6819605ca2a6869
Author: Daniel Xu <dlxu@fb.com>
Date: Mon Jun 21 13:48:15 2021 -0700
Fix AUR build
Summary:
Fixes arch linux AUR build. Not sure why this doesn't error in any
other environment.
If you create a file using open() syscall you need to also provide permissions.
Reviewed By: dschatzberg, htejun
Differential Revision: D29272710
fbshipit-source-id: f93472bc8f45a9608953d91cf7fab04d624d969c
commit bc9a986bfde93d830215d5da460994c99c87bf45
Author: Daniel Xu <dxu@dxuuu.xyz>
Date: Wed Jun 16 13:38:12 2021 -0700
Fix build (#150)
Summary:
Add missing header include and also use `decltype()` instead of
non-standard `typeof()`.
Pull Request resolved: https://github.com/facebookincubator/oomd/pull/150
Reviewed By: dschatzberg
Differential Revision: D29171121
Pulled By: danobi
fbshipit-source-id: 52c6fc1488721efcfad1ac5a2debcbf627fbac72
commit 719b32d1b0b9e551f21400bcdab885afa4ca0174
Author: Leon Yang <lnyng@fb.com>
Date: Fri Jun 11 13:06:23 2021 -0700
Fix dump cgroup overview reporting wrong pgscan
Summary:
vmstat is a `SystemMaybe` and getting values from it without unwrapping it gives unexpected value (pgscan is somehow always 206). Fix similar to how meminfo above works.
Also make SystemMaybe bool operator explicit. This produces compile error or previous version but not the one after fix.
Reviewed By: jaredp
Differential Revision: D29067402
fbshipit-source-id: 7d09eb3761ec627dc4c501d47b7a236552509a49
commit 6c66b3877da9c6efc44f709d5275dcad24fbc13b
Author: Jared Pochtar <jpochtar@fb.com>
Date: Fri May 7 14:26:15 2021 -0700
KillPgScan only collects data when killing
Reviewed By: lnyng
Differential Revision: D28249176
fbshipit-source-id: 09cd18770a8126183f3e8c5bebc77333cd1336ce
commit 5cbe3e7d10436b55c3dcb360e34e4122da904109
Author: Jared Pochtar <jpochtar@fb.com>
Date: Mon Apr 26 11:40:32 2021 -0700
prekill hook dropins
Summary: Dropin support for prekill hooks. See docs.
Reviewed By: dschatzberg
Differential Revision: D27402173
fbshipit-source-id: a23d2557fa5b059b144c0cdd5d6120137de00ec7
commit 5c2c39e7472df4e5d439781b67e54bcb84847ae4
Author: Jared Pochtar <jpochtar@fb.com>
Date: Thu Apr 15 07:10:05 2021 -0700
dumpIR supports prekill hooks
Summary: Print prekill hooks for base config and dropin configs. Previously only dumped rulesets.
Reviewed By: dschatzberg
Differential Revision: D27747510
fbshipit-source-id: 3d1981729fab56a3629cc2fbf47ae2cbe23ce5ac
commit 94686c520b67faaca4e84b921266a2abf30a1cd5
Author: Jared Pochtar <jpochtar@fb.com>
Date: Thu Apr 1 08:35:01 2021 -0700
PluginArgParser string support
Summary: Adds PluginArgParser support for std::string args
Reviewed By: chengxiong-ruan
Differential Revision: D27402257
fbshipit-source-id: 3fc6fb403f2189761d488b7ffd8686d34d6b836c
commit 97ba64fc92c35ed91db43b9a9f5696055226135b
Author: generatedunixname89002005287564 <generatedunixname89002005287564@fb.com>
Date: Wed Mar 31 16:07:00 2021 -0700
Remove dead includes in oomd (#147)
Summary: Pull Request resolved: https://github.com/facebookincubator/oomd/pull/147
Reviewed By: chengxiong-ruan
Differential Revision: D27460353
fbshipit-source-id: 75490e1794dc072a7936386e0c58b2a8d2e0e564
commit b28cee2d308f1341d065c066826b82e19e0128c1
Author: Chengxiong Ruan <chengxiong@fb.com>
Date: Wed Mar 31 15:41:50 2021 -0700
fix variable name in REGISTER_PREKILL_HOOK macro (#148)
Summary:
Pull Request resolved: https://github.com/facebookincubator/oomd/pull/148
this does not block anything...but just make ci fails in github. complaining redefinition of `plugin_name_plugin_entry`. For example D27460353
Reviewed By: jaredp
Differential Revision: D27476943
fbshipit-source-id: 89ae392d06b9af4f5f63c89f7424132b04eb4ab4
commit 13f6693c96a45a399fae0decceee4f55f0c65670
Author: Jared Pochtar <jpochtar@fb.com>
Date: Fri Mar 26 17:32:26 2021 -0700
prekill hook cgroup filter
Summary:
To support multiple, independent prekill hook dropins, each prekill hook now opts into which cgroups it targets.
See added docs for more info.
Reviewed By: dschatzberg
Differential Revision: D27305327
fbshipit-source-id: aa970ad42e2a675c964705abb5b010a9cbe7d496
commit 20032a82b55ef0c6ed38e5e123aad518be2d92dc
Author: Jared Pochtar <jpochtar@fb.com>
Date: Fri Mar 26 12:05:04 2021 -0700
dummy prekill hook
Summary: A simple prekill hook useful for e2e testing and as a prekill hook implementation template
Reviewed By: dschatzberg
Differential Revision: D27305315
fbshipit-source-id: 1edf39368697ae5cae1704f1339695942eb9ef9c
commit a4639d8c1e087d54946f5bad2d78a721be77e558
Author: Leon Yang <lnyng@fb.com>
Date: Tue Mar 9 07:29:15 2021 -0800
Add write memory.reclaim to fs util
Summary: memory.reclaim is a new memory cgroup control file only exists on some fb-internal kernels. This diff adds support to writing to that file.
Reviewed By: hnaz
Differential Revision: D26898315
fbshipit-source-id: 1529d83111e61f4538a54d9730263c4118bfa623
commit 8bc1c4ebfa138fe4e5dc794498131fd4a79be30d
Author: Leon Yang <lnyng@fb.com>
Date: Tue Mar 9 07:29:15 2021 -0800
Add checkExistAt to fs util
Summary: Allow checking if arbitrary file exists in a directory.
Reviewed By: dschatzberg
Differential Revision: D26898314
fbshipit-source-id: 82a9584c29ec1f7bb1a41382d2f6b47501d43bd5
commit d1ab5610ac199b279830e7912d851d4d513c88f5
Author: Chengxiong Ruan <chengxiong@fb.com>
Date: Wed Mar 3 11:25:04 2021 -0800
add plugin arg parser util (#146)
Summary:
Pull Request resolved: https://github.com/facebookincubator/oomd/pull/146
Creating a arg parsing util for oomd plugins with unknown args logging and default value parsing for some primitive value types.
Reviewed By: lnyng
Differential Revision: D26579329
fbshipit-source-id: ec1217b242491c9d873c19c5750a9c4dadf241f8
commit 5c4f71dd6fc64849e555d96a026f08ef4dbd1bb6
Author: Jared Pochtar <jpochtar@fb.com>
Date: Thu Feb 25 14:02:10 2021 -0800
prekill hook timeouts
Summary:
In a kill cycle, there is a max amount of time we allow before we must start killing to ensure the health of the system. This is enforced at the ruleset level: the deadline is determined when the action chain fires, and will be held across kill attempts and even kill plugins.
The default timeout is 5s, but this is configurable per-ruleset.
Reviewed By: lnyng
Differential Revision: D26667796
fbshipit-source-id: 4ae84f02a4dbffece524cc2910e7b1b5f0ae5fff
commit 9774b5bc89444a48ec1a4c4980b1c81f452ca0a8
Author: Jared Pochtar <jpochtar@fb.com>
Date: Thu Feb 25 12:15:41 2021 -0800
preserving ActionContext across ASYNC_PAUSED ticks is Ruleset's responsibility
Summary:
Ruleset preserves ActionContext across ASYNC_PAUSEDs instead of BaseKillPlugin doing it.
BaseKillPlugin tracking it is wrong when there are multiple actions. The first one will track it correctly, but subsequent actions will never see the initial ActionContext.
Reviewed By: lnyng
Differential Revision: D26667310
fbshipit-source-id: 9986425a1afa509726afd0dc7ecb446d80ab902d
commit 9e863cc5ba41bc2cab35b672585f6a87412ec7a8
Author: Jared Pochtar <jpochtar@fb.com>
Date: Wed Feb 24 15:07:00 2021 -0800
move "post_action_delay" from plugin-level to ruleset-level
Summary:
Both plugin-level and ruleset-level "post_action_delay" configs are supported in this diff to make migration possible without having to simultaneously update oomd binary and config.
Plugin-level configs take precedence, if set.
Reviewed By: lnyng
Differential Revision: D26134238
fbshipit-source-id: f61922651acf733aaaeb2efc794924810cf80898
commit 27a6f9c82339f0f9f95111e323aa9ac0a38fdfc1
Author: Jared Pochtar <jpochtar@fb.com>
Date: Wed Feb 24 14:38:25 2021 -0800
log unsuccessful kills
Summary:
Log to see how often kills fail, and what's happening when they do. It may be
1) killing doesn't fail often enough to worry it as intensely as the code does
2) when it does, moving on to the next-best choice may not be helpful anyway
We're not sure if it's useful to pick the next-best cgroup to kill if our first choice wont die. The logic is complicated by recursive killing and resuming from prekill hooks, so we'd like to remove it if possible.
Reviewed By: lnyng
Differential Revision: D26612580
fbshipit-source-id: 36b1ded077b11345d59d26003ec20dced2d3f9b4
commit aeafea85134b053d1c1d93f768ae0f56c1f28a99
Author: generatedunixname89002005287564 <generatedunixname89002005287564@fb.com>
Date: Wed Feb 24 11:38:59 2021 -0800
Remove dead includes in oomd
Reviewed By: jaredp
Differential Revision: D26636286
fbshipit-source-id: 617a2ee1febb73e6453cc5b3d64dfeb8709fd6d5
commit 4419a2d475c71a3c5872001a5567a5039125037b
Author: Jared Pochtar <jpochtar@fb.com>
Date: Tue Feb 23 16:11:09 2021 -0800
support user.oomd_{prefer,avoid} xattrs in addition to trusted.* xattrs
Summary:
oomd behavior is now controllable without requiring elevated privileges
Writing trusted.* xattrs required machine-global privileges. The user.* namespace doesn't. user.* namespace xattrs support on cgroupfs is still being upstreamed.
Reviewed By: danobi
Differential Revision: D26060218
fbshipit-source-id: 9c9997020a5f10a621ac6ff4f310260e04472808
commit 59d93142b1498ae0641272451ab04f2d695d6e0a
Author: Leon Yang <lnyng@fb.com>
Date: Fri Feb 19 08:09:47 2021 -0800
Move senpai to internal folder
Summary: Senpai is still under active development and thus it's not ready for general access. We also want to add some internal telemetry to assess senpai's performance and issues in our prod environment. Move it to our internal folder for now.
Reviewed By: dschatzberg
Differential Revision: D26532162
fbshipit-source-id: 07cd3ed4cae66d4a485e3b54a9e24dc48fc9e62f
commit 1a0883507747dafee6ff35b3194b0e17c229c05b
Author: Leon Yang <lnyng@fb.com>
Date: Fri Feb 19 08:09:47 2021 -0800
Add io and memory some pressure to CgroupContext
Summary: As title
Reviewed By: dschatzberg
Differential Revision: D26532159
fbshipit-source-id: 7ed35b22c7dab6a976ca7a9aa0c76cb480e05c33
commit cc2f08fe1412a813d8bafc66fa57b5e3b909fceb
Author: Jared Pochtar <jpochtar@fb.com>
Date: Thu Feb 18 14:14:38 2021 -0800
prekill hooks
Summary:
Added support for prekill hooks. See docs/prekill_hooks.md for background, mechanism, and API.
No change to oomd behavior without oomd config changes. Added "prekill_hooks" field to oomd config json schema, see docs for details.
Prekill hooks are nonblocking in kill plugins. To support this, during a kill, a KillPlugin will track a set of cgroups which it has tried and failed to kill. This set of cgroup paths should typically be a small additional memory overhead, as typically oomd will succeed in killing a cgroup on the first or second try.
Hook timeouts not implemented in this commit.
Reviewed By: lnyng
Differential Revision: D25534786
fbshipit-source-id: 739efd1e378a1b65f758492765e611e639941eb2
commit 030f1c593a41cf9606257a9b112e653af27c9710
Author: Jared Pochtar <jpochtar@fb.com>
Date: Thu Feb 18 14:14:38 2021 -0800
config language supports prekill hooks
Summary:
Added top-level "prekill_hooks" key to oomd config schema, adjacent to "rulesets".
```
{
"rulesets": [
...
],
"prekill_hooks": [
{
"name": "my_prekill_hook",
"args": {
}
}
]
}
```
"prekill_hooks" takes an array of hooks, which are similar to but incompatibile with plugins. Like plugins, hooks have a "name" and "args", but plugins may not be used as hooks and vice versa. Hooks subclass PrekillHook and are registered with REGISTER_PREKILL_HOOK, whereas plugins subclass BasePlugin and are registered with REGISTER_PLUGIN.
Hooks are registered at the root, instead of inside rulesets, because the hooks get called before all kills, across all rulesets.
Hooks are separate from plugins because they don't implement `run()`, and must implement other methods inappropriate for plugins (added in later diffs).
Reviewed By: dschatzberg
Differential Revision: D25571856
fbshipit-source-id: db9f90246feae7f82adca30acca7f53dbd784f95
commit 9f3c61cc34a285133e2a7672a3d12b1ba399b646
Author: Davide Cavalca <dcavalca@fb.com>
Date: Thu Feb 18 10:01:34 2021 -0800
oomd: one more missing include
Summary: Missed this in D26508041 (https://github.com/facebookincubator/oomd/commit/e7403438de998a56ccceefa3e25d7af0fdcbffc2) due to the linter reordering stuff.
Reviewed By: dschatzberg
Differential Revision: D26515168
fbshipit-source-id: 9cdf9f95757f311eb74940044d4be4d53b9c5de8
commit e7403438de998a56ccceefa3e25d7af0fdcbffc2
Author: Davide Cavalca <dcavalca@fb.com>
Date: Thu Feb 18 08:17:03 2021 -0800
oomd: fix missing includes for gcc-11
Summary:
This in an import of a patch currently applied in the Fedora
packaging. This patch was authored by Jeff Law <law@redhat.com> in
https://src.fedoraproject.org/rpms/oomd/c/3844a403b26cedf9d1066d2feb95fd9b90f6bc34?branch=rawhide
Reviewed By: dschatzberg
Differential Revision: D26508041
fbshipit-source-id: a9e0db47370a84a9363f79e9bd0fd5236d40aed5
commit dd6f55c4329fae1da1dc1504ae7e07ae7869845f
Author: Leon Yang <lnyng@fb.com>
Date: Tue Feb 16 10:23:04 2021 -0800
Add verbose option to help debug
Summary: As title
Reviewed By: hnaz
Differential Revision: D26410472
fbshipit-source-id: d1472c6d66ccb9d0bc0f8d7ad400acb9af15438b
commit c70f0d92570cb6e5ed1364706f402c0368ff7c46
Author: Leon Yang <lnyng@fb.com>
Date: Tue Feb 16 10:02:02 2021 -0800
Modulate swappiness also scales down reclaim size
Summary: Senpai modulate swappiness introduces spiky reclaim pattern if file cache size is small and swappiness is low, because it then considers large amount of anon reclaimable but kernel will reclaims mostly from cache. This diff reduces reclaim size if swappiness is low, and particularly skip reclaim if swappiness will be set to zero.
Reviewed By: dschatzberg
Differential Revision: D26394830
fbshipit-source-id: 90d8db3e8aa903133878ba0f36912be9b620fdb0
commit 5018308f1f2a9e626807df220d6503a76ac0af5a
Author: Jared Pochtar <jpochtar@fb.com>
Date: Tue Feb 16 09:07:46 2021 -0800
refactor: split OomdContext::getInvokingRuleset() from ActionContext
Summary: ActionContext can now be copied/held without concern for the lifecycle of a Ruleset.
Reviewed By: dschatzberg
Differential Revision: D26432357
fbshipit-source-id: 6decde7d3ec63c0644e9c613a7a9a0464bcc842f
commit b5cb44c8b0a18a336b3ce4cc05dbaa0100ff7802
Author: Jared Pochtar <jpochtar@fb.com>
Date: Fri Feb 12 15:39:12 2021 -0800
remove inaccurate logs about dg firing action chains
Summary: After a kill, oomd takes a 15s (configurable) cooldown period. Detectors firing in that period are ignored, but were logging lines saying "$dg has fired for $ruleset. Running action chain.". This was misleading because action chains were in fact (correctly) not being fired.
Reviewed By: danobi
Differential Revision: D26431259
fbshipit-source-id: 73a007dabe5f58fc68763fa8a2530b5636420789
commit 0a1ad06857161d47625bbc246b0a2dc09a29d937
Author: Leon Yang <lnyng@fb.com>
Date: Fri Feb 12 09:55:20 2021 -0800
Log file name instead of file path (#145)
Summary:
Pull Request resolved: https://github.com/facebookincubator/oomd/pull/145
Using `__FILE__` sometimes becomes inconvenient when it contains absolute path which is very long, e.g. inside template (-inl.h) files. Use base name instead.
Reviewed By: hnaz
Differential Revision: D26425292
fbshipit-source-id: d38677320fde2151b2736914a528c3f727178a33
commit ba9c5e13931f54a5a9454632d5fe18ac166efa21
Author: Leon Yang <lnyng@fb.com>
Date: Thu Feb 11 09:54:56 2021 -0800
remove workflow to check format (#144)
Summary:
Pull Request resolved: https://github.com/facebookincubator/oomd/pull/144
We have an internal auto formatter that may disagree with the available clang-format version. Let's don't make bad format a CI error.
Reviewed By: dschatzberg
Differential Revision: D26394807
fbshipit-source-id: 3678765f9850310ff9ae89adcc1c6b99d09ecee0
commit b9c5cdbb03f24ab12312e6490bd1f9625f238c13
Author: Leon Yang <lnyng@fb.com>
Date: Thu Feb 11 09:54:56 2021 -0800
Remove unused functions from senpai hold
Summary: As title
Reviewed By: dschatzberg
Differential Revision: D26394808
fbshipit-source-id: 351e9e59cae7f8d24f4a6c663e77e62893b444e1
commit 318e4df281f4bcc6e027629a50164646e53c8fef
Author: Leon Yang <lnyng@fb.com>
Date: Thu Feb 11 09:54:56 2021 -0800
Fix gcc build
Summary: Fix gcc build when calling `using A = A<T>;`. See https://stackoverflow.com/a/21465005
Reviewed By: dschatzberg
Differential Revision: D26394789
fbshipit-source-id: 2b946bc898ca0a7b19625670c4cbe8e92559fe06
commit 1da2c2f31e203442d7de068a9755a47e7fdc6f2c
Author: Dan Schatzberg <dschatzberg@fb.com>
Date: Wed Feb 10 11:49:38 2021 -0800
Add pressure trigger backoff to SenpaiHold
Summary:
This diff adds logic to SenpaiHold to completely backoff a
limit if pressure is too high over a short period of time. We use a
separate thread per Senpai instance that just sits on an epoll and
immediately backs off to minimize latency.
Reviewed By: hnaz
Differential Revision: D26286134
fbshipit-source-id: 8d4a06315ea49a90931bb9b5deba620249f9be70
commit 930096f60b492565864c3ffb08f18f9dad73c675
Author: Dan Schatzberg <dschatzberg@fb.com>
Date: Wed Feb 10 11:49:38 2021 -0800
make per-cgroup state support non-movable/copyable members
Summary:
This should be a no-op but just makes the CgroupState objects
support something like a mutex by refactoring the construction a bit.
Reviewed By: hnaz
Differential Revision: D26286135
fbshipit-source-id: 9ffe6652c1cef4f7b34b911711be5a12f60109d9
commit 0de41e88143d9407628db4dd221ee6321afe5aac
Author: Dan Schatzberg <dschatzberg@fb.com>
Date: Wed Feb 10 11:49:38 2021 -0800
Introduce new SenpaiHold algorithm
Summary:
Comments in the header should provide the most detail
here. The major thing here is having an explicit configuration for
determining the certainty that the observed pressure is a function of
the last action or not.
Reviewed By: hnaz
Differential Revision: D25998249
fbshipit-source-id: ce2c1279bc05d64f15b29fbc3226aca559a86a32
commit b7d9661040c082a705f3cbd12fa7176cf816acce
Author: Dan Schatzberg <dschatzberg@fb.com>
Date: Wed Feb 10 11:49:38 2021 -0800
Refactor Senpai into two plugins
Summary:
The two algorithms are really not that tightly coupled and
the configuration is getting a bit confusing. It's a good time to
separate things out. This is far from perfect, but a good start.
Reviewed By: danobi, lnyng
Differential Revision: D25888852
fbshipit-source-id: f504ff50600c164e0d44cc0c70dfb79b3090ddb9
commit d0d91571c7e3d5c00365c741ae01dced92da6d12
Author: Leon Yang <lnyng@fb.com>
Date: Tue Feb 2 08:43:36 2021 -0800
Support tuning I/O pressure limit
Summary: Add separate parameter for I/O pressure limit. For workloads with relatively heavy I/O, it's reasonable to increase I/O pressure limit and make it a bottom line protection. Memory pressure limit should be effective in constraining senpai behavior in most cases.
Reviewed By: dschatzberg
Differential Revision: D26182980
fbshipit-source-id: d2c99cee65d0234a1c842fe0edd2a0682a226f91
commit b37187847a6f77436a6394ec367d65b79c895ba9
Author: Jared Pochtar <jpochtar@fb.com>
Date: Thu Jan 28 07:35:11 2021 -0800
docs nit
Summary: writing_a_plugin had an outdated signature for BasePlugin::init()
Reviewed By: boyuni
Differential Revision: D26112702
fbshipit-source-id: 8a5385e8fa4a999cdf169df57367a327c9f93f8c
commit c13abd00cf6734c632685e307877266c62764e80
Author: Leon Yang <lnyng@fb.com>
Date: Fri Jan 22 10:03:28 2021 -0800
Make poking approach write async
Summary: Add option `memory_high_timeout_ms` to senpai so that when poking approach writes to limit taking too long, we can send a signal to interrupt the write and unblock it. The long blocking write may occur if workload allocates significant amount of memory after we read memory.current and writes to memory.high based on the old value. This is a mitigation before kernel is fixed to not block the write indefinitely. If the option is not set, senpai won't have any behavior change.
Reviewed By: dschatzberg, hnaz
Differential Revision: D26004693
fbshipit-source-id: d21ffe34ef1474e6111d6386ce801ec190f37ecc
commit e65cdf63105b9f4b38ef067458f3aa1593be79cf
Author: Andres Suarez <asuarez@fb.com>
Date: Sun Jan 10 10:03:53 2021 -0800
Apply clang-format update fixes
Reviewed By: igorsugak
Differential Revision: D25861960
fbshipit-source-id: e3c39c080429058a58cdc66d45350e5d1420f98c
commit 3745ea96d24a0ea4a96df8ae842b4495bb0adf44
Author: Davide Cavalca <dcavalca@fb.com>
Date: Tue Jan 5 08:51:49 2021 -0800
oomd: update Fedora install instructions
Summary: This is packaged in Fedora proper so say so
Reviewed By: lnyng
Differential Revision: D25771388
fbshipit-source-id: f483b881c0bb1b05e0bdd3194da299fdb6489f53
commit 81d95848b6ba0867906f15881dd0a547cdeb071a
Author: Leon Yang <lnyng@fb.com>
Date: Mon Jan 4 15:06:17 2021 -0800
Add swapout_bps_threshold option
Summary:
Control senpai swap behavior (via modulate_swappiness) according to swapout rate.
Allow senpai to reduce swap activity when system is swapping out too quickly. Modern SSDs often have very high write throughput. In some cases, senpai can quickly evict large amount of cold anon pages without much performance penalty, but this may reduce SSD endurance. Limiting swap activity on swap out rate can reduce impact of such issue.
Reviewed By: dschatzberg
Differential Revision: D25717336
fbshipit-source-id: 7f411177dbb758ab1fb77eeb1d87b78697501c8f
commit 2bd0a3231a2a3223578b8d2cd8ea5c58f99cc3b0
Author: Leon Yang <lnyng@fb.com>
Date: Mon Jan 4 15:06:17 2021 -0800
Add modulate_swappiness option
Summary:
Modulate system global swappiness config during senpai poking to control swap behavior.
When swap is enabled for a cgroup, senpai poking approach only triggers swap out activities during pokes. As a result, updating global swappiness for a very short period of time can simulate the effect of per-cgroup swappiness.
The ultimate goal is to reduce swap activity when necessary, e.g. when swap util is almost full (swap full can cause system-wide stall).
Reviewed By: dschatzberg
Differential Revision: D25717333
fbshipit-source-id: 38dc6286870633d5ecfb92d5ce9fc59afa0f79c1
commit b1b9b9720de8858cb7a5d288cae1c680a3150d37
Author: Leon Yang <lnyng@fb.com>
Date: Mon Jan 4 15:06:17 2021 -0800
Add getter/setter for swappiness
Summary: As title
Reviewed By: dschatzberg
Differential Revision: D25717334
fbshipit-source-id: 21fc9cdd69952df14d5318d324df73ff55fc7131