From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from PH0PR06CU001.outbound.protection.outlook.com (mail-westus3azon11011037.outbound.protection.outlook.com [40.107.208.37]) (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 414F538F255 for ; Mon, 20 Jul 2026 19:20:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.208.37 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784575239; cv=fail; b=fgPy4/O+7z0mLPj/MfiqbpNJP/vllm1IX4SEiYCjQR8qI2EbEcJXoAvY9vDSvhKtJPorczUK9cSrrbuRSKx3B0sBvugclLlpxa3MtkePYtcxj7MrQpxwMb49BWQ/1ujBQXcAmWmxL37u5u/c7PYED7n3esMVyHcHa4xUvbIydpU= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784575239; c=relaxed/simple; bh=QsNhhP72/yJSBrNaNUQdfEjIZpmjZ4JEhVwwbBAIqZU=; h=Content-Type:Date:Message-Id:Subject:Cc:To:From:References: In-Reply-To:MIME-Version; b=IVO5TZRMN4a0uNEKlLienfHIZul1N2xvTWXAeTgDoOquqyv+jLmykBSnyTEVcvSiBWAb15FHtB6jRU7HE74mo6Gjr8NxxHI5KtrRGLjx11igaz2rqjGxU90idjYL6fRoMZBv50z8D6aFkcMD9C2SGDPCWQmMZglBKnUefw+s7Gc= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=CQ+S4dHO; arc=fail smtp.client-ip=40.107.208.37 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="CQ+S4dHO" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HUG1GPLxf+LRrVwF1e0YP50bN98LDdaGXpZZ5+ms767qFjvnpIGijQH4pRFVRGLNYIZsd5uqjV64OfAcM62kv31Mmta9+HEwLjYWhK3PM1HMNZLV0qooSFJOZ/svu6LYMTz+KAnlSABJEWbXdvaQYPVXbfTIi+L/LGHJ+2YD+8k3tBH99BXT2MKlmeSjhdrst6ZA3Nl/le+n6a1cATzOReOx9IyTpd4dLDU2kW0dHeiB/LZrWujQUTu/5T1BJ4EdQcPea5AhbRBoS+2DunyntTDSUzMMvHeRkz+jcW/kPR7K5RbbWl/9xh3Q83OVbUSGZtcVqX/aEbq34uWVOYeAsw== 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=IkzEIC1IqyHuQ9/mMCKgxaucbBPmXznIZGz0CPZhxec=; b=cHD5kAQ0So0FCBv0IsPfj2I3o2OMwjQhDRZ3en2ecgu4tU6D2M7zBH+gYGtoDJavKh7TGyd2zBNFmFrqCkKptoTHKfCWZsOPEz2H+SsPae0UIXt3upFPAfYa8rZlesoWgWvStNwOpiedssdumFkKJ0SinHFPpUUn+xPqKu/u4ev1gBsRnUgmDZuT9FaNKM84bykGYzrkdlj3Bf6HRW9+FxEY6Al8OGOTjrawSc884cCr/ZY8bHzraJZg2/P1UeaGFZwMbEk9lWb6i78n8w33SjZ66lc1cD1LS0SzTxI19ChfnWixsmF2gR9cztH8TgvAPEaTcnEsgUFBqMMYtmrL8w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IkzEIC1IqyHuQ9/mMCKgxaucbBPmXznIZGz0CPZhxec=; b=CQ+S4dHOQkm7nlcUap9GoCUybciyDSe0te6MfZe22PNN9VD9yrpAPDuimoKVPva/dEjx2Np1wMANleortLKjrHtjL5bwQrnX3yrMvB6tCEoehKrMdvzVGn9NuTCx9R7v2pA0/llQQSdnDD4pC8d/bCiTXJMEBgQKNwqIP4IbOIMC8xchqdvXNHx8nES1zFvALzdAlxpJmE4ZmnyCyRzhi9Nm1g+8z5z8AUCqZ8gPNiTdYaSDaOCBIVycqDSf1mwXRUxediZ0OKGwoeql59Unz/dsdkSoKYL5yLjsU3tFzCUcBwADkIk1jWHFB9z8q/8cDA0gMvqY7lUA1E8au6t1dw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by LVXPR12MB999196.namprd12.prod.outlook.com (2603:10b6:408:3dc::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.17; Mon, 20 Jul 2026 19:20:32 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0223.017; Mon, 20 Jul 2026 19:20:32 +0000 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Mon, 20 Jul 2026 15:20:31 -0400 Message-Id: Subject: Re: [PATCH] mm/percpu-km: fix bitmap overflow and accounting in pcpu_create_chunk() Cc: "Christoph Lameter" , , , "Sashiko" , "Zi Yan" To: "Dennis Zhou" , "Tejun Heo" , "Christoph Lameter" , "Andrew Morton" From: "Zi Yan" X-Mailer: aerc 0.21.0 References: <20260709-fix-pcpu_create_chunk-in-percpu-km-v1-1-1f64745a84cc@nvidia.com> In-Reply-To: <20260709-fix-pcpu_create_chunk-in-percpu-km-v1-1-1f64745a84cc@nvidia.com> X-ClientProxiedBy: BN1PR14CA0016.namprd14.prod.outlook.com (2603:10b6:408:e3::21) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) 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: IA0PR12MB8374:EE_|LVXPR12MB999196:EE_ X-MS-Office365-Filtering-Correlation-Id: 8b33bd20-f8c9-471d-b95d-08dee693f76f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|23010399003|1800799024|366016|11063799006|56012099006|22082099003|18002099003|10067099003; X-Microsoft-Antispam-Message-Info: Qw5AUgW/+RLU3pO8cNU68S/PKdxa97F6xA4A9LP6xBq1vffgmN5zz7R6zAjMgqdbRFiVnJevj0RofGM0Qtb5K16Su2LTG8VwEeAhwqSO3+AOnX0abMGkw+frStquGGgvqP+F7K+3eC5+Vxk04uEMAgj+M9w9oNjlQWZUq/rT32UVFrNv5xvrow76VvxOjpkOhGGhYb6n1AxKNmGJw2ZTdKdXXjNYCNWCOxXnlAVAgchSjkl05TmNBxR1uGRunbiJcO7JDWNyU3dEuSho6HGO80zy+MONtYAi6REFHaqSyzK1+m4YKt3GqRxwLROBUb7zgJnR4yTVAm8EoqNTkqzX/qAZ1OfFenxjZVsxyRIWpuCkW4szrVLr8/PFLMlzo6EtJNUXhRISwKF2HMiG/E94IeQ8NIiJSzEWXO8gQcbu/uxVwpYcLY9eq3LMtt3rn8H9Zg/si/HV4l4hwGKbrTSVyAAMlqzIlH4XMxcA9d2gv8BZci4wzrvHMuk8FNI7iXxUbeNJNDPAIZC3JHIkpexq0Vbse1Ef2B8zn5j2CKkCMArABAPAjMUrVdfOgecKorD2uGLOsR0sgSXBZe1AAPMz/a8vxgrnkiO60ALyDWacp3wA08kddpubypZClJS6LcyvqD8kMIaRaMn3YQYon8PiFWBSu5hxWaQ10C9IUghDz6c= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(23010399003)(1800799024)(366016)(11063799006)(56012099006)(22082099003)(18002099003)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?aU1OdUNWbnlHb1prQ1FiVGkreS9rYVU4MkFua1o1YnZnZGluTFpSaDdXbmVn?= =?utf-8?B?NEp2NWlkR09RL3pqb0QrVkVncVEwRW9KeTJvR1luNUI5SUFzWHcwTHY1VWdH?= =?utf-8?B?RGh5dktkbFlkK0F0OVpYNnRZRmVGUy9tcXRoZlhNSWVjcDMxTzhlK1RRWGE3?= =?utf-8?B?ZkJwa2hPc2pyM0VxRURnemVuR0pMQ2dtM0hzMk9vdlNnSXl0WE1qQ25ubnVX?= =?utf-8?B?Y2p2V2lnT2prZEp5N0ZHV05pUVFQSEtleUMyVVd2Z2pxQUYzUm9Yd0o4MUVu?= =?utf-8?B?Ynd6akpDcVQvNjFOQWU3ZnVDMzc2ajdNOExOT3JoU25SYWYvYVNKSXdPcXda?= =?utf-8?B?OVRmMWdmNElKM2RBRUVheHpaOHRZRm9CcUN4WXZmZGJLVjF5TVlxSHpJTkEy?= =?utf-8?B?SXJHVDY2TWZLNXZkYU8xWVFCOVAzeVgwN0owNHFOZWhFMVFCNkE3UjRSQkc0?= =?utf-8?B?T0ZWT0RMMkRMeHZtYkpzaDdSeHZ2Ymh5VnJVWlNCNTZwMmpPRlNickxpNEdW?= =?utf-8?B?d2duMWxSQkVZc09MZnFSREQvRXBZNC9GVmVlL2RkVlZXYTJ0Yzk3a1ZHMG93?= =?utf-8?B?RDBYdjFUN0gyV3ZiZUs1RFQra3Y5OWUvT0tkQWpXNThXRDlwTEEwTlQ0bnAw?= =?utf-8?B?c0pMelRXR1VVT0hKdDNHZmlSZld6UlBOdE9lajNacThyOWhnUytMNzVPWlp1?= =?utf-8?B?ZHFVb3h2Vk5SMkNaZ2JzVmQ5RUJOcnNYNVZ1UW1uMmcxeURNQ0dvR0xUNkFp?= =?utf-8?B?T1dlTnMyNzhuZ2R0TVlVNEx0MDRxUjU0bkFZQVZmem9BOTl4U0tYNnJobll1?= =?utf-8?B?ZGNuZVlPTHozaDQxc21KT2RLbk5aZFFXTm92eGQyYldQREozZTlCTVJDU29w?= =?utf-8?B?WGszV1hrQzM0OURTVUNEb3p3ZERWRk9ZK3MzZnVWSjBVVC8yTi9jd3BrREVF?= =?utf-8?B?YkR2RjhyMnNhTjRvYXRJV2R5cGFSWjJnK0JLL0ZtZFBiU2ZGcTA0NE5LS2ZS?= =?utf-8?B?S1ZsZTd3d091YnpYRHRNWDZIMHVJc29FZXk3b0E5cWR0Tm9rZmdudHk5ekJ0?= =?utf-8?B?UFYycEpZTFNGWWFIbkV6cTJGRzZkYmdDSXRUSW9aWXNXNm4wbldHV29ETFBE?= =?utf-8?B?Rm42aGtYNXM2aHorV3o0RHZHeExST3F5eGUzamdBYS9FdlAvZnl0NE5RSW9Y?= =?utf-8?B?dHE3Y0NLVHErVWwzbXBHd2FmcHU5K25MUVlZVE04dHYzaGZoNlQxbHJFWVM4?= =?utf-8?B?aTBSc2tlSGxCaEdBaHQ1cE91Nno0MGtGSEhYcGdmMldpMU9CNUNxZkxOc1I2?= =?utf-8?B?VTd1amozODBMTmtOaVAvczdPd0EyVTB0d2JIRG5kc1lkQUhpdzBSUGEzNzlr?= =?utf-8?B?a0hxZzMxWnNMY2NxeWdZSnM2eDNhQnhoSjdXS2Q4M2xtR291Nm1JSDhYRER4?= =?utf-8?B?NnFrdnNiR3Y4TUdlVGlCSkhPRVlEeHpPbUVZT2E1Z085K3pXZHNrbnRDdll0?= =?utf-8?B?Y0VrM1h5eElyY0RGdEdDZDM3bkJya2hqTEtBWUp5bEd5NlZBdG9VUjdTMFRD?= =?utf-8?B?QXowM1RlS0FaNlN4cXZwTis2YVNBNXlUNHlFZUM5d2ZyL2dVNDViNlA5c3pQ?= =?utf-8?B?d2VNbC8xbEpDb2k5TlF2U1IyYzgxSXppSXVvdVlSdWdDYjZoVmJGdGF0Ny9V?= =?utf-8?B?SFBDL2lXNkJHbVNhL25MQ2FvbW5KTkFISmFlRjdwOFd1M3o4VldlYTQrenFm?= =?utf-8?B?RjJrL1JaV0dkNjQ4bVdtS3lDRDhocUxhQ291QUZuWEhybWlRL1pMMTV1YWta?= =?utf-8?B?eWJLb2xjcTlxTVphVkxaU1M3SlZ2b3BLNWF2L0RzQ1pMZWpqQlVkcHBYcUNU?= =?utf-8?B?VDVtcC9TZEFYQkRNL2QwUFRDYXIzM1JwWUVSM0JMWlkwMlNSRUQyUDBEYW1j?= =?utf-8?B?dEE0aStTK0xzNjJjNVdBMHU3NmV6QzRoRDAxT2k4TktRaStrUE9wdGpxaXJ0?= =?utf-8?B?eEp0K0hjOEdETlFsdU9oSXBybzNyU1FkTENXalJHSEJFcHZyRmxRcndDekhh?= =?utf-8?B?Wk5oc3JPa3V3a0FTeHRxKzExRGM4ZHBUV2l2R1FzY2FIM1V0V3hzV3I4OStC?= =?utf-8?B?b2l5Q0Z0cmtVQllCU29CRERDSFVxeGE1Qk16U1VrZmMra2NMZUN6bGNpNkE3?= =?utf-8?B?M2NScFJYWmozZ2w0eG1naTJjRFNoTUFLS3YvMFVONEs4aGJjRUNJamlJaDEy?= =?utf-8?B?T1lqT1pNU3hzZEdVTUtObWZSRFlZZktkWXB3SlJRSE56MTFsREZpN3lKZVdk?= =?utf-8?Q?sLYTnIgTIHkVGnNhq+?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8b33bd20-f8c9-471d-b95d-08dee693f76f X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jul 2026 19:20:32.0298 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: XNdqnBiRyZDOoSPCkZplhsMqu06Np5UNhxVrvPOWqEz10k/SBFQKp82ZkojYTvCl X-MS-Exchange-Transport-CrossTenantHeadersStamped: LVXPR12MB999196 On Thu Jul 9, 2026 at 3:12 PM EDT, Zi Yan wrote: > In pcpu_create_chunk(), nr_pages is the total contiguous backing > allocation, i.e., nr_units * pcpu_unit_pages, but pcpu_chunk_populated() > uses it to set chunk->populated, whose size is pcpu_unit_pages, bitmap. > Since bit N in chunk->populated means page offset N inside every unit is > backed. When nr_units > 1, the function writes beyond chunk->populated. F= ix > it by using chunk->nr_pages. > > It also fixes the global pcpu_nr_empty_pop_pages accounting, since > pcpu_balance_free() only iterates up to chunk->nr_pages. > > Commit a63d4ac4ab609 ("percpu: make percpu-km set chunk->populated bitmap > properly") introduced the bitmap overflow issue. Later, > commit b539b87fed37f ("percpu: implmeent pcpu_nr_empty_pop_pages and > chunk->nr_populated") added pcpu_nr_empty_pop_pages and caused the > accounting issue. A gentle ping on this patch. It would be great to get some feedback. Thanks. > > Fixes: a63d4ac4ab609 ("percpu: make percpu-km set chunk->populated bitmap= properly") > Reported-by: Sashiko > Closes: https://sashiko.dev/#/patchset/20260703-keep-subpage-private-zero= -at-free-v2-0-2970fe777dd6%40nvidia.com?part=3D1 > Assisted-by: Codex:GPT-5 > Signed-off-by: Zi Yan > --- > To make nr_units > 1 in percpu-km, we need SMP && !MMU && NEED_PER_CPU_KM= . > RISC-V can have SMP && !MMU. SH J2 can have it too. The kconfig analysis = is > done by Codex. > --- > mm/percpu-km.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/percpu-km.c b/mm/percpu-km.c > index 7ffe84adadb9d..65fd5580e4472 100644 > --- a/mm/percpu-km.c > +++ b/mm/percpu-km.c > @@ -75,7 +75,7 @@ static struct pcpu_chunk *pcpu_create_chunk(gfp_t gfp) > chunk->base_addr =3D page_address(pages); > =20 > spin_lock_irqsave(&pcpu_lock, flags); > - pcpu_chunk_populated(chunk, 0, nr_pages); > + pcpu_chunk_populated(chunk, 0, chunk->nr_pages); > spin_unlock_irqrestore(&pcpu_lock, flags); > =20 > pcpu_stats_chunk_alloc(); > > --- > base-commit: 59e34180e138a293260301c139cf7ee800978533 > change-id: 20260709-fix-pcpu_create_chunk-in-percpu-km-6dfa8f28b175 > > Best regards, --=20 Best Regards, Yan, Zi