From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010022.outbound.protection.outlook.com [52.101.201.22]) (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 9A08B3859C7 for ; Fri, 3 Apr 2026 11:11:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.201.22 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775214684; cv=fail; b=NBeFrwBn5ce74Cttefk2uP5POW7htpy+YRuuXR5OFBEgE+aD1syy6XjiKciwnMygKjIVwfGKCmYmqugQahHPLxntI+1EB2p0CqvtqMadqWeAhv5fztbqUynSdxysmDy0UC8WKNpoQon3lkK4HWb5JQeU+U1iJsHYKq8uRvW7VHg= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775214684; c=relaxed/simple; bh=guQGK00z9WewBT15l3OJP03wARD6RSc7uW9GR9Q1YUw=; h=Message-ID:Date:Subject:To:Cc:References:From:In-Reply-To: Content-Type:MIME-Version; b=H/YXvl+N9CpDzhB1MWNiYQB0u1HwaMB5Lw94iWI4LqSol6/Yi5sXfOvO8gx21VPfFp1d7fYb9V407aBwpyW5bnr7pnBV+faQLI6QKiPZcBjhoy2z62KQGBU8wc29rQId+Kx/ocqBtUDO+pbyDjod6+BuPrsFeAHCG91YVSL8pXM= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=ZtrLKAWU; arc=fail smtp.client-ip=52.101.201.22 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="ZtrLKAWU" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qyrOrwhyDLQ+4RjSQf2jp0GNixjezRW3vmgn4+itvFPJ/EdpdEb60xoAWpOFXT4ohXD8ZVl7nAnSyQngMAazv7Tu1Ygia1Dyh0znhYAAUz1ydvNdvNRf3GR9wJyJ15XddzF/jcSXs6l5ZSM0tghVml+UQloqYt0mxUGuqfWKW3nVkrpcB0gXi2znbXz4T/wh0/vmS1fh3+q51vittfQCMIT9TY3iQg59UblH8DludptVzDJ8mFubT0FYluzvXY5PeKTBeMNOzQV65Gq7BHTQFqJzp+GsHRNX9BOpGUn5DMssKQa1FdC5Hp6R0T8+tT4mDIFYRWLcgMq64kxYwck9nA== 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=1JEH+XlZhHXB1jNVJ9FAa/WSVWOqoPRdt0NfUj09v5M=; b=VOqNfw0tmr33YxVYRcdH5yiGoZFvmJJ0YuNbu84TQkkXAogelwj3HELZviUR4u7ACjLI8UjQA2fkbYh9pDqF2KCK/796eKwoPmC7mizAtbCOIir2JOiiRbSwiBlE9nXRoxAc0wAk3V9A74F2GA7oaa1fZ7efJlUJyONXrXnooTCI45MHJNojgnvnLZhwMlsRkpe2CsAMYAM6NWU9GX98mCAUazwW6PDqWRg6yFEEd1R8tORQ2eLZNsv4rHM8boZCo2BYC2FJn1xQeqKgvinFrduN9TWMgR/iqTjQwB4uWl0aLYhoIB++JqxERPeCqJnCJUCM6FpbMY2XVBJ7ULzfIw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1JEH+XlZhHXB1jNVJ9FAa/WSVWOqoPRdt0NfUj09v5M=; b=ZtrLKAWUR6Q/kYVyQKZXWb1MUWEpuXNZJQpjTkd9Yi3hJutx9x+9W4yaUHw1psZOpUQozfRZ32NO1f8sVwefisfMorKy50+018BSi3SeN7dkao+mA/2nUrzRHB8LU7ghtEQzDYlTtHCQgJ3xXn8K7TvkTvlBRvvfs9UZV1YA0DE= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from BN9PR12MB5259.namprd12.prod.outlook.com (2603:10b6:408:100::17) by CH3PR12MB8909.namprd12.prod.outlook.com (2603:10b6:610:179::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.18; Fri, 3 Apr 2026 11:11:18 +0000 Received: from BN9PR12MB5259.namprd12.prod.outlook.com ([fe80::122c:cca7:c2b3:90ed]) by BN9PR12MB5259.namprd12.prod.outlook.com ([fe80::122c:cca7:c2b3:90ed%3]) with mapi id 15.20.9769.018; Fri, 3 Apr 2026 11:11:18 +0000 Message-ID: <70414c31-d928-41a6-89db-eeb0f34ec07d@amd.com> Date: Fri, 3 Apr 2026 16:41:06 +0530 User-Agent: Mozilla Thunderbird Subject: Re: [RFC PATCH v4 4/6] mm/migrate: add copy offload registration infrastructure To: "Huang, Ying" Cc: akpm@linux-foundation.org, david@kernel.org, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, vbabka@kernel.org, willy@infradead.org, rppt@kernel.org, surenb@google.com, mhocko@suse.com, ziy@nvidia.com, matthew.brost@intel.com, joshua.hahnjy@gmail.com, rakie.kim@sk.com, byungchul@sk.com, gourry@gourry.net, apopple@nvidia.com, dave@stgolabs.net, Jonathan.Cameron@huawei.com, rkodsara@amd.com, vkoul@kernel.org, bharata@amd.com, sj@kernel.org, weixugc@google.com, dan.j.williams@intel.com, rientjes@google.com, xuezhengchu@huawei.com, yiannis@zptcorp.com, dave.hansen@intel.com, hannes@cmpxchg.org, jhubbard@nvidia.com, peterx@redhat.com, riel@surriel.com, shakeel.butt@linux.dev, stalexan@redhat.com, tj@kernel.org, nifan.cxl@gmail.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Mike Day References: <20260309120725.308854-3-shivankg@amd.com> <20260309120725.308854-12-shivankg@amd.com> <87o6kdzeei.fsf@DESKTOP-5N7EMDA> Content-Language: en-US From: "Garg, Shivank" In-Reply-To: <87o6kdzeei.fsf@DESKTOP-5N7EMDA> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: BMXP287CA0002.INDP287.PROD.OUTLOOK.COM (2603:1096:b00:2c::17) To BN9PR12MB5259.namprd12.prod.outlook.com (2603:10b6:408:100::17) 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: BN9PR12MB5259:EE_|CH3PR12MB8909:EE_ X-MS-Office365-Filtering-Correlation-Id: b2ca6d2a-503e-4b3e-b1ad-08de9171bab1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016|22082099003|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: S3Nq51dgzGsIOLUMh+mXKYmH077XuzIzy2C+QL9B2Uz+aqoUxpwiD2pulT2vRs9nYpJD7At3tSf03KUXbnej8E/FLwacIk0diW3Z8ZoVLgkIOhmZuDqnWoGN9Rk4gttnAjcnsiWZcUfH/2uFgH/mlEL/u/5VGoFqUiWPSH1hwhIxfzw+idJMucY/LYF/vkoFWi+jJ3can+IREwxjMePAagkf346/P+n08nt5AseqQbn+f7rAOKHmrb5NXUMP7XHdMn3pmFyIfBaFEGPnsSKqkFvNe5wMzLYzaJpM0DuEQQBdFtsojJX7BxWaxdpfyZ4fe/GLOE/OVgyq+FuSjChUJ7t7JC7q87rSkjMFKsNEorHpI+KM0NMehzl3vaMWu2heLBYCDr3chKedkcyqv9QMQljWgZ80pRdXUgbiCSXP/JToLIEA2f97ZsEjKOVZTMKjiXAhuDYyAet4uELLYq3/ot8BeYcH7ZiNWSO0YQCjKsh5N4YloAgU+Ua7yGEhl8vB6oNCokCz0RHLLaTu90LtOfAcbqzdnCLWj7FCuvoiKjjXPP8nQTHHRa0EQpmXQy6Mkxy0rq/461v2pUSW8Y6vEacuTjMsPCOo4EGoOrpTZdZzOsQigTST3isP5fy4UggYNdE6N9TCJpqogzJSH/m5fxBAOgGSr8UHSDNPNjG3eo/GNEJ2dNJl45gMiK3R8La+vG7C/YXi8uijNgLC8PqEiAq8pKcmFtV2zuGodNQ7HIw= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5259.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eW9uVldmdnYwTU42SkxHYlNUWm8yVTlndFpVSjYwVjY3Tzl2YjFmMDZZREJN?= =?utf-8?B?Z1ZDUEZ2LzBSNjJMYWFvTmNucmlKcExISFhmUEFieSt2NWNUZ2NsL21NZnNy?= =?utf-8?B?S050Sk1kSmNJM29QS2xvR0ZrVndrRWs0UzJFWlk2SDVlL294MEhWWFFwNXhC?= =?utf-8?B?NzgwWkRkRzN0V25FSkRuZldkZHQ5VDdVdVZyRGZjUzhaeVBVK2c0WHlCeDZ4?= =?utf-8?B?eEtpNmN0OFI3SGhQQm4wVGxSYzlIL3NNZUk3OW5raDlvaElKWmp6R0NSZmNF?= =?utf-8?B?MDZwZHBweTFlT3pVblh6cTRLNThVSW91ZHBmaGtyV1RkREI3eE5WdFk1N1R1?= =?utf-8?B?ZVRJNjgzMnp1QXMxUVp1UVpNSTJuejlJWnU3RXpBUmpHQzBtMGEycWJVN01I?= =?utf-8?B?Z0N4TVEvL2pqOXp4K05hYU9KdkIrQ2RXU3V3aFRWVGdVYkxCZnFJK2k5Sk1u?= =?utf-8?B?SDFTRDgyTDJsV0pSRUlQaGc1ZzNNV09sejd1U2hqZkdzNW5ZaWpoZ1hWUlpR?= =?utf-8?B?Mlk4WmY4TzlJQktSWmcvOUt1dmpRb0UxM1FLQmw2L0ZaQVdsWlNaWlNFME5l?= =?utf-8?B?YkJ1RFZveUJhWEFzb2dKcXRMRmNHR1RWb3lZM2F3YkxnNlNPVWFySzN5V1BY?= =?utf-8?B?Yk1XbXcwVVZVWnZVOGN0V2txaHpPSGJqTm9qM3lERm5TN0NkcVhrL3FpMmN4?= =?utf-8?B?RUhLRytETW1yQjNENzcxM0MvZ1ZhQlB2K3phRTY2clFrN2I5bEdsRmNpQ3BS?= =?utf-8?B?N0cvU0ZWaEt3RXBpa25KNFBITXl0OC9BelVGcDJNZUpWQ3BCb0JrdGVEUFpJ?= =?utf-8?B?Q2NsajNlWldPRDBiYWRUSUZVNDNhTXd6ZFF5MkVUMldMT2Z2MnVpQnFqcnk1?= =?utf-8?B?S0VpQjBtUEM4T1Z3cXJFYkNONUtGZEplc0Z2empTbzdQNGR0bTI2SmNObFN4?= =?utf-8?B?WkZLQ0pvWjg2R1I0Q3h0NStPOHRxRjNjZnNJS0loZHJ4dWVEbjcwRG5Zcldh?= =?utf-8?B?aGlIdy8yTmZ2K3dvR295cy9Hcnk1a0xLYW94NFRBazA3NXhlVWVxc0lMM0dN?= =?utf-8?B?bjdZNEZzdHUxOEc2Nnh2Z1l1OTBCaVNobThEU2ltQlhVZTc3a0dhRHQyUnhZ?= =?utf-8?B?WDJ5bzRMbDZlMzlERkhtWWdXMVU4MGkwVkpVRVFQS3ZSdGdQNWVMMTJVWlJa?= =?utf-8?B?TXVsNVB6ZURDYzV3dUZuZGlsQjBtS0xOa3hoY1d2RTRVbm52dlFYOVg3TlRB?= =?utf-8?B?ZkY2ci9vclVNcHpSZzE0SDYyNWthaWJRa05jTjdjSllmN1pEbnNINjkxVkJX?= =?utf-8?B?MHhub2lMQzM1WlBEU2NjYkNaaWZsMDlqanAvc3BlZ3h4UmNSQUFRa1BoLzk5?= =?utf-8?B?UjEyZmRzYjNHNVlpQ0gwb04rMlFKdi9ZZ0JGOEc2cG9IVkpmM0JRYVIyTDN2?= =?utf-8?B?YTRLUTJwWk9sLzBGa2s0eUswbUVWanhhazFiMzNzOGRSdmhrcytFcUFQVnpN?= =?utf-8?B?dEt1SnpnVitFcVNYaS9sYkRjVzFQNmFCUS90SlR5dEc2djI0UFRUNExLOVFV?= =?utf-8?B?SkRad2VKZHdEMW5JL3E0M3duZ1pGV254eTc0N0ZHcysvaGJSMWlUSG9QWk5X?= =?utf-8?B?cWxPQjFkMmtESDRnS3RtWTZ3TDkvOERCMXBicGxudmxZcXozSUFlb1RHMTRo?= =?utf-8?B?RmVNWjVibkFONDY3UGRyZy9reU1ZYnRzYjhBTy81eXVUbVhtREpxTGJFWDE3?= =?utf-8?B?SitxY083Z3Z0a0N1QzBYcFpsQVp2a2R1RFh4aHNoa2VyQW1KMVgzMFZ2WEJT?= =?utf-8?B?cDBXb0RONnVWYy9jM3I5Q0RkMTg4WWFZS2lGTkZWMEdoTWpLQmtkWFJxczht?= =?utf-8?B?Ty9VeXVrbWV5cHpEYWdzcjc1UmFCR1dkOW9CbDUxRngrQ3R0b3cxa3ovS0pv?= =?utf-8?B?VkhpNVNIVmQ4Qmp6YmxxVmxpZjBUT3BxSTFnU3cvcnVFSHBISm50RUJBTlJV?= =?utf-8?B?TFJmejZ3VjdGbk1lRER1OWZnVEp3OEw0S3lTc3AwRHZ6L2psYkxpR2cvVjN0?= =?utf-8?B?eG1hZDJ6RmRkSHpuNjE1NjU2Yndoc0NlbzRtU20vTEdvdEpwVGFoT1dvZWxh?= =?utf-8?B?alJNUTV0SnFkV3lydWtqeTdxa1JKOVlXODg5cDJVdjZUNEFUaWEvcEZNVTl0?= =?utf-8?B?K083dlZZWTNBOXdlSW4yejRPdGNFRDFmOTdnR3pCYWhBT2EzZjNvTFAwa3Y0?= =?utf-8?B?ajJneDBKMjVtTnB5QjRFWDV3NThGbGxQbXpqK2ZiV1Btclp1d3gvRW5URElW?= =?utf-8?B?UHJPcGpUMEpnNmxFbHliUVJKREV3eGpxeHlnNytLUVZOR2pqZENwZz09?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: b2ca6d2a-503e-4b3e-b1ad-08de9171bab1 X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5259.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Apr 2026 11:11:18.3497 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: tNeEv5db2gh+yF+LQzHlvG/vHlBH/LTC9x6ODunzZWCVUIn7ZJkpUDma+zhA8unjJmpaKqmGwnk8KSc2Z85UEA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8909 On 3/24/2026 4:24 PM, Huang, Ying wrote: > Shivank Garg writes: > >> Introduce CONFIG_MIGRATION_COPY_OFFLOAD, which lets offload driver > > Do we really need a new kconfig option? IMHO, we have too many now. > Because we have a jump label already, the performance difference should > be trivial. Can you measure the size difference? BASELINE (offload=n) text data bss dec filename 23577 1632 32 25241 mm/migrate.o 39202900 14159750 6502152 59864802 vmlinux WITH OFFLOAD (offload=y) text data bss dec filename 24444 2568 32 27044 mm/migrate.o 676 64 8 748 mm/migrate_copy_offload.o 39208218 14163942 6498120 59870280 vmlinux WITHOUT CONFIG (always-on) text data bss dec filename 24444 2568 32 27044 mm/migrate.o 676 64 8 748 mm/migrate_copy_offload.o 39208405 14163942 6498120 59870467 vmlinux It saves around 5.5KB of size, when offload support is disabled. Is it meaningful savings? What do you think? > >> +#ifdef CONFIG_MIGRATION_COPY_OFFLOAD >> +extern struct static_key_false migrate_offload_enabled; >> +extern struct srcu_struct migrate_offload_srcu; >> +bool migrate_should_batch_default(int reason); >> +int migrate_offload_start(struct migrator *m); >> +int migrate_offload_stop(struct migrator *m); > > Why not naming the function migrate_offload_register/unregister()? > IMHO, that sounds more natural. Ack. I'll rename to migrate_offload_register/unregister(). > >> >> +#ifdef CONFIG_MIGRATION_COPY_OFFLOAD >> + /* Check if the offload driver wants to batch for this reason */ >> + if (static_branch_unlikely(&migrate_offload_enabled)) >> + do_batch = static_call(migrate_should_batch)(reason); > > Should batching based on "reason" be determined by the general migrate > code instead of the migrator implementation? For example, if we only > batch copying for ASYNC migration, we should determine that in > migrate_pages_batch() instead of the migreation implementation. Or am I > missed something? If so, can you provide an example? > My idea was that different drivers may have different cost/benefit profiles(e.g. setup cost, migrate batch-size, etc..) For instance, a DMA driver may want to target only bulk migration usecase. And a CPU-thread based driver can be used more broadly, without worrying about setup-costs. But I agree it's premature with only one-driver. I'll move the reason check with target usecases into migrate_pages_batch() and drop the should_batch() callback. If a future driver needs different filtering, we can add it back then. >> >> +#ifdef CONFIG_MIGRATION_COPY_OFFLOAD >> /* Batch-copy eligible folios before the move phase */ >> if (!list_empty(&src_batch)) { > > Guard with "static_branch_unlikely(&migrate_offload_enabled)" first? > Better to define a inline function to shorten the expression. > Sure, will add the static_branch_unlikely guard and wrap in a helper function. Thanks. Best regards, Shivank