 
	
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] x86/HPET: mask interrupt while changing affinity
 On 20/03/13 13:38, Jan Beulich wrote:
>>>> On 20.03.13 at 12:55, Sander Eikelenboom <linux@xxxxxxxxxxxxxx> 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
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
 
 | 
|  | Lists.xenproject.org is hosted with RackSpace, monitoring our |