Received: by 2002:a25:f815:0:0:0:0:0 with SMTP id u21csp4143186ybd; Tue, 25 Jun 2019 15:04:28 -0700 (PDT) X-Google-Smtp-Source: APXvYqyIYC5fFSqnbrhwe/JF8XjylEASPSi0BNUEdk+/peAIarAqekzlIlWoWtQQccx9NzIa+bWe X-Received: by 2002:a17:902:54f:: with SMTP id 73mr1010602plf.246.1561500268568; Tue, 25 Jun 2019 15:04:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1561500268; cv=none; d=google.com; s=arc-20160816; b=QZNTBEBTz+62FhxHfBkToPykURMJSUsCRkJ3nIb46kQ3tICgO6ffConSP1jtdBPaGH SxU9aesaUDGchnLrsxbz7QpbL4j+H+Oe9ewvdSJqdPMIs1GM2kok/nK6h/QZqdNlPI3K Mm7jDZC7zqEEjqbaHpylg9k/DyTrm4EXLeWW9des/5UhAWMi4lTQvFfV7gnIngAQDDDy L3Z2bjFuH2PPS8eBKl5mCA0/XiI5YcjlwloHXI5aOLFFqlRK0x5V6gXe+/PGHKEVoVOP CM1XhIk3tJNDgYDtQYDx+1G+uL5LQi0pjlMphB+MgLskXScjdpBpA2eEH8ytXfNzOAww jd2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :message-id:in-reply-to:subject:cc:to:from:date; bh=x6xlFbem4tGbtjxmB6giQcXIrLhCw3zP/SC7jmvjqMU=; b=IaH/WuLmkSEb3U9UtLgOQJ/JWaLftJT0zlwmqe97zTkbJMBhcFIMIX5T4KCimn4wI9 p1nQqiGsYrMCgMMDwzWLMpDkP/7EMM4g1jgjfRR4T5mCXZFRpw298SWoF83JTpx2uq8J Itg+t6n40LMACrgaoakkyW1bfmECVSl+Xcne1rrwqSVUauNY9OyBQQXiKMwt6UGLpyty /IdZOQnTW4CMN/5jYPtn4LPNHfvm16OIgnuC4d8sesiDuzpvuaA4UgYfR92r/NVUHgOP Fq7ACUSV4sShNY8IXhUFh/YLGubWmVb3BOd3AlWpy/eK8A3t8HKG0fjiMyhG5pooIEKf q7/g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 83si14890146pgc.302.2019.06.25.15.04.12; Tue, 25 Jun 2019 15:04:28 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726508AbfFYWDM (ORCPT + 99 others); Tue, 25 Jun 2019 18:03:12 -0400 Received: from Galois.linutronix.de ([193.142.43.55]:44544 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725782AbfFYWDM (ORCPT ); Tue, 25 Jun 2019 18:03:12 -0400 Received: from p5b06daab.dip0.t-ipconnect.de ([91.6.218.171] helo=nanos) by Galois.linutronix.de with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1hftWn-0001Le-Q7; Wed, 26 Jun 2019 00:03:01 +0200 Date: Wed, 26 Jun 2019 00:03:01 +0200 (CEST) From: Thomas Gleixner To: Dave Hansen cc: Nadav Amit , Peter Zijlstra , Andy Lutomirski , linux-kernel@vger.kernel.org, Ingo Molnar , Borislav Petkov , x86@kernel.org, Dave Hansen Subject: Re: [PATCH 9/9] x86/apic: Use non-atomic operations when possible In-Reply-To: Message-ID: References: <20190613064813.8102-1-namit@vmware.com> <20190613064813.8102-10-namit@vmware.com> User-Agent: Alpine 2.21 (DEB 202 2017-01-01) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 25 Jun 2019, Dave Hansen wrote: > > diff --git a/arch/x86/kernel/apic/x2apic_cluster.c b/arch/x86/kernel/apic/x2apic_cluster.c > > index 7685444a106b..609e499387a1 100644 > > --- a/arch/x86/kernel/apic/x2apic_cluster.c > > +++ b/arch/x86/kernel/apic/x2apic_cluster.c > > @@ -50,7 +50,7 @@ __x2apic_send_IPI_mask(const struct cpumask *mask, int vector, int apic_dest) > > cpumask_copy(tmpmsk, mask); > > /* If IPI should not be sent to self, clear current CPU */ > > if (apic_dest != APIC_DEST_ALLINC) > > - cpumask_clear_cpu(smp_processor_id(), tmpmsk); > > + __cpumask_clear_cpu(smp_processor_id(), tmpmsk); > > tmpmsk is on-stack, but it's a pointer to a per-cpu variable: > > tmpmsk = this_cpu_cpumask_var_ptr(ipi_mask); > > So this one doesn't appear as obviously correct as a mask which itself > is on the stack. The other three look obviously OK, though. It's still correct. The mask is per cpu and protected because interrupts are disabled. I noticed and wanted to amend the change log and forgot. Thanks, tglx