From: Leonardo Bras <leo.bras@arm.com>
To: Paolo Bonzini <pbonzini@redhat.com>,
Shuah Khan <shuah@kernel.org>,
Sean Christopherson <seanjc@google.com>,
David Matlack <dmatlack@google.com>,
Leonardo Bras <leo.bras@arm.com>,
Ackerley Tng <ackerleytng@google.com>,
Oliver Upton <oupton@kernel.org>, Marc Zyngier <maz@kernel.org>,
Wu Fei <wu.fei9@sanechips.com.cn>,
Claudio Imbrenda <imbrenda@linux.ibm.com>,
Steffen Eiden <seiden@linux.ibm.com>
Cc: kvm@vger.kernel.org, linux-kselftest@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: [RFC PATCH v4 0/3] KVM: selftests: Improvements on dirty-ring
Date: Wed, 29 Jul 2026 17:15:15 +0100 [thread overview]
Message-ID: <20260729161519.3778839-2-leo.bras@arm.com> (raw)
Add support to dirty-ring on dirty_log_perf_test, so we can measure
performance differences when we change / improve the mechanism.
One major conflict I had in this set is that dirty-ring needs to be
enabled after the VM was created, but before any cpu is created, so
for that, I made a few changes on memstress so it can actually take
dirty-ring size as a parameter for VM creation. (Patch #1)
I honestly don't think it's pretty, but I could not think on a
better way of doing this without messing too much in the code.
Also added some checks in dirty-ring enable, so an error message on
ring size is more informative.
Please provide feedback :)
Thanks!
Leo
Changes since RFCv3:
- Using acquire/release barriers to make sure there is no reorder between
incrementing iteration and summing the time spent on cleaning.
- Improved ring-size checks, although not perfect due to reserved entries
affecting minimum size.
- Do not allocate bitmaps for dirty-ring tests, as they are unused.
- Improve help text
- Make sure ret==0 before going back to vcpu_run in dirty-ring case
Link: https://lore.kernel.org/all/20260708152232.2568907-1-leo.bras@arm.com/
Changes since RFCv2:
- Added mutex to make sure only a single vcpu is
collecting/cleaning at a time. This gets us the ability to
test return values, and not account for kvm.slot_lock waiting time.
- Stuff reported by Sashiko
- Return value always positive, so assert was pointless
- Concurrency inflating the time for dirty-ring cleaning
Link: https://lore.kernel.org/all/20260629105950.1790259-1-leo.bras@arm.com/
Changes since RFCv1:
- Stuff reported by Sashiko
- Fixed elements / byte size wrapping issue
- Removed element count due to concurrency
- Testing exit_reason instead of ioctl return value
- Some nits
Link: https://lore.kernel.org/all/20260624171656.1737580-1-leo.bras@arm.com/
Leonardo Bras (3):
KVM: selftests: memstress: Add option to enable dirty-ring on VM
creation
KVM: selftests: Check dirty-ring size before enabling
KVM: selftests: dirty_log_perf_test: Add dirty-ring support
.../testing/selftests/kvm/include/memstress.h | 3 +-
.../selftests/kvm/access_tracking_perf_test.c | 2 +-
.../selftests/kvm/demand_paging_test.c | 2 +-
.../selftests/kvm/dirty_log_perf_test.c | 128 ++++++++++++++++--
tools/testing/selftests/kvm/lib/kvm_util.c | 21 ++-
tools/testing/selftests/kvm/lib/memstress.c | 34 ++++-
.../kvm/memslot_modification_stress_test.c | 2 +-
.../kvm/x86/dirty_log_page_splitting_test.c | 2 +-
8 files changed, 167 insertions(+), 27 deletions(-)
base-commit: f5098b6bae761e346ebcd9da7f95622c04733cff
--
2.55.0
next reply other threads:[~2026-07-29 16:15 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-29 16:15 Leonardo Bras [this message]
2026-07-29 16:15 ` [RFC PATCH v4 1/3] KVM: selftests: memstress: Add option to enable dirty-ring on VM creation Leonardo Bras
2026-07-29 16:15 ` [RFC PATCH v4 2/3] KVM: selftests: Check dirty-ring size before enabling Leonardo Bras
2026-07-29 16:15 ` [RFC PATCH v4 3/3] KVM: selftests: dirty_log_perf_test: Add dirty-ring support Leonardo Bras
2026-07-29 16:26 ` sashiko-bot
2026-07-29 16:46 ` Leonardo Bras
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260729161519.3778839-2-leo.bras@arm.com \
--to=leo.bras@arm.com \
--cc=ackerleytng@google.com \
--cc=dmatlack@google.com \
--cc=imbrenda@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=maz@kernel.org \
--cc=oupton@kernel.org \
--cc=pbonzini@redhat.com \
--cc=seanjc@google.com \
--cc=seiden@linux.ibm.com \
--cc=shuah@kernel.org \
--cc=wu.fei9@sanechips.com.cn \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox