Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp1790438pxk; Tue, 1 Sep 2020 07:54:35 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxt+4+nzTAAvy3oWyG7/Xe/LuS4xFvS78pEqq8aikML7XkouHI8yiNJI9369SaEa6kDvJ8a X-Received: by 2002:a17:906:f8d2:: with SMTP id lh18mr1684931ejb.363.1598972075346; Tue, 01 Sep 2020 07:54:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1598972075; cv=none; d=google.com; s=arc-20160816; b=rs53oEZgWw/G9NxwEGrPoHytfDPhUCjuakiDYx1EiuBy+RhEoBcEyOWtfL1X00JRri SqdLVzqRLRmAtt8vryTVOgE7t5ITOBcYsDEkSpuu1giPvKuvbA334axzxTW4j87xWCOw OOjVWE6zMdWN938ibnpi/+qwCWS1QFo6RWxRC+K9juXD8izKBrd8HCV8XY2U2x5CF4Jv huk13jDtUhD+ZPD5ha0afMWUQgKXa3QZ3FFIUU0TY/nsH7hiYk87TImcQF6teqdeLWKn AsjvzmBzWzvxjFROm2Menl25uqtw1MQsiKuY6f1CPWAlVeXRuKUTfbRVZI2qRLCJAXFa j3CA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=QL3K/gIiHintao5fWaKqwLGwbAX7XUDxCTBN8Ky27iA=; b=VPSZomw1Cg3p1bQezxwBlwjxS+xR1NUj6YL8EbZ5m3+IHFO5D4Cqxe/py/w7lkGTq1 u6yq193iKnYnWjbHaYTHPaBBVoXHehfh6UDUeIzXNmDYMbYBXI4/KdGGAxJSuoqxslqZ 8vhtJVBf+32UUmrteBINLGuPZzNHcm5LZlqnpsyObKTrgfQ1ipmLrAEARJW84VSU02OJ CInf5quv34uf0yFq0ipp8xi3w6Y6lk9jco7CzwI8q8dHUoVbLQTa1zf+9ed8WXJyQwmC uMS7YqT/DwfQs/+txqPAAEeRXdnH4/pJ7yeEjvegkfhllz8eZgUvGCxl47tVttsRisG2 6CkA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=JJayGzbz; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r11si783578eju.461.2020.09.01.07.54.11; Tue, 01 Sep 2020 07:54:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=JJayGzbz; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728627AbgIAOwj (ORCPT + 99 others); Tue, 1 Sep 2020 10:52:39 -0400 Received: from mail.kernel.org ([198.145.29.99]:36630 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728722AbgIAOu5 (ORCPT ); Tue, 1 Sep 2020 10:50:57 -0400 Received: from disco-boy.misterjones.org (disco-boy.misterjones.org [51.254.78.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 81ECE2151B; Tue, 1 Sep 2020 14:50:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1598971856; bh=s6pjwzb229K6JRSGdbVTLBQhHBJgz3WMDtVrwmLVuMs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JJayGzbzAbNjsCz5fwzme1chr228c8Tq+xAUoLTZMDTei/uLD/A6SBKbMuCKGIf1M c3gyKDqTHQ4H8WEm7lbupg9V2qkSsvonYrHdlgB6PL0QuYdi38beGoQ/lELBPkuyGJ XTqru8E9mjhwXuovduaG07xM+yfVJPF4m3v9wjBY= Received: from 78.163-31-62.static.virginmediabusiness.co.uk ([62.31.163.78] helo=why.lan) by disco-boy.misterjones.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kD7Vd-008IQP-EJ; Tue, 01 Sep 2020 15:43:41 +0100 From: Marc Zyngier To: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Will Deacon , Catalin Marinas , Russell King , Thomas Gleixner , Jason Cooper , Sumit Garg , Valentin Schneider , Florian Fainelli , Gregory Clement , Andrew Lunn , Saravana Kannan , kernel-team@android.com, Valentin Schneider Subject: [PATCH v3 14/16] arm64: Remove custom IRQ stat accounting Date: Tue, 1 Sep 2020 15:43:22 +0100 Message-Id: <20200901144324.1071694-15-maz@kernel.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200901144324.1071694-1-maz@kernel.org> References: <20200901144324.1071694-1-maz@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SA-Exim-Connect-IP: 62.31.163.78 X-SA-Exim-Rcpt-To: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, will@kernel.org, catalin.marinas@arm.com, linux@arm.linux.org.uk, tglx@linutronix.de, jason@lakedaemon.net, sumit.garg@linaro.org, Valentin.Schneider@arm.com, f.fainelli@gmail.com, gregory.clement@bootlin.com, andrew@lunn.ch, saravanak@google.com, kernel-team@android.com, valentin.schneider@arm.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Let's switch the arm64 code to the core accounting, which already does everything we need. Reviewed-by: Valentin Schneider Signed-off-by: Marc Zyngier --- arch/arm64/include/asm/hardirq.h | 9 --------- arch/arm64/kernel/smp.c | 24 ++++++------------------ 2 files changed, 6 insertions(+), 27 deletions(-) diff --git a/arch/arm64/include/asm/hardirq.h b/arch/arm64/include/asm/hardirq.h index 985493af704b..5ffa4bacdad3 100644 --- a/arch/arm64/include/asm/hardirq.h +++ b/arch/arm64/include/asm/hardirq.h @@ -13,21 +13,12 @@ #include #include -#define NR_IPI 7 - typedef struct { unsigned int __softirq_pending; - unsigned int ipi_irqs[NR_IPI]; } ____cacheline_aligned irq_cpustat_t; #include /* Standard mappings for irq_cpustat_t above */ -#define __inc_irq_stat(cpu, member) __IRQ_STAT(cpu, member)++ -#define __get_irq_stat(cpu, member) __IRQ_STAT(cpu, member) - -u64 smp_irq_stat_cpu(unsigned int cpu); -#define arch_irq_stat_cpu smp_irq_stat_cpu - #define __ARCH_IRQ_EXIT_IRQS_DISABLED 1 struct nmi_ctx { diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c index 58fb155fb0ab..07b45466e0bb 100644 --- a/arch/arm64/kernel/smp.c +++ b/arch/arm64/kernel/smp.c @@ -72,7 +72,8 @@ enum ipi_msg_type { IPI_CPU_CRASH_STOP, IPI_TIMER, IPI_IRQ_WORK, - IPI_WAKEUP + IPI_WAKEUP, + NR_IPI }; static int ipi_irq_base __read_mostly; @@ -800,26 +801,15 @@ void show_ipi_list(struct seq_file *p, int prec) unsigned int cpu, i; for (i = 0; i < NR_IPI; i++) { + unsigned int irq = irq_desc_get_irq(ipi_desc[i]); seq_printf(p, "%*s%u:%s", prec - 1, "IPI", i, prec >= 4 ? " " : ""); for_each_online_cpu(cpu) - seq_printf(p, "%10u ", - __get_irq_stat(cpu, ipi_irqs[i])); + seq_printf(p, "%10u ", kstat_irqs_cpu(irq, cpu)); seq_printf(p, " %s\n", ipi_types[i]); } } -u64 smp_irq_stat_cpu(unsigned int cpu) -{ - u64 sum = 0; - int i; - - for (i = 0; i < NR_IPI; i++) - sum += __get_irq_stat(cpu, ipi_irqs[i]); - - return sum; -} - void arch_send_call_function_ipi_mask(const struct cpumask *mask) { smp_cross_call(mask, IPI_CALL_FUNC); @@ -892,10 +882,8 @@ static void do_handle_IPI(int ipinr) { unsigned int cpu = smp_processor_id(); - if ((unsigned)ipinr < NR_IPI) { + if ((unsigned)ipinr < NR_IPI) trace_ipi_entry_rcuidle(ipi_types[ipinr]); - __inc_irq_stat(cpu, ipi_irqs[ipinr]); - } switch (ipinr) { case IPI_RESCHEDULE: @@ -992,7 +980,7 @@ void __init set_smp_ipi_range(int ipi_base, int n) int err; err = request_percpu_irq(ipi_base + i, ipi_handler, - "IPI", &irq_stat); + "IPI", &cpu_number); WARN_ON(err); ipi_desc[i] = irq_to_desc(ipi_base + i); -- 2.27.0