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

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



On Fri, 2009-03-06 at 15:31 +0800, Kouya Shimura wrote:
> Qing He writes:
> > 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.

The problem here and in many other place is whether we can safely assume
that dom0 operations are completely within expectation

> 
> > > - 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...

I'm OK with that, though I think msixtbl_list_lock is more closer to the
list. Are you going to use something named like this?

Thanks,
Qing

_______________________________________________
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®.