From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: [PATCH] x86/HPET: mask interrupt while changing affinity Date: Wed, 20 Mar 2013 13:46:06 +0000 Message-ID: <5149BD9E.60502@citrix.com> References: <514704C202000078000C64A0@nat28.tlf.novell.com> <1701498510.20130319165336@eikelenboom.it> <514899B102000078000C6D74@nat28.tlf.novell.com> <135661008.20130319234805@eikelenboom.it> <51497FD902000078000C708A@nat28.tlf.novell.com> <704281841.20130320111312@eikelenboom.it> <5149A53802000078000C71DB@nat28.tlf.novell.com> <12710184253.20130320125556@eikelenboom.it> <5149CA0202000078000C72BD@nat28.tlf.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <5149CA0202000078000C72BD@nat28.tlf.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Jan Beulich Cc: Sander Eikelenboom , "Keir (Xen.org)" , xen-devel List-Id: xen-devel@lists.xenproject.org On 20/03/13 13:38, Jan Beulich wrote: >>>> On 20.03.13 at 12:55, Sander Eikelenboom wrote: >> Close but not entirely ;) > Close to not crashing, maybe, but whether this really helps with your > problem is still entirely unclear. > >> See attached serial log > Okay, I wasn't even aware of that assertion in _spin_lock_irq(). > > Keir, do you really think this is necessary? In the prior patch > version, handle_hpet_broadcast() had a flow like this As I have been playing with spinlocks and the recursive NMI path, I would say that the assertion is necessary, given the other callsites of spin_{un,}lock_irq() > > spin_lock_irqsave(); > ... > spin_unlock_irqrestore(); > ... > if ( next_event != STIME_MAX ) > { > spin_lock_irq(); > ... > spin_unlock_irqrestore(); > } > > avoiding the saving of the flags in the second lock acquire. Said > assertion makes it impossible to do this. I would agree that in this case the logic is correct despite the assertion. Overall, I would argue that obviously correct matching locking pairs is more important the performance penalty from an additional pushf & mov ~Andrew > > Sander, in any case, attached a fixed version of the patch (I had > to guess which of the two spin_lock_irq() calls it was, as the log > was incomplete in that the stack trace got dropped, but am pretty > positive that it was the one in handle_hpet_broadcast()). > > Jan >