[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_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


> 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



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