[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