From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 109943E8355 for ; Thu, 25 Jun 2026 16:41:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782405689; cv=none; b=lD3gkoPLoah6XFE81gosTO0lh2CqsGRiByccOlpbKZzQcJsZWnl5DLfE2MMTg4LW0g7Xuj7XjxUpSMA2HE59KnsCdAm+RHStRFivnTpC5/iHZ/EDumgfGyRA8vYgSz6jV3onkjK1nXnj9MrcvdhYXiXGLdZw5kE6oi0t41XjKiA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782405689; c=relaxed/simple; bh=5Luy2d3PSvC/tvuC1+Y8KAOTrh66fWKKdkZRWGRiVvE=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=W2cH6enqfs/E1LQmawYlA1En/ZgudfhY1AcY27m4Q+MLfvs10oo/Yt4JeX5o6h2ozI/5+ExXjEWp0/QUj8gOxE7C+XPbR3U8q/MoEOE6ikcymOfJdzx+Hw2flCSncaShcfeFMbEUMIL+lAd7APSifmDmU7YhCbcuvAdwojrqmt4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=irXO6LkL; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="irXO6LkL" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E3D0F1F000E9; Thu, 25 Jun 2026 16:41:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1782405687; bh=qzmSHryS8dyvg+s6apN7ST39JAKIOyPiBGsGpZXRTnA=; h=From:To:Cc:Subject:Date; b=irXO6LkL+brKizo0oGr/xo9gu3BIZmhBoEA4j6+pMgIMuk4GQnRaYcOnA6to8m8AE rgP9GaqvqufVLQOSQ/j6tOrlNCOhRsbUcbyp+BKdxfCllBGpS0TGtia4gEnF36oGAz qD+/VAmexh7TfgdxAZYRKEYheKMvnH5tpety2z4/RxxxT+F7VxYl0gMH7jg180jcAb A3Nc8gPKKN/e5BFF+2aCHhmT0UM0n2+u1LAKemWYRIKCIg7KYrUNeXTxcNzBhcT3k2 gqZ6WbfGxbjy029Gnr9ow3eabqQ632Kmj7TxRx9jd7zXxQFoAUO0MOSKaB+/0W727+ U8PG/DXXmkVqw== From: Frederic Weisbecker To: Christian Loehle Cc: LKML , Frederic Weisbecker , Sehee Jeong , Anna-Maria Behnsen , Thomas Gleixner , Peter Zijlstra Subject: [RFT][DONOTMERGE][PATCH 0/6] timers/migration: Prioritize lower capacity CPUs as migrators Date: Thu, 25 Jun 2026 18:41:08 +0200 Message-ID: <20260625164114.51454-1-frederic@kernel.org> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Hi, It has been reported that the timer migration tree wasn't too helpful on asymetric systems, with timers migrating too often to big capacity CPUs, waking them more frequently from deep idle state. Splitting the tree into per CPU capacity hierarchies doesn't seem to improve the situation. So here is another proposal: gather CPUs belonging to the same capacity under the same groups and finally join those capacity groups under a common root. Exactly in the same way it is done for NUMA systems. And then always pick up the lowest capacity non-idle CPU group as the migrator with the hope that handling timers will keep lower capacity CPUs busy enough to increase their chances to become global idle migrators. Please give it a try but make sure you have fewer than 9 capacities on your system. Handling more will require a bit more throughts. Let's see first if this is the right way to go. git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git timers/migration-capacity HEAD: 28f02a6747ac4343f3596aaa3b749dea95577478 Thanks, Frederic --- Frederic Weisbecker (6): timers/migration: Revert per CPU capacity hierarchy timers/migration: Defer initialization after capacity topology is setup sched/topology: Account asym capacities number timers/migration: Group CPUs per capacity timers/migration: Prefer lower capacity groups as migrators scripts/timer_migration_tree.py: Dump mask of each group include/linux/sched/topology.h | 3 + include/trace/events/timer_migration.h | 48 ++-- kernel/sched/topology.c | 44 ++++ kernel/time/timer_migration.c | 393 +++++++++++++++------------------ kernel/time/timer_migration.h | 33 +-- scripts/timer_migration_tree.py | 65 +++--- 6 files changed, 288 insertions(+), 298 deletions(-)