linux-mips
[Top] [All Lists]

Re: [PATCH] MIPS: CM: Drop WARN_ON(vp != 0)

To: James Hogan <james.hogan@mips.com>
Subject: Re: [PATCH] MIPS: CM: Drop WARN_ON(vp != 0)
From: Ralf Baechle <ralf@linux-mips.org>
Date: Wed, 6 Dec 2017 14:57:45 +0100
Cc: Paul Burton <paul.burton@mips.com>, James Hogan <jhogan@kernel.org>, linux-mips@linux-mips.org, stable@vger.kernel.org
In-reply-to: <20171205222822.15034-1-james.hogan@mips.com>
List-archive: <http://www.linux-mips.org/archives/linux-mips/>
List-help: <mailto:ecartis@linux-mips.org?Subject=help>
List-id: linux-mips <linux-mips.eddie.linux-mips.org>
List-owner: <mailto:ralf@linux-mips.org>
List-post: <mailto:linux-mips@linux-mips.org>
List-software: Ecartis version 1.0.0
List-subscribe: <mailto:ecartis@linux-mips.org?subject=subscribe%20linux-mips>
List-unsubscribe: <mailto:ecartis@linux-mips.org?subject=unsubscribe%20linux-mips>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <20171205222822.15034-1-james.hogan@mips.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.9.1 (2017-09-22)
On Tue, Dec 05, 2017 at 10:28:22PM +0000, James Hogan wrote:

> Since commit 68923cdc2eb3 ("MIPS: CM: Add cluster & block args to
> mips_cm_lock_other()"), mips_smp_send_ipi_mask() has used
> mips_cm_lock_other_cpu() with each CPU number, rather than
> mips_cm_lock_other() with the first VPE in each core. Prior to r6,
> multicore multithreaded systems such as dual-core dual-thread
> interAptivs with CPU Idle enabled (e.g. MIPS Creator Ci40) results in
> mips_cm_lock_other() repeatedly hitting WARN_ON(vp != 0).
> 
> There doesn't appear to be anything fundamentally wrong about passing a
> non-zero VP/VPE number, even if it is a core's region that is locked
> into the other region before r6, so remove that particular WARN_ON().
> 
> Fixes: 68923cdc2eb3 ("MIPS: CM: Add cluster & block args to 
> mips_cm_lock_other()")
> Signed-off-by: James Hogan <jhogan@kernel.org>
> Reviewed-by: Paul Burton <paul.burton@mips.com>
> Cc: Ralf Baechle <ralf@linux-mips.org>
> Cc: linux-mips@linux-mips.org
> Cc: <stable@vger.kernel.org> # 4.14+
> ---
>  arch/mips/kernel/mips-cm.c | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/arch/mips/kernel/mips-cm.c b/arch/mips/kernel/mips-cm.c
> index dd5567b1e305..8f5bd04f320a 100644
> --- a/arch/mips/kernel/mips-cm.c
> +++ b/arch/mips/kernel/mips-cm.c
> @@ -292,7 +292,6 @@ void mips_cm_lock_other(unsigned int cluster, unsigned 
> int core,
>                                 *this_cpu_ptr(&cm_core_lock_flags));
>       } else {
>               WARN_ON(cluster != 0);
> -             WARN_ON(vp != 0);

I think the reason is that for a while the combination of SMP/CMP with
MT was at the bottom of priorities and nobody really cared about it so
a WARN_ON was thrown in.  Which in this case might well itself be a bug!

  Ralf

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