Received: by 2002:a05:6a10:9afc:0:0:0:0 with SMTP id t28csp2236572pxm; Fri, 4 Mar 2022 12:02:53 -0800 (PST) X-Google-Smtp-Source: ABdhPJxjtawkwjd7OqnLx9Xvj5IPRIe8T/2n/Kn3nQmW1C9SsUUPmw0JiABL0H7Wdi7s0XAlKTxf X-Received: by 2002:a17:906:2b94:b0:6da:c5c8:8383 with SMTP id m20-20020a1709062b9400b006dac5c88383mr348849ejg.420.1646424172951; Fri, 04 Mar 2022 12:02:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646424172; cv=none; d=google.com; s=arc-20160816; b=xzPZyo/LE7qsUo8HrFwTL4p619JLCLK7vcxZt7bvh/pJ6F6ZGk+nu6smQUuToYWv3J doMDdDcPtO9xwoF7lEQS4bUm13d6vAi/7SHxBvBJkOyDDk/tiM2kzAYfNbmUcdH0yBob dnRAwAJ82i51tMigaKjwFNrwEq8B6Q8kPWhaKp/PnbEKBoBA0BA4/r1lN4ty4jh9FGD8 4dw8yh4X7DaFOndGlFkGAGYAPmtmiZ6atAFfAXMkpJP8GM2QT4ARsq/PFNJK8FFR5CFW Q1kcarbbEi2KKsrKiPUFrEOQEXfYHed2KzCGzroVt6NTQO48ZK6Jmek9Pc1ijSGL2UWc 3llw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:mime-version:message-id:date :dkim-signature; bh=n2NqcUHbJsWardOwH6kbWHzl6hZnl0/7q7/h4tOTkqg=; b=l88quV88cvmlUdEltPWx7h68UbfWWZS7VAEhIC24OG6x4WPp/LWNnB/zagtdXepuNX JqStCvmX9XN3eEtMb1xNX8yJ5Rl4imeb2dIvGib1YAgs9fb7aoH5em4Yob2YEheHQ9a1 ZK7htoa4gKr/xGQltMPEb1+7i27E80QWSMS6TxE01cTDACjysfkv5zrLg524o/YpAC/Q Pkuwn1KiyYs3RFiRVjga9KoKfSysgGl1MaN8/M3XdQ28Bcd+GDgF7GyuFXmM36PD+0m/ Hlfm5HBnmBKby264ULIRga9UAEnoUC8lhldRE7KAdfequCc2Mr7d8cj9cE9hSsmAoCZ9 DKwg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=brNL5BLo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v29-20020a50a45d000000b0041593c729a5si3652551edb.468.2022.03.04.12.02.23; Fri, 04 Mar 2022 12:02:52 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=brNL5BLo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229910AbiCDUBg (ORCPT + 99 others); Fri, 4 Mar 2022 15:01:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36964 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230039AbiCDUBR (ORCPT ); Fri, 4 Mar 2022 15:01:17 -0500 Received: from mail-yw1-x1149.google.com (mail-yw1-x1149.google.com [IPv6:2607:f8b0:4864:20::1149]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9157223D02C for ; Fri, 4 Mar 2022 11:52:50 -0800 (PST) Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-2dc44b6dc9dso47594327b3.23 for ; Fri, 04 Mar 2022 11:52:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:message-id:mime-version:subject:from:to:cc; bh=n2NqcUHbJsWardOwH6kbWHzl6hZnl0/7q7/h4tOTkqg=; b=brNL5BLowTA5Lbs7SQfkYniaerH4AtPVOQyQtLOhaKCY+l1sZObrIKaasUtJdUshpz l5GtEpc7cEqUNN4fTLs2aVsDy7MSdip6q1Y6KrqiLZrbhcKQWz2hiNcluZVqTmwNN+t3 Sx60dpGknsXUv9EI3xsoZC7cR2ExQu6dml82GFAgLfs94MIVQ8w32ld6wyYnVT3YlrEs EuQFRD3g526TZxoRI/QZM2xr3pSmQ8xVE44t4hpsc5YGwdFq7V4owU5iBw3Nkgz95u7u ArbzhhNSNMKFB+uv0mfVwgePqhyxBXGGWLzKUdyxKgXGZoS5Rn7JmKSMZh4e8sdg/wDG T1yA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=n2NqcUHbJsWardOwH6kbWHzl6hZnl0/7q7/h4tOTkqg=; b=Lssohv0atmNAEmjELWsAmuYBjr4b9/3sJoEiy8MG4s/DFmUWoyANB41IPg4nCm6vdt H7NFExbQlgVrBtNdDce3Z89mlZQQuHQNLYKc+MIO4C1+uP8Y9kct0hsGdiUeu2ujzy85 SB/48E4hjbh99Z89sBlPRZPpj0fKxR60KuuxOV2bfDWOwuJ+ytA8lUmcJ9DNT5oKGr5d PVSMa9UXMyFW8tAGEFAke81P181JPc+kBhOCdyL1CSny2u4DSj7Yaf16p4sYac9J6fcZ kor9PVVGCnO7Aj5BEdqAKGylCxpWA3NOy/lKcyRgoKS7xFngpEXr7/XP4NXlcgvz9F9m mYzA== X-Gm-Message-State: AOAM5303hxO0+RaENj8aKIAtgJsMExH/7HRBbTtHMhTY1yxTUX8TaxT8 kEdiXXeogv6IuUGkeZegStgf4mK+4g== X-Received: from decot.svl.corp.google.com ([2620:15c:2c5:11:5d36:3405:ac8a:5148]) (user=decot job=sendgmr) by 2002:a5b:7c6:0:b0:60b:a0ce:19b with SMTP id t6-20020a5b07c6000000b0060ba0ce019bmr42008ybq.407.1646423569785; Fri, 04 Mar 2022 11:52:49 -0800 (PST) Date: Fri, 4 Mar 2022 11:52:38 -0800 Message-Id: <20220304195238.1141725-1-decot+git@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.35.1.616.g0bdcbb4464-goog Subject: [PATCH v1 1/1] irqchip/gic-v3-its: fixup IRQ affinities to account for online CPUs From: David Decotigny To: Thomas Gleixner , Marc Zyngier , linux-kernel@vger.kernel.org Cc: David Decotigny Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-10.1 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: David Decotigny In some cases (eg. when booting with maxcpus=X), it is possible that the preset IRQ affinity masks don't intersect with the set of online CPUs. This patch extends the fallback strategy implemented when IRQD_AFFINITY_MANAGED is not set to all cases. This is logged the first time that happens. Fixes: c5d6082d35e0 ("irqchip/gic-v3-its: Balance initial LPI affinity across CPUs") --- drivers/irqchip/irq-gic-v3-its.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c index cd772973114a..de862fd9ad73 100644 --- a/drivers/irqchip/irq-gic-v3-its.c +++ b/drivers/irqchip/irq-gic-v3-its.c @@ -1618,11 +1618,6 @@ static int its_select_cpu(struct irq_data *d, /* Try the intersection of the affinity and online masks */ cpumask_and(tmpmask, aff_mask, cpu_online_mask); - /* If that doesn't fly, the online mask is the last resort */ - if (cpumask_empty(tmpmask)) - cpumask_copy(tmpmask, cpu_online_mask); - - cpu = cpumask_pick_least_loaded(d, tmpmask); } else { cpumask_and(tmpmask, irq_data_get_affinity_mask(d), cpu_online_mask); @@ -1630,9 +1625,13 @@ static int its_select_cpu(struct irq_data *d, if ((its_dev->its->flags & ITS_FLAGS_WORKAROUND_CAVIUM_23144) && node != NUMA_NO_NODE) cpumask_and(tmpmask, tmpmask, cpumask_of_node(node)); - - cpu = cpumask_pick_least_loaded(d, tmpmask); } + + /* If that doesn't fly, the online mask is the last resort */ + if (WARN_ON_ONCE(cpumask_empty(tmpmask))) + cpumask_copy(tmpmask, cpu_online_mask); + + cpu = cpumask_pick_least_loaded(d, tmpmask); out: free_cpumask_var(tmpmask); -- 2.35.1.616.g0bdcbb4464-goog