public inbox for linux-arm-kernel@lists.infradead.org 
 help / color / mirror / Atom feed
From: catalin.marinas@arm•com (Catalin Marinas)
To: linux-arm-kernel@lists•infradead.org
Subject: BUG: commit "ARM: Remove __ARCH_WANT_INTERRUPTS_ON_CTXSW on pre-ARMv6 CPUs" breaks armv5 with CONFIG_PREEMPT
Date: Fri, 21 Jun 2013 14:52:19 +0100	[thread overview]
Message-ID: <20130621135219.GC4099@arm.com> (raw)
In-Reply-To: <51C42AE0.9070506@pengutronix.de>

On Fri, Jun 21, 2013 at 11:28:48AM +0100, Marc Kleine-Budde wrote:
> On 06/20/2013 01:47 PM, Marc Kleine-Budde wrote:
> > From 306d84d5f0645a86e86d539be0546c4ac758d3d4 Mon Sep 17 00:00:00 2001
> > From: Catalin Marinas <catalin.marinas@arm•com>
> > Date: Thu, 20 Jun 2013 12:12:55 +0100
> > Subject: [PATCH] arm: Fix deferred mm switch on VIVT processors
> > 
> > As of commit b9d4d42ad9 (ARM: Remove __ARCH_WANT_INTERRUPTS_ON_CTXSW on
> > pre-ARMv6 CPUs), the mm switching on VIVT processors is done in the
> > finish_arch_post_lock_switch() function to avoid whole cache flushing
> > with interrupts disabled. The need for deferred mm switch is stored as a
> > thread flag (TIF_SWITCH_MM). However, with preemption enabled, we can
> > have another thread switch before finish_arch_post_lock_switch(). If the
> > new thread has the same mm as the previous 'next' thread, the scheduler
> > will not call switch_mm() and the TIF_SWITCH_MM flag won't be set for
> > the new thread.
> > 
> > This patch moves the switch pending flag to the mm_context_t structure
> > since this is specific to the mm rather than thread.
> > 
> > Signed-off-by: Catalin Marinas <catalin.marinas@arm•com>
> > Reported-by: Marc Kleine-Budde <mkl@pengutronix•de>
> > [mkl: add check for mm]
> > Signed-off-by: Marc Kleine-Budde <mkl@pengutronix•de>
> 
> Works on $CUSTOMERS's hardware.
> 
> Tested-by: Marc Kleine-Budde <mkl@pengutronix•de>

Thanks.

> Catalin, do you take care of the patch? Please add stable on Cc. The fix
> is needed on kernels >= v3.5.

I'll send it to Russell, if possible it should go in for 3.10. I already
added CC stable in my copy (3.5+).

-- 
Catalin

  reply	other threads:[~2013-06-21 13:52 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-20  8:43 BUG: commit "ARM: Remove __ARCH_WANT_INTERRUPTS_ON_CTXSW on pre-ARMv6 CPUs" breaks armv5 with CONFIG_PREEMPT Marc Kleine-Budde
2013-06-20  9:25 ` Will Deacon
2013-06-20  9:51   ` Marc Kleine-Budde
2013-06-20  9:57 ` Catalin Marinas
2013-06-20 10:08   ` Marc Kleine-Budde
2013-06-20 10:14   ` Marc Kleine-Budde
2013-06-20 10:28     ` Catalin Marinas
2013-06-20 11:12       ` Catalin Marinas
2013-06-20 11:35         ` Marc Kleine-Budde
2013-06-20 11:39           ` Marc Kleine-Budde
2013-06-20 11:47             ` Marc Kleine-Budde
2013-06-20 12:48               ` Marc Kleine-Budde
2013-06-20 13:01               ` Catalin Marinas
2013-06-20 13:05                 ` Marc Kleine-Budde
2013-06-21 10:28               ` Marc Kleine-Budde
2013-06-21 13:52                 ` Catalin Marinas [this message]
2013-07-17  8:41                   ` Marc Kleine-Budde
2013-07-17  8:51                     ` Russell King - ARM Linux
2013-07-17 11:48                       ` Marc Kleine-Budde
2013-07-17 19:41                       ` Catalin Marinas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130621135219.GC4099@arm.com \
    --to=catalin.marinas@arm$(echo .)com \
    --cc=linux-arm-kernel@lists$(echo .)infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox