[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 1/2] IOMMU/spinlock: Fix a bug found in AMD IOMMU initialization
CC Kevin, On March 09, 2016 11:00pm, <dario.faggioli@xxxxxxxxxx> wrote: > On Wed, 2016-03-09 at 21:17 +0800, Quan Xu wrote: > > pcidevs_lock should be held with interrupt enabled. > > > There's a message from Jan when he says: > <<Well, I'd say something like "pcidevs_lock doesn't require interrupts to be > disabled while being acquired".>> > > :-O > > > However there remains > > an exception in AMD IOMMU code, where the lock is acquired with > > interrupt disabled. This inconsistency might lead to deadlock. > > > I appreciate that 'might' is weaker than 'can'. Personally, I still dob't > find this > correct, or at least clear enough, referred to this patch, but I won't be in > the > way because of this. > > > The fix is straightforward to use spin_lock instead. Also interrupt > > has been enabled when this function is invoked, so we're sure > > consistency around pcidevs_lock can be guaranteed after this fix. > > > And I also can't really get what "so we're sure consistency around > pcidevs_lock > can be guaranteed after this fix" actually means, but again, that's probably > me, > and it's fine. > > However, > > > Signed-off-by: Quan Xu <quan.xu@xxxxxxxxx> > > Reviewed-by: Dario Faggioli <dario.faggioli@xxxxxxxxxx> > > > This still stands **only** if the very first sentence "pcidevs_lock should be > held > with interrupt enabled" is changed to "pcidevs_lock doesn't require > interrupts to > be disabled while being acquired". > Dario, I am open for this change:). When I read: 1. (look at "Lesson 3: spinlocks revisited.") https://www.kernel.org/doc/Documentation/locking/spinlocks.txt 2. comment inside check_lock(), in xen/common/spinlock.c, in Xen's codebase. 3. the "Linux Device Drivers, 3rd Edition" book , http://www.makelinux.net/ldd3/chp-5-sect-5 I found that: - "We partition locks into IRQ-safe (__always__ held with IRQs disabled) and IRQ-unsafe (__always__ held with IRQs enabled) types". It looks like Kevin's description is better. I also found that you mentioned in this thread: "... __except for very special situations__". If it is true, I think your description is better. Thanks for your time..:):) Quan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |