[PATCH v2] KVM: arm64: Move data barrier to end of split walk

Oliver Upton oliver.upton at linux.dev
Thu Aug 8 10:55:49 PDT 2024


Hi Colton,

On Thu, Aug 08, 2024 at 05:42:43PM +0000, Colton Lewis wrote:
> This DSB guarantees page table updates have been made visible to the
> hardware table walker. Moving the DSB from stage2_split_walker() to
> after the walk is finished in kvm_pgtable_stage2_split() results in a
> roughly 70% reduction in Clear Dirty Log Time in
> dirty_log_perf_test (modified to use eager page splitting) when using
> huge pages. This gain holds steady through a range of vcpus
> used (tested 1-64) and memory used (tested 1-64GB).

Would you have time to put together a patch for the dirty_log_perf_test
changes you've made? This would be quite valuable for testing future
improvements to eager page splitting.

> This is safe to do because nothing else is using the page tables while
> they are still being mapped and this is how other page table walkers
> already function. None of them have a data barrier in the walker
> itself because relative ordering of table PTEs to table contents comes
> from the release semantics of stage2_make_pte().
> 
> Signed-off-by: Colton Lewis <coltonlewis at google.com>

The diff itself looks good to me, so:

Acked-by: Oliver Upton <oliver.upton at linux.dev>

-- 
Thanks,
Oliver



More information about the linux-arm-kernel mailing list