All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/7] KVM: selftests: access_tracking_perf_test fixes for NUMA balancing and MGLRU
@ 2025-05-08 18:46 James Houghton
  2025-05-08 18:46 ` [PATCH v4 1/7] KVM: selftests: Extract guts of THP accessor to standalone sysfs helpers James Houghton
                   ` (7 more replies)
  0 siblings, 8 replies; 10+ messages in thread
From: James Houghton @ 2025-05-08 18:46 UTC (permalink / raw)
  To: Sean Christopherson, kvm
  Cc: Maxim Levitsky, Axel Rasmussen, Tejun Heo, Johannes Weiner,
	mkoutny, Yosry Ahmed, Yu Zhao, David Matlack, James Houghton,
	cgroups, linux-kernel

This series fixes some issues with access_tracking_perf_test when MGLRU
or NUMA balancing are in use.

With MGLRU, touching a page doesn't necessarily clear the Idle flag.
This has come up in the past, and the recommendation was to use MGLRU
generation numbers[1], which this series does.

With NUMA balancing, pages are temporarily mapped as PROT_NONE, so the
SPTEs will be zapped, losing the Accessed bits. The fix here is, in the
event we have lost access information to print a warning and continue
with the test, just like what we do if the test is running a nested VM.

A flag is added for the user to specify if they wish for the test to
always enforce or always skip this check.

Based on kvm/next.

Changelog:

v3[4] -> v4:
- Multiple fixes to access_tracking_perf_test:
  1. Fix for software-managed A/D-bit configs.
  2. Fix for expected number of pages when guest page size is >
     PAGE_SIZE.
  3. Properly check youngest generation when looking for pages.
- Do an initial aging pass for MGLRU. This allows us to check that pages
  move back to the youngest generation after the first access pass.
- Add controller-root location logic in the cgroup utils, and use this
  to make the test work for cgroup-v1 (thanks Sean!).
- Some cleanup for access_tracking_perf_test code, comments, warning
  messages, and the commit message (thanks Sean!).

v2[3] -> v3:
- Applied David's directory fix on patch 3.
- Added SoB-by, R-by (patch 2, missed in v2), and A-by.

v1[2] -> v2:
- Re-add clone3_selftests.h for cgroup selftests (thanks Michal!)
- Some comment fixes, patches 2 and 5 (thanks Maxim!).

[1]: https://lore.kernel.org/all/CAOUHufZeADNp_y=Ng+acmMMgnTR=ZGFZ7z-m6O47O=CmJauWjw@mail.gmail.com/
[2]: https://lore.kernel.org/kvm/20250327012350.1135621-1-jthoughton@google.com/
[3]: https://lore.kernel.org/kvm/20250331213025.3602082-1-jthoughton@google.com/
[4]: https://lore.kernel.org/kvm/20250414200929.3098202-1-jthoughton@google.com/

James Houghton (3):
  cgroup: selftests: Move cgroup_util into its own library
  KVM: selftests: Build and link selftests/cgroup/lib into KVM selftests
  KVM: selftests: access_tracking_perf_test: Use MGLRU for access
    tracking

Maxim Levitsky (1):
  KVM: selftests: access_tracking_perf_test: Add option to skip the
    sanity check

Sean Christopherson (3):
  KVM: selftests: Extract guts of THP accessor to standalone sysfs
    helpers
  cgroup: selftests: Move memcontrol specific helpers out of common
    cgroup_util.c
  cgroup: selftests: Add API to find root of specific controller

 tools/testing/selftests/cgroup/Makefile       |  21 +-
 .../selftests/cgroup/{ => lib}/cgroup_util.c  | 118 ++----
 .../cgroup/{ => lib/include}/cgroup_util.h    |  13 +-
 .../testing/selftests/cgroup/lib/libcgroup.mk |  19 +
 .../selftests/cgroup/test_memcontrol.c        |  78 ++++
 tools/testing/selftests/kvm/Makefile.kvm      |   4 +-
 .../selftests/kvm/access_tracking_perf_test.c | 281 +++++++++++--
 .../selftests/kvm/include/lru_gen_util.h      |  51 +++
 .../testing/selftests/kvm/include/test_util.h |   1 +
 .../testing/selftests/kvm/lib/lru_gen_util.c  | 386 ++++++++++++++++++
 tools/testing/selftests/kvm/lib/test_util.c   |  42 +-
 11 files changed, 865 insertions(+), 149 deletions(-)
 rename tools/testing/selftests/cgroup/{ => lib}/cgroup_util.c (88%)
 rename tools/testing/selftests/cgroup/{ => lib/include}/cgroup_util.h (91%)
 create mode 100644 tools/testing/selftests/cgroup/lib/libcgroup.mk
 create mode 100644 tools/testing/selftests/kvm/include/lru_gen_util.h
 create mode 100644 tools/testing/selftests/kvm/lib/lru_gen_util.c


base-commit: 45eb29140e68ffe8e93a5471006858a018480a45
-- 
2.49.0.1015.ga840276032-goog


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2025-05-20 16:48 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-08 18:46 [PATCH v4 0/7] KVM: selftests: access_tracking_perf_test fixes for NUMA balancing and MGLRU James Houghton
2025-05-08 18:46 ` [PATCH v4 1/7] KVM: selftests: Extract guts of THP accessor to standalone sysfs helpers James Houghton
2025-05-08 18:46 ` [PATCH v4 2/7] KVM: selftests: access_tracking_perf_test: Add option to skip the sanity check James Houghton
2025-05-08 18:46 ` [PATCH v4 3/7] cgroup: selftests: Move memcontrol specific helpers out of common cgroup_util.c James Houghton
2025-05-08 18:46 ` [PATCH v4 4/7] cgroup: selftests: Move cgroup_util into its own library James Houghton
2025-05-08 18:46 ` [PATCH v4 5/7] cgroup: selftests: Add API to find root of specific controller James Houghton
2025-05-08 18:46 ` [PATCH v4 6/7] KVM: selftests: Build and link selftests/cgroup/lib into KVM selftests James Houghton
2025-05-08 18:46 ` [PATCH v4 7/7] KVM: selftests: access_tracking_perf_test: Use MGLRU for access tracking James Houghton
2025-05-16 18:47   ` Sean Christopherson
2025-05-20 16:48 ` [PATCH v4 0/7] KVM: selftests: access_tracking_perf_test fixes for NUMA balancing and MGLRU Sean Christopherson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.