[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Re: [PATCH][RFC] fix some spinlock issues in vmsi



Hi Qing,

Thank you for review and elaboration.

Qing He writes:
> > - d->arch.hvm_domain.msixtbl_list_lock is redundant.
> >   irq_desc->lock covers it, thus remove the spinlock.
> 
> No, it's not redundant. msixtbl_list_lock is to protect msixtbl_list,
> which may contain entries for multiple irqs, consider if two
> pt_bind_irq are called simultaneously, irq_desc->lock wouldn't be
> enough to protect the list.

I see. Although two pt_bind_irq are hardly called simultaneously.

> > - ASSERT(spin_is_locked(&pcidevs_lock)) is not needed.
> >   At first, I intended to add the enclosure of pcidevs_lock.
> >   But this assertion seems pointless. pcidevs_lock is
> >   for alldevs_list and msixtbl_pt_xxx functions never refer it.
> 
> I was thinking that pcidevs_lock is already held for msixtbl_pt_xxx, but
> obviously I was wrong:-) However, it's not that pointless, msixtbl_pt_xxx
> refers to the content of pci_dev, the use of pcidevs_lock is intended to
> protect it against destructive modification, like an improper
> PHYDEVOP_manage_pci_remove. It may not be neccessary for a well-written
> device model, but that's something we can't rely on.

Okay, one more question.
If ASSERT(spin_is_locked(&pcidevs_lock)) is needed,
msixtbl_list_lock becomes redundant?
(i.e. pcidevs_lock must covers it)
Any way, msixtbl_list_lock would better be remained for the future...

Thanks,
Kouya

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.