linux-mips
[Top] [All Lists]

Re: [RFC & PATCH] fixing tlb flush race problem on smp

To: Jun Sun <jsun@mvista.com>
Subject: Re: [RFC & PATCH] fixing tlb flush race problem on smp
From: Ralf Baechle <ralf@linux-mips.org>
Date: Wed, 29 Jan 2003 09:06:27 +0100
Cc: Juan Quintela <quintela@mandrakesoft.com>, linux-mips@linux-mips.org
In-reply-to: <20030127170346.S11633@mvista.com>; from jsun@mvista.com on Mon, Jan 27, 2003 at 05:03:46PM -0800
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <20030121143726.C16939@mvista.com> <86bs297hpd.fsf@trasno.mitica> <20030127170346.S11633@mvista.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.2.5.1i
On Mon, Jan 27, 2003 at 05:03:46PM -0800, Jun Sun wrote:

> I also find a stupid typo and a subtle hole in my original patch.
> Here is an updated version, for 2.4/mips only.  If it looks ok, I 
> will extend to other sub-arches/trees.
> 
> This new one is pretty nice in that all mmu related operations
> are put into one file and it is much easier to ensure correctness
> later.

I like this one.

> +
> +     /*
> +      * Mark current->active_mm as not "active" anymore.
> +      * We don't want to mislead possible IPI tlb flush routines.
> +      */
> +     clear_bit(cpu, &prev->cpu_vm_mask);
> +     set_bit(cpu, &next->cpu_vm_mask);
> +
> +     local_irq_restore(flags);

I don't think it's necessary to protect the clear_bit and set_bit operations
with local_irq_save ... local_irq_restore.

In addition because switch_mm is always called with interrupts enabled you
can simplify that to local_irq_disable ... local_irq_enable.

  Ralf

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