Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753445Ab3HAAlm (ORCPT ); Wed, 31 Jul 2013 20:41:42 -0400 Received: from mail-ve0-f176.google.com ([209.85.128.176]:43209 "EHLO mail-ve0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752178Ab3HAAlk (ORCPT ); Wed, 31 Jul 2013 20:41:40 -0400 MIME-Version: 1.0 In-Reply-To: References: <20130731174335.006a58f9@annuminas.surriel.com> <51F98CAB.80100@redhat.com> <51F99218.4060104@redhat.com> <51F999DE.7080200@redhat.com> Date: Wed, 31 Jul 2013 17:41:39 -0700 X-Google-Sender-Auth: CLfA9D5wO04Im8RTly_d_2dh5hE Message-ID: Subject: Re: [PATCH] sched,x86: optimize switch_mm for multi-threaded workloads From: Linus Torvalds To: Paul Turner Cc: Rik van Riel , Linux Kernel Mailing List , jmario@redhat.com, Peter Anvin , dzickus@redhat.com, Ingo Molnar Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1408 Lines: 34 On Wed, Jul 31, 2013 at 4:14 PM, Paul Turner wrote: > We attached the following explanatory comment to our version of the patch: > > /* > * In the common case (two user threads sharing mm > * switching) the bit will be set; avoid doing a write > * (via atomic test & set) unless we have to. This is > * safe, because no other CPU ever writes to our bit > * in the mask, and interrupts are off (so we can't > * take a TLB IPI here.) If we don't do this, then > * switching threads will pingpong the cpumask > * cacheline. > */ So as mentioned, the "interrupts will be off" is actually dubious. It's true for the context switch case, but not for the activate_mm(). However, as Rik points out, activate_mm() is different in that we shouldn't have any preexisting MMU state anyway. And besides, that should never trigger the "prev == next" case. But it does look a bit messy, and even your comment is a bit misleading (it might make somebody think that all of switch_mm() is protected from interrupts) . Anyway, I'm perfectly ok with the patch itself, but I just wanted to make sure people had thought about these things. Linus -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/