Message ID | 20220922213522.68861-1-peterx@redhat.com |
---|---|
State | New |
Headers | show |
Series | KVM: dirty ring: Add memory barrier when marking pfn collected | expand |
On 9/23/22 7:35 AM, Peter Xu wrote: > Following commit 4802bf910eee9, add the other missing barrier when marking > the PFN as collected. This will also be required just like 4802bf910eee9 > on weak ordering architectures like aarch64. > > Cc: Marc Zyngier <maz@kernel.org> > Cc: Gavin Shan <gshan@redhat.com> > Cc: Paolo Bonzini <pbonzini@redhat.com> > Signed-off-by: Peter Xu <peterx@redhat.com> > --- > accel/kvm/kvm-all.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > Reviewed-by: Gavin Shan <gshan@redhat.com> > diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c > index 136c8eaed3..60a044048e 100644 > --- a/accel/kvm/kvm-all.c > +++ b/accel/kvm/kvm-all.c > @@ -728,7 +728,11 @@ static bool dirty_gfn_is_dirtied(struct kvm_dirty_gfn *gfn) > > static void dirty_gfn_set_collected(struct kvm_dirty_gfn *gfn) > { > - gfn->flags = KVM_DIRTY_GFN_F_RESET; > + /* > + * Write the flags after reading the entry. Should pair with another > + * smp_load_acquire() in KVM when reset dirty rings. > + */ > + qatomic_store_release(&gfn->flags, KVM_DIRTY_GFN_F_RESET); > } > > /* >
Ping?
diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index 136c8eaed3..60a044048e 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -728,7 +728,11 @@ static bool dirty_gfn_is_dirtied(struct kvm_dirty_gfn *gfn) static void dirty_gfn_set_collected(struct kvm_dirty_gfn *gfn) { - gfn->flags = KVM_DIRTY_GFN_F_RESET; + /* + * Write the flags after reading the entry. Should pair with another + * smp_load_acquire() in KVM when reset dirty rings. + */ + qatomic_store_release(&gfn->flags, KVM_DIRTY_GFN_F_RESET); } /*
Following commit 4802bf910eee9, add the other missing barrier when marking the PFN as collected. This will also be required just like 4802bf910eee9 on weak ordering architectures like aarch64. Cc: Marc Zyngier <maz@kernel.org> Cc: Gavin Shan <gshan@redhat.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Peter Xu <peterx@redhat.com> --- accel/kvm/kvm-all.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)