From: Wu Fei <atwufei@163.com>
To: Sean Christopherson <seanjc@google.com>, wu.fei9@sanechips.com.cn
Cc: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org,
linux-kselftest@vger.kernel.org, kvm@vger.kernel.org,
kvm-riscv@lists.infradead.org, anup@brainfault.org,
atish.patra@linux.dev, pjw@kernel.org, palmer@dabbelt.com,
aou@eecs.berkeley.edu, alex@ghiti.fr, pbonzini@redhat.com,
shuah@kernel.org
Subject: Re: [PATCH 1/3] KVM: selftests: Add unit to dirty_log_test
Date: Wed, 13 May 2026 20:27:49 +0800 [thread overview]
Message-ID: <f64029bf-1f4c-40a7-860a-eb04fbe5317b@163.com> (raw)
In-Reply-To: <agO_0ejKd0x38_-E@google.com>
On 5/13/26 08:03, Sean Christopherson wrote:
> On Mon, May 11, 2026, wu.fei9@sanechips.com.cn wrote:
>> Currently dirty_log_test hardcodes usleep 1ms in each interval, which
>> could be too short for guest to write and fault in enough pages, then
>> there is less chance to test the write protection mechanism, especially
>> in the case of (log_mode != LOG_MODE_DIRTY_RING).
>
> But when log_mode != LOG_MODE_DIRTY_RING, the individual sleep time is largely
> meaningless, because the test won't reap the bitmaps for iterations > 0.
>
> if (i && host_log_mode != LOG_MODE_DIRTY_RING)
> continue;
>
The first usleep matters in the case of KVM_DIRTY_LOG_INITIALLY_SET.
The dirty bitmap is not precise in the first get_dirty_log, all pages
are marked as dirty but most of them are not populated in page table,
this creates the situation I mentioned in the cover letter.
"when the range to wp is
[0xfffff01fc000, 0xfffff023c000) , if found_leaf of 0xfffff01fc000
returns false and page_size is 2MB, it skips the whole range, but it's
possible to have valid entries in [0xfffff0200000, 0xfffff023c000), so
only [0xfffff01fc000, 0xfffff0200000) can be skipped safely."
>>
>> Unit is introduced to replace the default 1ms if specified in command
>> line. The following test can't trigger failure on my riscv vm:
>
> Failure of what? And does the failure really not reproduce with a higher interval?
On riscv, it fails to write protect some pages with valid page table
entry then loses track of dirty pages. Higher interval doesn't help
because only the first usleep matters, after the first
collect_dirty_pages, all dirty pages are tracked precisely then there is
no such problem.
>
>>
>> # ./dirty_log_test -m 21 -M clear-log
>>
>> By enlarging unit, it fails every time:
>
> "unit" is way too vague. Even looking at the code, it's not clear to me what
> you intended a "unit" to be. I'm not entirely opposed to providing the user with
> more control over the innards of the test, but the interface needs to be somewhat
> intuitive.
Basically, a unit is the time of one usleep(), any suggestions?
Thanks,
Fei.
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2026-05-13 12:29 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <202605111849442561v1a0B_7W1L2Z-ENusLaP@zte.com.cn>
2026-05-11 11:23 ` [PATCH 1/3] KVM: selftests: Add unit to dirty_log_test wu.fei9
2026-05-13 0:03 ` Sean Christopherson
2026-05-13 12:27 ` Wu Fei [this message]
2026-05-11 11:24 ` [PATCH 2/3] RISC-V: KVM: Fix skip of valid pages in kvm_riscv_gstage_wp_range wu.fei9
2026-05-11 11:29 ` [PATCH 3/3] RISC-V: KVM: Fix skip of valid pages in kvm_riscv_gstage_unmap_range wu.fei9
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=f64029bf-1f4c-40a7-860a-eb04fbe5317b@163.com \
--to=atwufei@163.com \
--cc=alex@ghiti.fr \
--cc=anup@brainfault.org \
--cc=aou@eecs.berkeley.edu \
--cc=atish.patra@linux.dev \
--cc=kvm-riscv@lists.infradead.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=palmer@dabbelt.com \
--cc=pbonzini@redhat.com \
--cc=pjw@kernel.org \
--cc=seanjc@google.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