From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-dl1-f43.google.com (mail-dl1-f43.google.com [74.125.82.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E9DEB3128B2 for ; Mon, 13 Apr 2026 07:44:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.43 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776066257; cv=none; b=MZ5VNv3fmRLJPtlX0/GuLYJSG445+dzhhqr1ghf8KpNj/bfOwVbTgo/dRcf7sZNIVnPP7Im6O9dGFsRN2QOWB0lEBHiTjaWq4IlH/G7bgpYnktC4mR9A3MCP9zCUwqAP8b7hzZE+GN6kHkqIF0qN5Ra64zRd2wD7guE3arRSA/M= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776066257; c=relaxed/simple; bh=abNstHmJGgw4JbpWqL555msiifzgY+9+aN3eQVlKCX4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=a/MAG7qkBuo4bQ0GHAzuIJECHZehvEmqZn+1ytyMX1mETEZ+OiupKpnk6X4H7d5wYXFZygbAaeVrBpUE/3sGFLMm0XTVrDKSOFSorFbY8KKsofkBiZ+nK+zv/piN1W8PnTYH4uzXL1Jw+cKxR+10N0szKV8n9XtRBipfPWh0ntg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=OfXeGHxD; arc=none smtp.client-ip=74.125.82.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="OfXeGHxD" Received: by mail-dl1-f43.google.com with SMTP id a92af1059eb24-12c20010f10so10474424c88.0 for ; Mon, 13 Apr 2026 00:44:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776066255; x=1776671055; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=EF3HsX1PiWlQS1SWUgySjoqh/zlAKHa5r5Dv0SN822Y=; b=OfXeGHxDXjLlvoZJQLl2fIyr2B7Ezrmrc+Ir2bzbbK7z4cugW2V3aOao4CC1jCFf9/ KkiyEWtA9IQ61ZMNyufOzSeQlYQn12b5HoZujPMJGD/QijERHfLBqXfuuebIhGseJ/sc HqRHyx9DrQFL1QQ3tGiLfAQiLQj969T+3JE/bnRN/O0bdfd3eJhHhPQ+g8MfVPWjclpw i1y4fo+fzljdwsDlavcuqNQAQ9sTfWraQVCDFDGa78J6daPlwai6hkt+hqdV/MP0eaPp vTaHIpac17q+ITfiX9s9Q4AVTfZBMhv0g0GuryusQ1pOLZpnaPsSVhVvxtsKJ9VMJG3c bT9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776066255; x=1776671055; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=EF3HsX1PiWlQS1SWUgySjoqh/zlAKHa5r5Dv0SN822Y=; b=Zj4vhVb9uRyqux/pTJrYqDYmywwiAs8ExzmMVMShsjUvw5FlNh+NYgLyOqLeV5+TF9 462PnNiirQAf7yVLpFt47fHe8COcTrICqg883HrCei3E89BGRdAx1gkRlmARuaBNyTaG nXOlYTX+wKYj3k1qLkX6lDxrdaX0wBuYSEDFY42FxGSg90xKXmtjZaGP08DSmcM+0ZSx wDtpQZYwzpVuhzDAd3ljzuRNs7CtakItrc07urOM87Hvho4HgOWGnrJBBtX1STjqKz++ q37sjgJKTm2zDdp0GWx59ONpMiBDb7ILE6XjRzMAV+6x9d/unHVPrvKiqA/DUXr+0teD zJ6A== X-Forwarded-Encrypted: i=1; AFNElJ+CidpqP2+I13pg6ypcc7cNt0/0eAs0uGDLDGCc11n7ixif8WfS82I+lnidKxX68XahCAJZp1ubTiM=@vger.kernel.org X-Gm-Message-State: AOJu0YyMub+5aKeKchvaSc/J0Ywkv1xwTr0jSRWk7fjsOGGsAln4T7OX nFFoqm97CyVmnwWdnrN+vjwfkPV+7cgwqMWevohcdUKcKMJr1Of4QJeh X-Gm-Gg: AeBDiesHwdJRiZ1RpW4nB0lIDQLPIrAeasUrPFdiDI6nyu7LW/Y5xrfgPGQctQRDTQG IvnN3JKRN0/K3f7pYqkASIIXDBH84n4lPirsNzE9Rg7Mt6IG+NOJ+DsqeLN6IvFzaUeotI9XHYQ 7CbOh0wVN0DNvhCmUW5wH/CxxiD53anAgzxvy89T6SIgK1n9idUO+JaJ2mARjPHVuy/b/zRUqra LXk3RHkGw04yJeU0tB78HJT7mAieYqp/YcrwRai2CupvRdoyIDfrn/+lLNGTNfRSVa9YCAKrAjq yplCKe64m9AyRL1xTNJZQbDQDltz6y+nVhfezOtKRZHoMlutOWpdcLaFoKIsbjehTVCNDrc50Um bt2QDSx+kMmwW/r9S/S4mFgr/BgEf7/JHuCjd3/K//xP6ktfbYq346V/XmuzIoUAO25AD0oar02 dPogeKbohTL5dCYTOrr6o57AjePqk= X-Received: by 2002:a05:7022:47:b0:128:d4be:7428 with SMTP id a92af1059eb24-12c34edee4bmr7057521c88.19.1776066255198; Mon, 13 Apr 2026 00:44:15 -0700 (PDT) Received: from wujing. ([74.48.213.230]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12c347fa2c9sm12884610c88.15.2026.04.13.00.44.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Apr 2026 00:44:14 -0700 (PDT) From: Qiliang Yuan Date: Mon, 13 Apr 2026 15:43:11 +0800 Subject: [PATCH v2 05/12] genirq: Support dynamic migration for managed interrupts Precedence: bulk X-Mailing-List: linux-doc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260413-wujing-dhm-v2-5-06df21caba5d@gmail.com> References: <20260413-wujing-dhm-v2-0-06df21caba5d@gmail.com> In-Reply-To: <20260413-wujing-dhm-v2-0-06df21caba5d@gmail.com> To: Ingo Molnar , Peter Zijlstra , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Valentin Schneider , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Uladzislau Rezki , Mathieu Desnoyers , Lai Jiangshan , Zqiang , Anna-Maria Behnsen , Ingo Molnar , Thomas Gleixner , Tejun Heo , Andrew Morton , Vlastimil Babka , Suren Baghdasaryan , Michal Hocko , Brendan Jackman , Johannes Weiner , Zi Yan , Waiman Long , Chen Ridong , =?utf-8?q?Michal_Koutn=C3=BD?= , Jonathan Corbet , Shuah Khan , Shuah Khan Cc: linux-kernel@vger.kernel.org, rcu@vger.kernel.org, linux-mm@kvack.org, cgroups@vger.kernel.org, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, Qiliang Yuan X-Mailer: b4 0.13.0 Managed interrupts currently have their affinity determined once, honoring boot-time isolation settings. There is no mechanism to migrate them when housekeeping boundaries change at runtime. Enable managed interrupts to respond dynamically to housekeeping updates. This ensures that managed interrupts are migrated away from newly isolated CPUs or redistributed when housekeeping CPUs are added. Signed-off-by: Qiliang Yuan --- kernel/irq/manage.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 2e80724378267..31e263d9f40d0 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -2801,3 +2801,52 @@ bool irq_check_status_bit(unsigned int irq, unsigned int bitmask) return res; } EXPORT_SYMBOL_GPL(irq_check_status_bit); + +#ifdef CONFIG_SMP +static int irq_housekeeping_reconfigure(struct notifier_block *nb, + unsigned long action, void *data) +{ + struct housekeeping_update *upd = data; + unsigned int irq; + + if (action != HK_UPDATE_MASK || upd->type != HK_TYPE_MANAGED_IRQ) + return NOTIFY_OK; + + irq_lock_sparse(); + for_each_active_irq(irq) { + struct irq_data *irqd; + struct irq_desc *desc; + + desc = irq_to_desc(irq); + if (!desc) + continue; + + scoped_guard(raw_spinlock_irqsave, &desc->lock) { + irqd = irq_desc_get_irq_data(desc); + if (!irqd_affinity_is_managed(irqd) || !desc->action || + !irq_data_get_irq_chip(irqd)) + continue; + + /* + * Re-apply existing affinity to honor the new + * housekeeping mask via __irq_set_affinity() logic. + */ + irq_set_affinity_locked(irqd, irq_data_get_affinity_mask(irqd), false); + } + } + irq_unlock_sparse(); + + return NOTIFY_OK; +} + +static struct notifier_block irq_housekeeping_nb = { + .notifier_call = irq_housekeeping_reconfigure, +}; + +static int __init irq_init_housekeeping_notifier(void) +{ + housekeeping_register_notifier(&irq_housekeeping_nb); + return 0; +} +core_initcall(irq_init_housekeeping_notifier); +#endif -- 2.43.0