From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754011AbdESI6O (ORCPT ); Fri, 19 May 2017 04:58:14 -0400 Received: from bombadil.infradead.org ([65.50.211.133]:43645 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753750AbdESI6J (ORCPT ); Fri, 19 May 2017 04:58:09 -0400 From: Christoph Hellwig To: Thomas Gleixner , Jens Axboe Cc: Keith Busch , linux-nvme@lists.infradead.org, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/7] genirq: allow assigning affinity to present but not online CPUs Date: Fri, 19 May 2017 10:57:50 +0200 Message-Id: <20170519085756.29742-2-hch@lst.de> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170519085756.29742-1-hch@lst.de> References: <20170519085756.29742-1-hch@lst.de> X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This will allow us to spread MSI/MSI-X affinity over all present CPUs and thus better deal with systems where cpus are take on and offline all the time. Signed-off-by: Christoph Hellwig --- kernel/irq/manage.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 070be980c37a..5c25d4a5dc46 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -361,17 +361,17 @@ static int setup_affinity(struct irq_desc *desc, struct cpumask *mask) if (irqd_affinity_is_managed(&desc->irq_data) || irqd_has_set(&desc->irq_data, IRQD_AFFINITY_SET)) { if (cpumask_intersects(desc->irq_common_data.affinity, - cpu_online_mask)) + cpu_present_mask)) set = desc->irq_common_data.affinity; else irqd_clear(&desc->irq_data, IRQD_AFFINITY_SET); } - cpumask_and(mask, cpu_online_mask, set); + cpumask_and(mask, cpu_present_mask, set); if (node != NUMA_NO_NODE) { const struct cpumask *nodemask = cpumask_of_node(node); - /* make sure at least one of the cpus in nodemask is online */ + /* make sure at least one of the cpus in nodemask is present */ if (cpumask_intersects(mask, nodemask)) cpumask_and(mask, mask, nodemask); } -- 2.11.0