All of lore.kernel.org
 help / color / mirror / Atom feed
From: will.deacon@arm.com (Will Deacon)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: mm: ensure TTBR0 is restored when changing ASID on rollover
Date: Wed, 8 Jun 2011 21:49:49 +0100	[thread overview]
Message-ID: <20110608204949.GA4713@e102144-lin.cambridge.arm.com> (raw)
In-Reply-To: <20110608203615.GB13151@n2100.arm.linux.org.uk>

On Wed, Jun 08, 2011 at 09:36:15PM +0100, Russell King - ARM Linux wrote:
> On Wed, Jun 08, 2011 at 09:23:23PM +0100, Will Deacon wrote:
> > On Wed, Jun 08, 2011 at 09:01:06PM +0100, Russell King - ARM Linux wrote:
> > > However, these patches are introducing a brand new race between the
> > > switch_mm code and the reset_context code.
> > > 
> > > With the new switch_mm() code, we switch TTBR0 to be the same as TTBR1.
> > > If we then receive an IPI for reset_context(), we will change TTBR0
> > > to point at a set of page tables which don't contain just global mappings.
> > > 
> > > After returning from reset_context(), we will resume switch_mm(), and
> > > change the ASID value with the page tables pointing to non-global
> > > mappings, violating the whole reason for the switch_mm() change.
> > 
> > Whilst this is a new race condition, it is analagous to the one we have
> > already and could be fixed at the same time.
> 
> Ok, I think we should revert the original patches then.  They were rushed
> in during the merge window, and as can be seen, rushing in patches because
> we _think_ they're right is never the correct thing to do - we've ended
> up with a completely broken situation as stuff now stands.

Seems a shame given that disabling interrupts during switch_mm would fix this,
but yes, reverting them is certainly better than having a broken kernel. I
think you just need to revert 6944/1 and 6943/1; the other two from that series
are fine to be left in.

> Let's take out these changes and sort it out properly - not only do we
> need to sort out these problems but we should also get rid of the
> __ARCH_WANT_INTERRUPTS_ON_CTXSW thing completely.  I have a patch which
> I've only tested on SA-1110 which does this so far, but it needs a little
> more work to clean up some stuff.

Could you post that code please? I can then rebase these patches against it for
future inclusion in mainline. Does the removal of
__ARCH_WANT_INTERRUPTS_ON_CTXSW mean that switch_mm will run with interrupts
disabled by default?

> So, we're weren't - and still aren't - ready for any of these changes.

Once the interrupt stuff is sorted out I can rebase the ASID stuff on top of it
and we should be ready to go.

Cheers,

Will

  reply	other threads:[~2011-06-08 20:49 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-07 10:38 [PATCH] ARM: mm: ensure TTBR0 is restored when changing ASID on rollover Will Deacon
2011-06-08 13:04 ` Catalin Marinas
2011-06-08 20:01 ` Russell King - ARM Linux
2011-06-08 20:23   ` Will Deacon
2011-06-08 20:36     ` Russell King - ARM Linux
2011-06-08 20:49       ` Will Deacon [this message]
2011-06-08 20:55         ` Russell King - ARM Linux
2011-11-23  3:46           ` Stephen Boyd
2011-06-08 21:12       ` Catalin Marinas
2011-06-08 21:49         ` Russell King - ARM Linux
  -- strict thread matches above, loose matches on Subject: below --
2011-05-31 15:39 Will Deacon

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=20110608204949.GA4713@e102144-lin.cambridge.arm.com \
    --to=will.deacon@arm.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.