From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.15]) (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 A725247CA66 for ; Thu, 6 Aug 2026 15:36:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=198.175.65.15 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786030567; cv=fail; b=GMi+hz4n9bvVyzjuZuWSg9hJFFSCpKC4N+h8wNlrw05S0sMML30/MHiIwVjwT0Ocm9Tv9/koM8kWd6vrjwlPhGM2BhW2+/9krPOIOzhleXIwAGU35x8bJAdlrSvKumTTpwMjGd3CW/77I2Aozeqx1agN9vjK2SlOG5pf7vgJJwA= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786030567; c=relaxed/simple; bh=ktuTOR847BAH1HAnSpFj1bMX9fqxv8rN21Lx/fo4oU8=; h=Message-ID:Date:Subject:To:CC:References:From:In-Reply-To: Content-Type:MIME-Version; b=K9x7EO/QtItrXvExGvZep83Llv13BbEtGUCRrnPBCtXRHjxJMLzqRlDbLruaaEd0dykPagzKLyLUgi591RqwuvY4vPEzcZppTPh+r3ky+ljG3OsEA9yFf7foLUeu55nAQlhT6c4tVXH5zw7O+mf1nAB2l707L7KRk6bgyjkoRhE= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=X4xyNfOK; arc=fail smtp.client-ip=198.175.65.15 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="X4xyNfOK" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1786030566; x=1817566566; h=message-id:date:subject:to:cc:references:from: in-reply-to:content-transfer-encoding:mime-version; bh=ktuTOR847BAH1HAnSpFj1bMX9fqxv8rN21Lx/fo4oU8=; b=X4xyNfOKyJ2Zf8LigR9bGB513Imzi8EWNlfDnT4EM2AKBVRya8B26nyw xH1HpUkZy1CaGo1JRy00zeyU0Dt1uzs8iOzbAqHZZ3o02kdrMQGjWJ+YP n955s9Rfncg5vkf9+1vvx9jK90e9OQRYQ09VDcsDl5aK56SmvlUtzYHUP XSsdU+rsMWwZjdw6ndD3LaiquYkr52re5vwBTFpLcW13xYRqO6ZzkrS3/ QEg+enlJFSwcrFZV7mUi83igXzsjloz2nF2sgXb3RgEVdcz9s7nU5nhpS yNBS+vg7ouv0EhjYkA5rQdL+tjbirO+ltt6hKQgaNoeVTrtTb7s4IEqUB g==; X-CSE-ConnectionGUID: y9nBRkjVQCOFsnXIXE+YrA== X-CSE-MsgGUID: OoeG0g/pS4uws4dd7sWmIQ== X-IronPort-AV: E=McAfee;i="6800,10657,11867"; a="90300628" X-IronPort-AV: E=Sophos;i="6.25,208,1779174000"; d="scan'208";a="90300628" Received: from fmviesa007.fm.intel.com ([10.60.135.147]) by orvoesa107.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Aug 2026 08:36:05 -0700 X-CSE-ConnectionGUID: g2kT344KTgWRTObta8oOVg== X-CSE-MsgGUID: ymh/mEdfSnaNSg+zXGy6pw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.25,208,1779174000"; d="scan'208";a="258809832" Received: from orsmsx903.amr.corp.intel.com ([10.22.229.25]) by fmviesa007.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Aug 2026 08:36:04 -0700 Received: from ORSMSX902.amr.corp.intel.com (10.22.229.24) by ORSMSX903.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.45; Thu, 6 Aug 2026 08:36:03 -0700 Received: from ORSEDG902.ED.cps.intel.com (10.7.248.12) by ORSMSX902.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.45 via Frontend Transport; Thu, 6 Aug 2026 08:36:03 -0700 Received: from SN4PR0501CU005.outbound.protection.outlook.com (40.93.194.14) by edgegateway.intel.com (134.134.137.112) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.45; Thu, 6 Aug 2026 08:36:03 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oZHwHoEP6TnCzuan0tAB18b2HZJ5SB39SwwsRPgIwhLS9I1Bb8Ouo5V3WYh8Yo52gShEDO2E77ObNtZ0y6ukUF8Z7B68bb+40eeyIoVFUjCxj26hyMcXKMgWUL9H6wjrWhVUU33i8MWKNN9zxM19aOn+fuoaqzhVE6V7vclCCB3JWgwgXl8KJFHcLzk/2OjAmn/xYE9CQh3Y71J3nc3a1s/8TPJuFrlS4R2/ck0RoLnVuPWaE6IIJfi3fySPTHSj9cwbZkniRxzE2Sbmxm+CAdkLqf2fk+SkRKy/ox14+XoZyyrfrnPpcZBNktpZriDIRpVUrPhFYjJtUjrcquAM/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=t9GJsAwqc1pdQuIazG4sQBzMwVkF1XKr3TOAoT8j1v8=; b=Wwe8kPChuz/fCdlXb/ECmnKN1eum8XNwcMz/VQF/ekdzg8FrLxV7oRbpl5SzikpoRLr+mxtaucuIoi6cvJhHZSiWkcxXjA0wM1uxF/sHbtRMhU17wzDS3JcItrpTht20hbhs5kIeidNKoy3Bfm6x8nerzlegDb47M3EI2R6cGe7Bg0IDpw8c3GOBosqg4DGltozxTmllQsit4YWIH74b7e931319oB3aAwrINFQJ0v5BVODzmvsCNbGn3CerLot+0Lzc354sobMZ04G7osBOeTaJN/fgHbru5W8GHgbd+k8dFjfWlYXY880wFHalI5V3iLs1ce19QjCLw+lWgXLbtQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from DM4PR11MB6020.namprd11.prod.outlook.com (2603:10b6:8:61::19) by SJ2PR11MB7576.namprd11.prod.outlook.com (2603:10b6:a03:4c9::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.292.21; Thu, 6 Aug 2026 15:36:00 +0000 Received: from DM4PR11MB6020.namprd11.prod.outlook.com ([fe80::3058:1480:e4ac:5765]) by DM4PR11MB6020.namprd11.prod.outlook.com ([fe80::3058:1480:e4ac:5765%4]) with mapi id 15.21.0292.018; Thu, 6 Aug 2026 15:36:00 +0000 Message-ID: <59db4420-7995-4261-89d5-03aa306c1370@intel.com> Date: Thu, 6 Aug 2026 23:35:50 +0800 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] sched/cache: honor migrate_llc_task semantics in active load balance To: Lu Wang , CC: , , , , , , , , , , , "chen.yu@linux.dev" References: <20260801122252.2476258-1-wanglu.priv@gmail.com> Content-Language: en-US From: "Chen, Yu C" In-Reply-To: <20260801122252.2476258-1-wanglu.priv@gmail.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: TPYP295CA0048.TWNP295.PROD.OUTLOOK.COM (2603:1096:7d0:8::14) To DM4PR11MB6020.namprd11.prod.outlook.com (2603:10b6:8:61::19) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR11MB6020:EE_|SJ2PR11MB7576:EE_ X-MS-Office365-Filtering-Correlation-Id: 3440d85a-9363-4659-b76b-08def3d06a06 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|23010399003|1800799024|7416014|376014|11063799006|56012099006|10067099003|6133799003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: H7mNUFYLIwjxZ38tpNsHJfl0onJ7P+U1iIbQJIN15Z0vceIcYZUHRW1c+HFjk7HUzi2ed9BNxpvKkzPdmPEqodgzsOalYJP7pTj0QbsV2MAlzFYOofa3/0MaP6J3fnGAHmM8ZKDhk9ESoE0vTw8wsjCe9+rp0PD2r/pKnXR9EVaiKfL1xzCoG7LAHyH4AUimKTlrRhXhB7epb31QCHqZRibYYBPqizno7NCuA6FXwdf1s7TonCS5Guc3JjPMd7WSb48ci4DYJKoCyV8iSmusN+AyhI1pha/y3EsO3t9KXGI+AdgWb1jl2yMwMwdcA/Yv/Mh397ddIfzuGxaTCqPPQUjefE3l1R2+OA9zBycBy9BQl1lz30UrIKWvqG3nSqjXFXkwfWp4EYCQtlteilQ7xYZCAAhSr0ByJRek8LwaB2o+23xckVkt71fYKBMUaJJz1Gu21Z932YJf8455c0u5G+AAo+yqfiXGI6/KZHQXO81yykmipHUWaLqme2cMuPWsr7ENK7UvcxjBkALcpQlQRu+1esrqFW07D4U/KBS7xtSIQpCElKcXdeBmjeRo4iIGBO+hDmqUA1pShw2YrxU2FIoWCtuLl2OTefO+660pOmEWsDd62xrZj2ZK3eqcHCDzDrdC5pCnH5aHxQlR/uM32sJcWO7XB0+pTdy1l4llq34= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR11MB6020.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(23010399003)(1800799024)(7416014)(376014)(11063799006)(56012099006)(10067099003)(6133799003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OFlGNXZkazVlbURqcU53Ry92MnlEL2dmdnBNdDhUa3dXSkM4TENyZjROUXpC?= =?utf-8?B?MzNyeFlLbk54YStENGpsQngwcUZaZ3ZydGVpOXFiTk9manJNYUliRG1QUGRD?= =?utf-8?B?elZpcitjdjl0UjFJUytpcTI0Q0Z5S0t1TkY0YXRxbEkrMENOSkl5a3FVMC9o?= =?utf-8?B?SEVVUERmSVExV3VkWmFwamM4VGd1YWxHeHdSS1dmZFAzby9GL1h4YmN1cytv?= =?utf-8?B?VXFJeUtXV3IrQTlPUENaTGZZTXhtZ3o3bWk0OHlLL3lWV2d0UmlmcEN4RDl2?= =?utf-8?B?eWpWVTM4QlplY3hqNTFDcTlCNGhsRkYwSVlKcmFkaitKWFc0WnF4ZUgxQ2dO?= =?utf-8?B?eWRiajZVaXF0bW9yWkd2SDV3WVUzcXFhandZa3FDUThEL1ZTRTN1TndJMDNz?= =?utf-8?B?QlJBMHVPRXI1M3NOMjZWNnB4VUZFTTRSZkFZSW5mVDJqMjR0M21DdnBMYnh6?= =?utf-8?B?Z2xCZGFOMHJwc0lsTWc5SStrTUJTUTdIME16UmRYL0VYMUwyV0hjVTVGRlBD?= =?utf-8?B?bk1yYXNRUWNYY3F5NDc4N2VGWXBiamxQVi9ScW8yMjYyRjVyRzJrb2lCV1RQ?= =?utf-8?B?K1hkY0MzZFVOejIwbkNDWXJZeHNFVXVvMEdsZ1BDZ0FzOWFDbkEwdTJKRVlz?= =?utf-8?B?d1FQN0JIRFJ4L20xM3hDeUJxd05jdmJ2dFltUEgwMlg3V0RlOTlKc2dIVnVj?= =?utf-8?B?NHdVajhkbEdaUTRtQThTdlZNbnlNSzM2V1RMZ2FEc2twWW9uUi82UVBIUWto?= =?utf-8?B?NGlqd1VIbFIwZldRcStPcjBxVUR5RGF4SWdMS2ZkdC9ELzlqNWNkb3Z2cExt?= =?utf-8?B?L05kZ1BLVzJMWVlLVFFYOWxJMkp2UUxnbmFqNHdKbkNyQlJrd0NFODlWZDUy?= =?utf-8?B?WWFVbGV4bHhRQjQzRXdZYUtzVC9WaFNoWWJ1dXZzL21tMzlyQVRibnBkblBv?= =?utf-8?B?ZjFzUVllY1VmcW8vL1VtRTB1SWpUa1VJK3RzNTUrU1pOOWc4Z1loTDlOZ3Jw?= =?utf-8?B?aTAzdkF5YnE3Qy9zQUVaTG1OUmV4cHVBNmtHVWUwelhqQzU4ZXBDTnM3YmJI?= =?utf-8?B?UVNUTEhpR1ZBYmNuQWJ4ckRraUJXY2dCMmRyNEdySk9vZmV0eTB2ckdkZlUx?= =?utf-8?B?eFdncE9lYnZrM0FWRC9VcWpUUDIzNXJsTkExc0YwSDJvc0xpcDArMForeFZ0?= =?utf-8?B?bjVUQk5rOFhLazd4K0syWjNURXNudm90blRnbjZWQ3BqYzFQNld0aTl0U2tW?= =?utf-8?B?bktEZ0haM1FLb0dMZEd5NjU5clRka012WWdYeHBBUFdSUXFrdm9ocHQ1OGtY?= =?utf-8?B?ZDBHUFNUZ2ZsTEJyUlVEbW03YWRIMmF0Y3U2YXNON1FjaUd4TE9laXVzSHox?= =?utf-8?B?MCtXN1VLSFpGUkd5ekY0MGhQL0NFdHZyeHZVK1NORUdvU05xMUgzSnlPdVZj?= =?utf-8?B?QUt3NGRsaVdFRXNGMkRzc0w4NWF6NnZlaGJxdUtZWGFuSk9rdjkyNlptRGd5?= =?utf-8?B?VzF4Z3R1S3BDdSthTTVFZTN1RHVPeTFhOTF6Ym5aNEZKMFB4dVk2cENxVmpp?= =?utf-8?B?RDBPSDFRbE9WQzIvam9pb0tUQkJPL2VBWXZOcGd0d3pGMy9zbEgxMmljcC93?= =?utf-8?B?YzdjcWxTY2V5cllHSUJPZmg4QnduZlBvM1pUVG9GTFRiZTNkOHU1cFY3T0s1?= =?utf-8?B?RjY5TisyMnU1SjhyNWZGalJsNXlIa1VjU2lqOW5lQXg5OHBtN25WSFByMnhE?= =?utf-8?B?dTZwaEhndWJTVnFYSGNhOS9IVkhKZ1Y2SytQUDc4RlN4bWZ6TFNJTzdQdlF6?= =?utf-8?B?QUc5b0FYUXRUdnZFd1AzaU91NE9HWXZrNTh1cUNtR0lMbXhCZ3psdzhxQVdU?= =?utf-8?B?aHRybGJYd3VtRFhEVytLOWt1TnNTRkI1cDlUbWlFT04wMlJoNnVHeW1YcmpI?= =?utf-8?B?Nm1NS25WUjhlQnF1TnE0VG1qWVpxbjl1V2Y3SzdUY0l1aXJuWngwd1hNV2RO?= =?utf-8?B?OTVOcGg4VUV2Q3BqaHRaMmh2NTY2ME50WHBwaVVjbE9KV201MVc5aW5ZT3ZU?= =?utf-8?B?UEsxNG95VzlEbUd0M1h6bXU3TklKc2NlbXpNTG1RWWlpVG9JSWxFcmd4Y00v?= =?utf-8?B?TVh6N2h0YXIzNTc4NGU0b2traldZUVl2VUNiK0MxcFZpQnArUTRSU1ZwbUlu?= =?utf-8?B?YW9PbUxhcFQyWkRoTXZ5TEtjdVdsWVZlSlFXZUo4MjdtWUVuVlExU08yb3Jv?= =?utf-8?B?N1d3OVFVQ29TUXRzSEUvdE1Qc2EwVlc5MmZZT3UxdzkwV2RLUzhtMWJmdDNO?= =?utf-8?B?OVgyUkk2UjUvSkg2aVBJajA0MzZRcUgyMmVITVd0aDNsVkNuYmh6QT09?= X-Exchange-RoutingPolicyChecked: UgVOTcggZgiMqjjoG6vb8XKqhK3yRRwcQXpQAvONt49hDz9f9dzeAkelhB3PQFgrzG/j4+jK147VzD+yd1crxfCsKMVAZ8AyWaGmCt+MTqIbIesjKvwuK2DbpNhkgqq6xONSrakWtIYq+anoVK/PcQ97l1GRy0NA2bzsuTio+vjAAa5Y9N7x5LlnL9Hrtx9Z0BGDNf57rKsiGwjD8iNmFUHnQZSykrKvE91HX0MKgCx8JFmN0AeD8OesPHiGQWCrJADT7/Mtp7cZ2+3ngGtrArF3ntMiJPcxU3hAepNM833nIZcp2IX1edGS10wLvQBFyMto8CjktsKKZVJr5tC2/A== X-MS-Exchange-CrossTenant-Network-Message-Id: 3440d85a-9363-4659-b76b-08def3d06a06 X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB6020.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Aug 2026 15:35:59.8679 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 32sgxySz0MgCb0wd6vOM584MuFNOA8Z3ZEA/WZ/CV4jVNEMOPJr+LF6Om4x3B3qTZeEpTnMEfERf4FVX+EciKA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR11MB7576 X-OriginatorOrg: intel.com Hi Lu Wang, Tim, On 8/1/2026 8:22 PM, Lu Wang wrote: > A passive load-balance pass marks group_llc_balance as migrate_llc_task > and queues active balance when it cannot move a task. The CPU stopper > callback constructs a fresh lb_env, so preserve the migration type on > the runqueue across the asynchronous boundary. > > For CAS-directed active balance, reject a candidate whose preferred LLC > does not match the destination LLC. This keeps the fallback from moving > a task away from its preferred LLC. > It looks like this proposal provides fine-grain control on per-task base migration strategy is promising. > +static inline bool > +migrate_llc_task_wrong_dst(struct task_struct *p, struct lb_env *env) > +{ > + return sched_cache_enabled() && > + env->migration_type == migrate_llc_task && > + READ_ONCE(p->preferred_llc) != llc_id(env->dst_cpu); > +} > + [ ... ] > @@ -13654,6 +13672,7 @@ static int active_load_balance_cpu_stop(void *data) > .src_rq = busiest_rq, > .idle = CPU_IDLE, > .flags = LBF_ACTIVE_LB, > + .migration_type = (enum migration_type)busiest_rq->active_balance_type, If we overwrite migration_type for ALB (default is 0, i.e. migrate_load), then in can_migrate_task() a delayed task might not be migrated in ALB: if ((p->se.sched_delayed) && (env->migration_type != migrate_load)) return 0; So an enhanced approach I'm thinking of is to pass migrate_llc_task information via env->flags: > }; > > schedstat_inc(sd->alb_count); > diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h > index 56acf502b..82084d405 100644 > --- a/kernel/sched/sched.h > +++ b/kernel/sched/sched.h > @@ -1266,6 +1266,7 @@ struct rq { > /* For active balancing */ > int active_balance; > int push_cpu; > + int active_balance_type; /* enum migration_type */ We can set env->flags by invoking different callbacks of stop_one_cpu_nowait(), thus avoiding the need to introduce active_balance_type into rq - which could cause false sharing if cache-line alignment is broken. something like: #define LBF_ACTIVE_LB_LLC 0x40 -static int active_load_balance_cpu_stop(void *data) +static int __active_load_balance_cpu_stop(void *data, unsigned int lb_flags) -static int active_load_balance_cpu_stop(void *data) +static int __active_load_balance_cpu_stop(void *data, unsigned int lb_flags) { struct rq *busiest_rq = data; int busiest_cpu = cpu_of(busiest_rq); @@ -13659,7 +13687,7 @@ static int active_load_balance_cpu_stop(void *data) .src_cpu = busiest_rq->cpu, .src_rq = busiest_rq, .idle = CPU_IDLE, - .flags = LBF_ACTIVE_LB, + .flags = LBF_ACTIVE_LB | lb_flags, }; and in migrate_llc_task_wrong_dst(), we check env->flags & LBF_ACTIVE_LB_LLC instead. static int active_load_balance_cpu_stop(void *data) { return __active_load_balance_cpu_stop(data, 0); } static int active_load_balance_llc_cpu_stop(void *data) { return __active_load_balance_cpu_stop(data, LBF_ACTIVE_LB_LLC); <-- new flag } static inline cpu_stop_fn_t alb_stop_fn(struct lb_env *env) { if (env->migration_type == migrate_llc_task) return active_load_balance_llc_cpu_stop; return active_load_balance_cpu_stop; } if (active_balance) { stop_one_cpu_nowait(cpu_of(busiest), alb_stop_fn(&env), busiest, &busiest->active_balance_work); } thanks, Chenyu > struct cpu_stop_work active_balance_work; > > /* CPU of this runqueue: */