linux-mips
[Top] [All Lists]

Re: [PATCH] When complaining about attempting to set the irq affinity to

To: Mark E Mason <mason@broadcom.com>
Subject: Re: [PATCH] When complaining about attempting to set the irq affinity to multiple cpus,
From: Ralf Baechle <ralf@linux-mips.org>
Date: Wed, 23 Sep 2009 22:24:01 +0100
Cc: Mark Mason <mmason@upwardaccess.com>, "linux-mips@linux-mips.org" <linux-mips@linux-mips.org>
In-reply-to: <BD3F7F1EFBA6D54DB056C4FFA4514008037D6641C8@SJEXCHCCR01.corp.ad.broadcom.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <1253567604-6734-1-git-send-email-mmason@upwardaccess.com> <20090923205004.GA21971@linux-mips.org> <BD3F7F1EFBA6D54DB056C4FFA4514008037D6641C8@SJEXCHCCR01.corp.ad.broadcom.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.5.19 (2009-01-05)
On Wed, Sep 23, 2009 at 02:09:34PM -0700, Mark E Mason wrote:

> Did we ever figure out why the kernel was attempting to set the affinity to 
> more than one CPU? The hardware certainly supports doing that (but we're not 
> at the moment).

The hardware semantics is a bit ususual.  On Sibyte the hardware will
route an interrupt to all CPUs set in the affinity mask.  On most other
systems that I'm aware of it will route the interrupt to only one of
CPUs selected by irq_chip->set_affinity().  We don't want such an
stampede so the Sibyte interrupt code clears all but the lowest set
bit from the set_affinity() argument.  Either way, attempting to set
the mask to an arbitrary non-empty set is entirely legal so the warning
itself was a bug and the volume potencially made them a real problem for
a few users.

  Ralf

<Prev in Thread] Current Thread [Next in Thread>