Messages in this thread | | | Subject | Re: [PATCH v9 2/2] kvm: On Ack, De-assert & Notify KVM_IRQFD extension | From | Alex Williamson <> | Date | Tue, 21 Aug 2012 19:48:14 -0600 |
| |
On Wed, 2012-08-22 at 03:14 +0300, Michael S. Tsirkin wrote: > On Tue, Aug 21, 2012 at 03:11:41PM -0600, Alex Williamson wrote: > > On Tue, 2012-08-21 at 23:37 +0300, Michael S. Tsirkin wrote: > > > On Tue, Aug 21, 2012 at 01:29:14PM -0600, Alex Williamson wrote: > > > > + } > > > > + > > > > irq_rt = rcu_dereference_protected(kvm->irq_routing, > > > > lockdep_is_held(&kvm->irqfds.lock)); > > > > irqfd_update(kvm, irqfd, irq_rt); > > > > @@ -267,6 +426,26 @@ kvm_irqfd_assign(struct kvm *kvm, struct kvm_irqfd *args) > > > > > > > > spin_unlock_irq(&kvm->irqfds.lock); > > > > > > > > + if (oadn) { > > > > + synchronize_rcu(); > > > > > > Seems unexpected on assign. > > > What does this synchronize_rcu do? > > > > Because we force the notify below and we need the irqfd we just added to > > the list to be visible on the list for that. > > I do not see it yet - maybe add a comment?
It's entirely possible I'm wrong too. This was an after thought and now that I look at it again, the below irqfd_oadn_notify obviously starts after the list_add, so there shouldn't be any need to wait. Thanks,
Alex
| |