From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id D8E9FC4829A for ; Tue, 13 Feb 2024 14:55:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3E80B8D000F; Tue, 13 Feb 2024 09:55:24 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 3A11E8D000E; Tue, 13 Feb 2024 09:55:24 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 25FD68D000F; Tue, 13 Feb 2024 09:55:24 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 120D58D000E for ; Tue, 13 Feb 2024 09:55:24 -0500 (EST) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id D34EFC0116 for ; Tue, 13 Feb 2024 14:55:23 +0000 (UTC) X-FDA: 81787078926.12.1F55167 Received: from out-187.mta1.migadu.com (out-187.mta1.migadu.com [95.215.58.187]) by imf07.hostedemail.com (Postfix) with ESMTP id D002140006 for ; Tue, 13 Feb 2024 14:55:21 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=KYTVHJp3; spf=pass (imf07.hostedemail.com: domain of muchun.song@linux.dev designates 95.215.58.187 as permitted sender) smtp.mailfrom=muchun.song@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1707836122; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=odYQg0X9p03RWw1VAUk5+w53bWUrUJQlPaSag6Pv+fw=; b=XQK+s/MmowyJmFCBAZ339a73U6TbOE2+srHyDRcH0Da0hVAYRSJ6eGcNO7Hpq5adMQOqGz 92g8WLp4yHSHlrU6lOIgMRdKfBF0/hW1vAV6PzW7RQG0zccgu1hLT3rI2OYDxcDvTJh8H9 RK8uJc9UpTfxRvxhTiUurhNY08zoHJk= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1707836122; a=rsa-sha256; cv=none; b=3hptylfeSRjFcQAhJT19b8Fv8i+0B87Xi4fyRh5Ree8CqJF8XJ5ZdlhHpUCDPKA5bs113f TZdgeZ1cq/Jn6TYFaKpNgAX61OmqLExkcU6Q4KrlpWUS4rfURd8bSmBWNHxdYPLrR9AnkG PrtaCsw35KFSIMX1fNZ7a4nZbdAEtQA= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=KYTVHJp3; spf=pass (imf07.hostedemail.com: domain of muchun.song@linux.dev designates 95.215.58.187 as permitted sender) smtp.mailfrom=muchun.song@linux.dev; dmarc=pass (policy=none) header.from=linux.dev Content-Type: text/plain; charset=us-ascii DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1707836115; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=odYQg0X9p03RWw1VAUk5+w53bWUrUJQlPaSag6Pv+fw=; b=KYTVHJp3bZ4HyXSa9gVUA7hxufisU/fPUeL6G7jUuLNTFkA3o2EphAGK6sIdAS3pHd1Lcl D8+S9dbL//Ecx9d2IEUQN2TwTFketNEQ1ZSC46SW7H0oCvZdkaeICRdoYwZtJLsUPfay7y E3sVn7QZdsvgvCcd3ijFrW1zjH8362s= Mime-Version: 1.0 Subject: Re: [PATCH v1 2/2] hugetlb: process multiple lists in gather_bootmem_prealloc_parallel X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Muchun Song In-Reply-To: <20240213111347.3189206-3-gang.li@linux.dev> Date: Tue, 13 Feb 2024 22:54:40 +0800 Cc: Andrew Morton , Steffen Klassert , Daniel Jordan , Jane Chu , "Paul E . McKenney" , Randy Dunlap , kernel test robot , Gang Li , linux-kernel@vger.kernel.org, linux-mm@kvack.org Content-Transfer-Encoding: 7bit Message-Id: <1B2A09F0-8F2B-426A-9D1D-6A39C3A6CF64@linux.dev> References: <20240213111347.3189206-1-gang.li@linux.dev> <20240213111347.3189206-3-gang.li@linux.dev> To: Gang Li X-Migadu-Flow: FLOW_OUT X-Rspamd-Queue-Id: D002140006 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: dzgkiuwdy8s1ct915j9gop64ktb9tew5 X-HE-Tag: 1707836121-912963 X-HE-Meta: U2FsdGVkX19TSWDlWDTGKG7EyksLEa+Jm3CNtqaGbkj9HjrogrGYQm8i5m94vDd5rMa8HrgCicsfLoLEBWY02o+KeM0XQHw9amrVFHtdzAaf0T3C/ERCBS5km8gUPJGL9AuCWnCX13WKwJrFy+XqLzRmZn/hz8DgsyltVT41qthPm3JqcanBrV+CcRSj6qPDppNtniUgK8xhz6vNAO8hg+IBmAxdKQZQYeGpEpMFdYq1LxlxZ/J40opVsxTavV5Hcvcv9zQIdV4y40cxLxTfdBGSQhN2T5hEKMsQSJJj/DtyKwy7i9tRtr9pgY3acLPdLwbBSfBf7SUtLQPkpwZK7BeNcSJWKkUhd/NtaYBUYc5dliT46XCpcgamVHYOtJogQKpi7OGFK1gYVRS/JvrqulFNESUbzXiXlapTgqLjvwyRI4Fp+J0+XmfMIXy3XPSHdprIyeLl8mq/wxELLIhe11wHmDDgFFeKDxApNqJXFdrItlbDGImPv3H6gZfwSexbLN0OzaJnM8DSxH213jsqc1LtdFjkloAfEglMT86hb4fugAXjp++K/RzF+XXjIbiwf862lHLcNBdl8bL9X0tYULNDPNSSnUbOD9JPtEbmhZsTq03x/5YuVwRteXv3xPTmHmdkECooXoKQrs1urw+1uY7iP5YHf+KlwbpRZYIAysSAYFAPJ0rCBIlctfwVZZIAyUcDD3/45y0EcMPJLE02LgKyINlt4sfBoqjvUp6dyC7EfT+9+tt3V6pfaVZm29N5PZ4X/EYe5tndFArrmTUzfZ5hCNj0HGOqw6WwH8LrBE39qSNn9kyASLfTI493V3FLG27sqcRCcafqB2JOwQAbg8DxJwumjmkJHn5nrofz7D9LPDPJjrwnH/97wBPXmVlLN7tv0KcQHqRF9cQN3ogYSDEoY7VUUkeY31PN+pU2/AovkVXjji28c/VdYsZgzZxSkj2BrSZkD/vzilK2aRJ psmDtEe1 XZXHpgZw8FaJTK7rhwwofEJZEq5CQ74QOk0adRtKfnhQewr7htHTHr5KtaT8vM6vA2t/RVTprpdkfQrAxIx6vpL1BKZ9aBcPfBYN3eN7pdte5WlQy529V3jnYSwJ3yRAXo5Esz9cbEo0dlBqENGhC9QPMfsy8lxur3xZdNDFLSw/5O7s2O8Tg/R0iTbXIH96DD05Kq/enDVB82x5Cdt7WSGDKNA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: > On Feb 13, 2024, at 19:13, Gang Li wrote: > > gather_bootmem_prealloc_node currently only process one list in > huge_boot_pages array. So gather_bootmem_prealloc expects > padata_do_multithreaded to run num_node_state(N_MEMORY) instances of > gather_bootmem_prealloc_node to process all lists in huge_boot_pages. > > This works well in current padata_do_multithreaded implementation. > It guarantees that size/min_chunk <= thread num <= max_threads. > > ``` > /* Ensure at least one thread when size < min_chunk. */ > nworks = max(job->size / max(job->min_chunk, job->align), 1ul); > nworks = min(nworks, job->max_threads); > > ps.nworks = padata_work_alloc_mt(nworks, &ps, &works); > ``` > > However, the comment of padata_do_multithreaded API only promises a > maximum value for the number of threads and does not specify a > minimum value. Which may pass multiple nodes to > gather_bootmem_prealloc_node and only one node will be processed. > > To avoid potential errors, introduce gather_bootmem_prealloc_parallel > to handle the case where the number of threads does not meet the > requirement of max_threads. > > Fixes: 0306f03dcbd7 ("hugetlb: parallelize 1G hugetlb initialization") > Signed-off-by: Gang Li Reviewed-by: Muchun Song Thanks.