Enable adjusting memory policy from NRI plugins#166
Conversation
9374195 to
746b0ad
Compare
|
@askervin We have now the necessary plumbing in place and tagged in runtime Spec and our NRI deps here updated accordingly. So in principle we could go forward with this PR, but I think it needs a bit more work/additions before we can seriously consider it for merging:
|
|
@mikebrow @chrishenzie Could we give this a preliminary review, so if there is anything beside the ones already flagged we could try pointing them out and get them addressed in the same round ? |
c2ace9f to
38cddf5
Compare
38cddf5 to
ad3de7d
Compare
d440222 to
5363825
Compare
|
@mikebrow @chrishenzie Looks like all the review comments have been addressed. PTAL, could we get this approved ? |
mikebrow
left a comment
There was a problem hiding this comment.
The device injector plugin readme is getting a bit long.. WDYT about links from the top.. to each of these plugin supported adjustment types?
TODO... this and a few of the other plugins are getting useful enough that they should probably be mentioned/linked in the main readme.
1f3b218 to
ec18ad4
Compare
@mikebrow Do you mean to add a link from each bullet list point at the top of
👍 Yes, and another TODO is that I promised @samuelkarp to roll a PR for renaming |
ccdc672 to
b979366
Compare
@mikebrow Assuming that's what you meant I went ahead and updated it accordingly. |
|
@mikebrow @chrishenzie Is there anything else we'd need to address to get this going forward ? |
Signed-off-by: Antti Kervinen <antti.kervinen@intel.com>
Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
Add support for adjusting container linux memory policy based on annotations. Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [github.com/containerd/containerd/api](https://redirect.github.com/containerd/containerd) | indirect | minor | `v1.10.0` -> `v1.11.0` | | [github.com/containerd/containerd/v2](https://redirect.github.com/containerd/containerd) | indirect | minor | `v2.2.3` -> `v2.3.0` | | [github.com/containerd/continuity](https://redirect.github.com/containerd/continuity) | indirect | minor | `v0.4.5` -> `v0.5.0` | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>containerd/containerd (github.com/containerd/containerd/v2)</summary> ### [`v2.3.0`](https://redirect.github.com/containerd/containerd/releases/tag/v2.3.0): containerd 2.3.0 [Compare Source](https://redirect.github.com/containerd/containerd/compare/v2.2.3...v2.3.0) Welcome to the v2.3.0 release of containerd! The third minor release of containerd 2.x focuses on continued stability alongside new features and improvements. This is the third time-based release for containerd. Starting with containerd 2.3, the project has moved to release cadence aligned with the Kubernetes release schedule, with new minor releases about every 4 months. The containerd 2.3 release is also the first annual LTS (Long Term Stable) release under this new schedule, with support planned for at least two years. Direct upgrades between sequential LTS releases (e.g., 1.7 to 2.3) will be tested and supported. ##### Highlights - Add transfer types for container filesystem copy ([#​13165](https://redirect.github.com/containerd/containerd/pull/13165)) - Add option to inject trace ID to logs ([#​13117](https://redirect.github.com/containerd/containerd/pull/13117)) - Propagate OpenTelemetry traces in outgoing RPCs from plugin clients ([#​13113](https://redirect.github.com/containerd/containerd/pull/13113)) - Update plugin config migration to run on load ([#​12608](https://redirect.github.com/containerd/containerd/pull/12608)) - Update sandbox API to include spec field ([#​12840](https://redirect.github.com/containerd/containerd/pull/12840)) ##### Container Runtime Interface (CRI) - Allow containers to use user namespaces with host networking ([#​12518](https://redirect.github.com/containerd/containerd/pull/12518)) - Wire UpdatePodSandboxResources to Sandbox API ([#​13118](https://redirect.github.com/containerd/containerd/pull/13118)) - Unpack images with per-layer labels for specific runtime ([#​12835](https://redirect.github.com/containerd/containerd/pull/12835)) - Populate ImageId field in container status ([#​12787](https://redirect.github.com/containerd/containerd/pull/12787)) - Set annotations parameter in CreateSandbox request ([#​12566](https://redirect.github.com/containerd/containerd/pull/12566)) - Add background stats collector to calculate UsageNanoCores for containers and pod sandboxes ([#​12629](https://redirect.github.com/containerd/containerd/pull/12629)) ##### Image Distribution - Support zstd-wrapped EROFS layers ([#​13185](https://redirect.github.com/containerd/containerd/pull/13185)) - Add os.features support for EROFS native container images ([#​13091](https://redirect.github.com/containerd/containerd/pull/13091)) - Add EROFS layer media type ([#​12567](https://redirect.github.com/containerd/containerd/pull/12567)) ##### Image Storage - Add dmverity support to the erofs snapshotter ([#​12502](https://redirect.github.com/containerd/containerd/pull/12502)) - Use fsmount API to avoid PAGE_SIZE limit for erofs ([#​12783](https://redirect.github.com/containerd/containerd/pull/12783)) ##### Node Resource Interface (NRI) - Pass container user (uid, gids) to plugins ([#​12769](https://redirect.github.com/containerd/containerd/pull/12769)) - Pass seccomp policy to plugins ([#​12768](https://redirect.github.com/containerd/containerd/pull/12768)) - Pass any POSIX rlimits to plugins ([#​12765](https://redirect.github.com/containerd/containerd/pull/12765)) - Pass extended container status to NRI. ([#​12770](https://redirect.github.com/containerd/containerd/pull/12770)) - Pass injected CDI devices to plugins ([#​12767](https://redirect.github.com/containerd/containerd/pull/12767)) - Pass linux sysctl to plugins ([#​12766](https://redirect.github.com/containerd/containerd/pull/12766)) - Use dedicated RPC calls for all pod and container life-cycle events via the NRI wire protocol ([containerd/nri#274](https://redirect.github.com/containerd/nri/pull/274)) - Add basic metrics collection for the NRI framework ([containerd/nri#277](https://redirect.github.com/containerd/nri/pull/277)) - Exchange NRI versions between plugins and the runtime during registration ([containerd/nri#271](https://redirect.github.com/containerd/nri/pull/271)) - Enable adjusting Linux memory policy from NRI plugins ([containerd/nri#166](https://redirect.github.com/containerd/nri/pull/166)) - Close plugins if initial synchronization fails to prevent unregistered connections ([containerd/nri#279](https://redirect.github.com/containerd/nri/pull/279)) - Accumulate owners for OCI hook adjustments, disallowing commas in plugin names ([containerd/nri#264](https://redirect.github.com/containerd/nri/pull/264)) - Add nri_no_wasm build tag to allow disabling WASM support at compile time ([containerd/nri#253](https://redirect.github.com/containerd/nri/pull/253)) - Support direct adjustment of the intelRdt container configuration ([containerd/nri#215](https://redirect.github.com/containerd/nri/pull/215)) - Allow setting kernel scheduling policy attributes via NRI ([containerd/nri#160](https://redirect.github.com/containerd/nri/pull/160)) - Allow adjusting Linux network devices via NRI ([containerd/nri#157](https://redirect.github.com/containerd/nri/pull/157)) - Add support for sysctl adjustment via NRI ([containerd/nri#248](https://redirect.github.com/containerd/nri/pull/248)) - Expose container user, group, and supplemental group IDs to plugins ([containerd/nri#230](https://redirect.github.com/containerd/nri/pull/230)) ##### Runtime - Add configured socket directory to shim bootstrap protocol ([#​12785](https://redirect.github.com/containerd/containerd/pull/12785)) - Introduce shim bootstrap protocol ([#​12786](https://redirect.github.com/containerd/containerd/pull/12786)) - Fix binary logging driver not blocking container start on failure ([#​12595](https://redirect.github.com/containerd/containerd/pull/12595)) - Use new filtered cgroups stats API ([#​12901](https://redirect.github.com/containerd/containerd/pull/12901)) - Update OOMKilled event handling ([#​12714](https://redirect.github.com/containerd/containerd/pull/12714)) ##### Snapshotters - Propagate parent chain ID and diff ID via labels during snapshot preparation ([#​13071](https://redirect.github.com/containerd/containerd/pull/13071)) ##### ctr development tool - Detect vendor in CDI specs to generate device IDs for --gpus in ctr ([#​12839](https://redirect.github.com/containerd/containerd/pull/12839)) ##### Breaking - Accumulate owners for OCI hook adjustments, disallowing commas in plugin names ([containerd/nri#264](https://redirect.github.com/containerd/nri/pull/264)) ##### Deprecations - Deprecate shim.Command ([#​13319](https://redirect.github.com/containerd/containerd/pull/13319)) Please try out the release binaries and report any issues at https://github.com/containerd/containerd/issues. ##### Contributors - Maksym Pavlenko - Derek McGowan - Sebastiaan van Stijn - Krisztian Litkey - Samuel Karp - Wei Fu - Akihiro Suda - Phil Estes - Mike Brown - Markus Lehtonen - Hudson Zhu - Davanum Srinivas - Chris Henzie - Gao Xiang - Chengyu Zhu - Akhil Mohan - Kazuyoshi Kato - Sergey Kanzhelev - Austin Vazquez - ningmingxiao - Aadhar Agarwal - Andrew Halaney - Apurv Barve - Bing Hongtao - Brian Goff - Michael Zappa - Paweł Gronowski - Fabiano Fidêncio - Hasan Siddiqui - Jintao Zhang - Paulo Oliveira - Shiv Tyagi - Albin Kerouanton - Alex Lyn - Avinesh Singh - Danny Canter - Esteban Ginez - Henry Wang - Jin Dong - Jérôme Poulin - Laura Lorenz - Luke Hinds - Mark Dodgson - Sascha Grunert - Tianon Gravi - majianhan - qiuxue - Adrien Delorme - Alessio Biancalana - Alex Chernyakhovsky - Andrey Noskov - Andrey Smirnov - Annie Cherkaev - Antti Kervinen - Anuj Singh - Benjamin Elder - Bo Jiang - Cameron McDermott - Chris Adeniyi-Jones - Chris Chang - Chris Henderson - Cindy Li - CrazyMax - Eldon Stegall - Evan Lezar - Fletcher Woodruff - Gaurav Ghildiyal - Harsh Rawat - Hayato Kiwata - Joseph Zhang - Justin Chadwell - Kaleab Ayenew - Manuel de Brito Fontes - Mikhail Dmitrichenko - Mujib Ahasan - Neeraj Krishna Gopalakrishna - Pierluigi Lenoci - Ricardo Branco - Rob Murray - Rodrigo Campos - Sameer - Sameer Saeed - Sanil Khurana - Shachar Tal - Shaobao Feng - Shiming Zhang - Sreeram Venkitesh - Tariq Ibrahim - Tim Windelschmidt - Tõnis Tiigi - Wade Simmons - Weixie Cui - Will Jordan - William Myers - Yohei Yamamoto - You Binhao - Youfu Zhang - Yuanliang Zhang - delthas - guodong - jinda.ljd - jokemanfire - pandaWall ##### Dependency Changes - **cyphar.com/go-pathrs** v0.2.1 ***new*** - **github.com/Microsoft/go-winio** v0.6.2 -> [`ad3df93`](https://redirect.github.com/containerd/containerd/commit/ad3df93bed29) - **github.com/Microsoft/hcsshim** v0.14.0-rc.1 -> v0.15.0-rc.1 - **github.com/cenkalti/backoff/v5** v5.0.3 ***new*** - **github.com/checkpoint-restore/checkpointctl** v1.4.0 -> v1.5.0 - **github.com/containerd/cgroups/v3** v3.1.0 -> v3.1.3 - **github.com/containerd/containerd/api** v1.10.0 -> v1.11.0 - **github.com/containerd/continuity** v0.4.5 -> v0.5.0 - **github.com/containerd/go-dmverity** v0.1.0 ***new*** - **github.com/containerd/imgcrypt/v2** v2.0.1 -> v2.0.2 - **github.com/containerd/nri** v0.10.0 -> v0.12.0 - **github.com/containerd/platforms** v1.0.0-rc.2 -> v1.0.0-rc.4 - **github.com/containerd/plugin** v1.0.0 -> v1.1.0 - **github.com/containerd/ttrpc** v1.2.7 -> v1.2.8 - **github.com/containerd/zfs/v2** v2.0.0-rc.0 -> v2.0.0 - **github.com/containernetworking/plugins** v1.8.0 -> v1.9.1 - **github.com/coreos/go-systemd/v22** v22.6.0 -> v22.7.0 - **github.com/cyphar/filepath-securejoin** v0.6.0 ***new*** - **github.com/davecgh/go-spew** v1.1.1 -> [`d8f796a`](https://redirect.github.com/containerd/containerd/commit/d8f796af33cc) - **github.com/erofs/go-erofs** v0.3.0 ***new*** - **github.com/go-jose/go-jose/v4** v4.1.2 -> v4.1.4 - **github.com/grpc-ecosystem/grpc-gateway/v2** v2.26.1 -> v2.28.0 - **github.com/intel/goresctrl** v0.10.0 -> v0.12.0 - **github.com/klauspost/compress** v1.18.1 -> v1.18.5 - **github.com/moby/spdystream** v0.5.0 -> v0.5.1 - **github.com/opencontainers/runtime-spec** v1.2.1 -> v1.3.0 - **github.com/opencontainers/runtime-tools** [`0ea5ed0`](https://redirect.github.com/containerd/containerd/commit/0ea5ed0382a2) -> [`edf4cb3`](https://redirect.github.com/containerd/containerd/commit/edf4cb3d2116) - **github.com/opencontainers/selinux** v1.12.0 -> v1.13.1 - **github.com/pelletier/go-toml/v2** v2.2.4 -> v2.3.0 - **github.com/pmezard/go-difflib** v1.0.0 -> [`5d4384e`](https://redirect.github.com/containerd/containerd/commit/5d4384ee4fb2) - **github.com/prometheus/common** v0.66.1 -> v0.67.5 - **github.com/prometheus/procfs** v0.16.1 -> v0.19.2 - **github.com/sirupsen/logrus** v1.9.3 -> v1.9.4 - **github.com/tetratelabs/wazero** v1.9.0 -> v1.11.0 - **go.opentelemetry.io/auto/sdk** v1.1.0 -> v1.2.1 - **go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc** v0.60.0 -> v0.68.0 - **go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp** v0.60.0 -> v0.68.0 - **go.opentelemetry.io/otel** v1.37.0 -> v1.43.0 - **go.opentelemetry.io/otel/exporters/otlp/otlptrace** v1.35.0 -> v1.43.0 - **go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc** v1.35.0 -> v1.43.0 - **go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp** v1.35.0 -> v1.43.0 - **go.opentelemetry.io/otel/metric** v1.37.0 -> v1.43.0 - **go.opentelemetry.io/otel/sdk** v1.37.0 -> v1.43.0 - **go.opentelemetry.io/otel/trace** v1.37.0 -> v1.43.0 - **go.opentelemetry.io/proto/otlp** v1.5.0 -> v1.10.0 - **go.yaml.in/yaml/v2** v2.4.2 -> v2.4.3 - **golang.org/x/crypto** v0.41.0 -> v0.49.0 - **golang.org/x/mod** v0.29.0 -> v0.35.0 - **golang.org/x/net** v0.43.0 -> v0.52.0 - **golang.org/x/oauth2** v0.30.0 -> v0.35.0 - **golang.org/x/sync** v0.17.0 -> v0.20.0 - **golang.org/x/sys** v0.37.0 -> v0.43.0 - **golang.org/x/term** v0.34.0 -> v0.41.0 - **golang.org/x/text** v0.28.0 -> v0.35.0 - **golang.org/x/time** v0.14.0 -> v0.15.0 - **google.golang.org/genproto/googleapis/api** [`a7a43d2`](https://redirect.github.com/containerd/containerd/commit/a7a43d27e69b) -> [`9d38bb4`](https://redirect.github.com/containerd/containerd/commit/9d38bb4040a9) - **google.golang.org/genproto/googleapis/rpc** [`a7a43d2`](https://redirect.github.com/containerd/containerd/commit/a7a43d27e69b) -> [`6f92a3b`](https://redirect.github.com/containerd/containerd/commit/6f92a3bedf2d) - **google.golang.org/grpc** v1.76.0 -> v1.80.0 - **google.golang.org/protobuf** v1.36.10 -> [`f2248ac`](https://redirect.github.com/containerd/containerd/commit/f2248ac996af) - **k8s.io/api** v0.34.1 -> v0.36.0 - **k8s.io/apimachinery** v0.34.1 -> v0.36.0 - **k8s.io/client-go** v0.34.1 -> v0.36.0 - **k8s.io/component-base** v0.36.0 ***new*** - **k8s.io/cri-api** v0.34.1 -> v0.36.0 - **k8s.io/cri-client** v0.36.0 ***new*** - **k8s.io/cri-streaming** v0.36.0 ***new*** - **k8s.io/klog/v2** v2.130.1 -> v2.140.0 - **k8s.io/kube-openapi** [`5883c5e`](https://redirect.github.com/containerd/containerd/commit/5883c5ee87b9) ***new*** - **k8s.io/streaming** v0.36.0 ***new*** - **k8s.io/utils** [`4c0f3b2`](https://redirect.github.com/containerd/containerd/commit/4c0f3b243397) -> [`28399d8`](https://redirect.github.com/containerd/containerd/commit/28399d86e0b5) - **sigs.k8s.io/json** [`cfa47c3`](https://redirect.github.com/containerd/containerd/commit/cfa47c3a1cc8) -> [`2d32026`](https://redirect.github.com/containerd/containerd/commit/2d320260d730) - **sigs.k8s.io/structured-merge-diff/v6** v6.3.0 -> v6.3.2 - **tags.cncf.io/container-device-interface** v1.0.1 -> v1.1.0 - **tags.cncf.io/container-device-interface/specs-go** v1.0.0 -> v1.1.0 Previous release can be found at [v2.2.0](https://redirect.github.com/containerd/containerd/releases/tag/v2.2.0) ##### Which file should I download? - `containerd-<VERSION>-<OS>-<ARCH>.tar.gz`: ✅Recommended. Dynamically linked with glibc 2.35 (Ubuntu 22.04). - `containerd-static-<VERSION>-<OS>-<ARCH>.tar.gz`: Statically linked. Expected to be used on Linux distributions that do not use glibc >= 2.35. Not position-independent. In addition to containerd, typically you will have to install [runc](https://redirect.github.com/opencontainers/runc/releases) and [CNI plugins](https://redirect.github.com/containernetworking/plugins/releases) from their official sites too. See also the [Getting Started](https://redirect.github.com/containerd/containerd/blob/main/docs/getting-started.md) documentation. </details> <details> <summary>containerd/continuity (github.com/containerd/continuity)</summary> ### [`v0.5.0`](https://redirect.github.com/containerd/continuity/releases/tag/v0.5.0) [Compare Source](https://redirect.github.com/containerd/continuity/compare/v0.4.5...v0.5.0) #### What's Changed - Bump CI runner image to macOS 13 by [@​austinvazquez](https://redirect.github.com/austinvazquez) in [https://github.com/containerd/continuity/pull/264](https://redirect.github.com/containerd/continuity/pull/264) - Bump golangci-lint to v1.62.0 by [@​austinvazquez](https://redirect.github.com/austinvazquez) in [https://github.com/containerd/continuity/pull/265](https://redirect.github.com/containerd/continuity/pull/265) - Enable dependabot updates for GitHub Actions packages by [@​austinvazquez](https://redirect.github.com/austinvazquez) in [https://github.com/containerd/continuity/pull/263](https://redirect.github.com/containerd/continuity/pull/263) - build(deps): bump containerd/project-checks from 1.1.0 to 1.2.2 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in[https://github.com/containerd/continuity/pull/266](https://redirect.github.com/containerd/continuity/pull/266)6 - build(deps): bump actions/checkout from 3 to 4 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in[https://github.com/containerd/continuity/pull/268](https://redirect.github.com/containerd/continuity/pull/268)8 - build(deps): bump actions/setup-go from 3 to 5 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in[https://github.com/containerd/continuity/pull/267](https://redirect.github.com/containerd/continuity/pull/267)7 - Update CI to use latest versions by [@​dmcgowan](https://redirect.github.com/dmcgowan) in [https://github.com/containerd/continuity/pull/279](https://redirect.github.com/containerd/continuity/pull/279) - build(deps): bump actions/setup-go from 5 to 6 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in[https://github.com/containerd/continuity/pull/271](https://redirect.github.com/containerd/continuity/pull/271)1 - build(deps): bump actions/checkout from 4 to 6 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in[https://github.com/containerd/continuity/pull/273](https://redirect.github.com/containerd/continuity/pull/273)3 - build(deps): bump github/codeql-action from 3.35.1 to 4.35.1 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in[https://github.com/containerd/continuity/pull/282](https://redirect.github.com/containerd/continuity/pull/282)2 - Add native Go ext4 filesystem image creator by [@​dmcgowan](https://redirect.github.com/dmcgowan) in [https://github.com/containerd/continuity/pull/280](https://redirect.github.com/containerd/continuity/pull/280) - Linux: Make copyFile sparse aware by [@​dcantah](https://redirect.github.com/dcantah) in [https://github.com/containerd/continuity/pull/276](https://redirect.github.com/containerd/continuity/pull/276) - build(deps): bump github/codeql-action from 4.35.1 to 4.35.2 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in[https://github.com/containerd/continuity/pull/283](https://redirect.github.com/containerd/continuity/pull/283)3 - Fix error message on group ownership verification by [@​eldondev](https://redirect.github.com/eldondev) in [https://github.com/containerd/continuity/pull/269](https://redirect.github.com/containerd/continuity/pull/269) - fs: handle ENOTSUP error in compareCapabilities function by [@​jellor](https://redirect.github.com/jellor) in [https://github.com/containerd/continuity/pull/274](https://redirect.github.com/containerd/continuity/pull/274) #### New Contributors - [@​dcantah](https://redirect.github.com/dcantah) made their first contribution in [https://github.com/containerd/continuity/pull/276](https://redirect.github.com/containerd/continuity/pull/276) - [@​eldondev](https://redirect.github.com/eldondev) made their first contribution in [https://github.com/containerd/continuity/pull/269](https://redirect.github.com/containerd/continuity/pull/269) - [@​jellor](https://redirect.github.com/jellor) made their first contribution in [https://github.com/containerd/continuity/pull/274](https://redirect.github.com/containerd/continuity/pull/274) **Full Changelog**: containerd/continuity@v0.4.5...v0.5.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "* 1 * * 1-5" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://redirect.github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJUZWFtOlNlY3VyaXR5LUNsb3VkIFNlcnZpY2VzIiwiYmFja3BvcnQtc2tpcCIsImRlcGVuZGVuY2llcyIsInJlbm92YXRlIiwicmVub3ZhdGUtYXV0by1hcHByb3ZlIl19--> Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.com>
This PR implements
See set_mempolicy(2) for more details about Linux kernel memory policies.
This PR can be tested using
with something like this