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 EB3A2C54798 for ; Tue, 5 Mar 2024 03:25:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7F7A86B0088; Mon, 4 Mar 2024 22:25:21 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7A7136B008A; Mon, 4 Mar 2024 22:25:21 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 620B86B008C; Mon, 4 Mar 2024 22:25:21 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 4DCC76B0088 for ; Mon, 4 Mar 2024 22:25:21 -0500 (EST) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 2146C1C0D12 for ; Tue, 5 Mar 2024 03:25:21 +0000 (UTC) X-FDA: 81861544842.28.7FDB5E0 Received: from out-184.mta0.migadu.com (out-184.mta0.migadu.com [91.218.175.184]) by imf01.hostedemail.com (Postfix) with ESMTP id 6FBB440005 for ; Tue, 5 Mar 2024 03:25:19 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=JCR3sWbx; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf01.hostedemail.com: domain of gang.li@linux.dev designates 91.218.175.184 as permitted sender) smtp.mailfrom=gang.li@linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1709609119; 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=cRrL6EqVu6yE6KYElhVy5I/FMc5x+oybPMPkGTsdsZs=; b=C/UMWNhrP5fIPT/fD+gdPGlnYONDLPX8eOTithxbpL1H3XnLiJDgpUPSTWDBuZpFgO+FSk PpfPR20j4zDms0TiKZyU7Rv4qyM0vgVzR5DLGO8cbW2lC/HGbg1mdJiUh7qq9HbfOmlJT0 wM+BMXHsOu35bFB96yGZinm8UogzR7U= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=JCR3sWbx; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf01.hostedemail.com: domain of gang.li@linux.dev designates 91.218.175.184 as permitted sender) smtp.mailfrom=gang.li@linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1709609119; a=rsa-sha256; cv=none; b=jaaK3xKU++fNcypwezwYB8ImzvqS+qyMjaW1eAXv7lqixEbgllGeg6HSbr1jH/Z1E+6w0m NYoq/Wp2Y2xXZv7wPJGmgnHNM7DLCJ8i2NDs59+VGVgnlXPDidKxDWW3y1b0BDFgP/2JOW IyeVO6/ewvLHUpfCc8X90iqyvOc31zU= Message-ID: <632e7fa2-1c46-4b78-a407-9e6b9c410ea4@linux.dev> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1709609117; 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=cRrL6EqVu6yE6KYElhVy5I/FMc5x+oybPMPkGTsdsZs=; b=JCR3sWbxa4Mfxla52f+nQyNHwsddGamu6M14Ar54Fsqsf4i1XkDu1JahuGuov03wdckqL7 UJaYi+Fgj1VRT0TBJGBHIkD26Gns1fR20vAOltgOWFRdp2B2p/rFJRtz/8t7bhqQpReOP5 wZQPWVIusT97e+6+tJq3xdwLNif78Ig= Date: Tue, 5 Mar 2024 11:24:44 +0800 MIME-Version: 1.0 Subject: Re: [PATCH v6 5/8] padata: downgrade padata_do_multithreaded to serial execution for non-SMP Content-Language: en-US To: Daniel Jordan Cc: Andrew Morton , David Hildenbrand , David Rientjes , Muchun Song , Tim Chen , Steffen Klassert , Jane Chu , "Paul E . McKenney" , Randy Dunlap , linux-mm@kvack.org, linux-kernel@vger.kernel.org, ligang.bdlg@bytedance.com References: <20240222140422.393911-1-gang.li@linux.dev> <20240222140422.393911-6-gang.li@linux.dev> X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Gang Li In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Migadu-Flow: FLOW_OUT X-Rspam-User: X-Stat-Signature: pmkk65x5ccicxpg1ompch3hnjycjwyds X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 6FBB440005 X-HE-Tag: 1709609119-820998 X-HE-Meta: U2FsdGVkX19KjhDhzo9e7Uvr5Ae8ZgrHQkJLYYzOmWuyK5Hmt7BbbNhN35z29fftJxH2qEGqEMoBSR7QN1LP2vd8IFK+7zNK6CU0H7yIsra6Y6t2mdRgfpvKC6hEMymgm8l49cdR7jyXQR/d3s3gpKtth55Ayscdv1RpuvzcSFDExFi6X1AyMJt0HibGOvASqBNLDq6WRxeN6R8kZtZ1y2adO1O/k00BBrG1RCgMcDpuXU1E1mVqDZk85KY25T6BNmClZdF6EqnorI8su1GQhbul+1e7+ek8s1K9Va05/lrgTrB+VGDZJDjQdXSpu8cBwC9x3Xo6gbpzRwUOz8f9GQITuQpgHfAdCnR/H8VL/pLcjnn8fsr8CP1nf0ZC0SxtkLtshvzZuAYj/cVhRGG4Lp60aVGsGuL60K8+3CaLfz/WVC+SOhGAWE6gt1tfpWSo/BafvzrGiv67/l0wmMF/wLJq+Rlk5xy1ulGmbiCukLNO7qOyhUG8B3G8bCM4UqAUHDmEnLZ/8rEN1yqqjrKVDSNEAyAERCjv9csXNBs0jUTRawKfvEPK/GZdRjAKDshVOq02MhhNzwKO9w1mYwdTAb1bQeE0jQbdqXMmIu9FXJm6HtMwM+C9B/mF/6/LGzSzkQwlYyl7Ic6LBXCKgYr/KOom6jYezljyWNkTxZgM/Ln/8xIl2j9b3Mfkzgx8pVOzS9bUAXuUvbaIui3F/DvN4kFK/G33+h6iGps+JUxUObbhYYAD7II3ndF1dnjF1gOY7SzfWYACVlyUuShapeGwlMoAdf4TMVI1CErV94BeITAfV9cha+qcUlI/KQGbmwAVWlUdJRHoN2bHVKfookY/O6Xof9SQrGDV 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 2024/2/28 05:26, Daniel Jordan wrote: > On Thu, Feb 22, 2024 at 10:04:18PM +0800, Gang Li wrote: >> hugetlb parallelization depends on PADATA, and PADATA depends on SMP. >> >> PADATA consists of two distinct functionality: One part is >> padata_do_multithreaded which disregards order and simply divides >> tasks into several groups for parallel execution. Hugetlb >> init parallelization depends on padata_do_multithreaded. >> >> The other part is composed of a set of APIs that, while handling data in >> an out-of-order parallel manner, can eventually return the data with >> ordered sequence. Currently Only `crypto/pcrypt.c` use them. >> >> All users of PADATA of non-SMP case currently only use >> padata_do_multithreaded. It is easy to implement a serial one in >> include/linux/padata.h. And it is not necessary to implement another >> functionality unless the only user of crypto/pcrypt.c does not depend on >> SMP in the future. >> >> Signed-off-by: Gang Li >> Tested-by: Paul E. McKenney >> --- >> include/linux/padata.h | 12 ++++++++---- >> 1 file changed, 8 insertions(+), 4 deletions(-) >> >> diff --git a/include/linux/padata.h b/include/linux/padata.h >> index 8f418711351bc..0146daf344306 100644 >> --- a/include/linux/padata.h >> +++ b/include/linux/padata.h >> @@ -180,10 +180,6 @@ struct padata_instance { >> >> #ifdef CONFIG_PADATA >> extern void __init padata_init(void); >> -#else >> -static inline void __init padata_init(void) {} >> -#endif >> - >> extern struct padata_instance *padata_alloc(const char *name); >> extern void padata_free(struct padata_instance *pinst); >> extern struct padata_shell *padata_alloc_shell(struct padata_instance *pinst); >> @@ -194,4 +190,12 @@ extern void padata_do_serial(struct padata_priv *padata); >> extern void __init padata_do_multithreaded(struct padata_mt_job *job); >> extern int padata_set_cpumask(struct padata_instance *pinst, int cpumask_type, >> cpumask_var_t cpumask); >> +#else >> +static inline void __init padata_init(void) {} >> +static inline void __init padata_do_multithreaded(struct padata_mt_job *job) >> +{ > > An early return here for zero-sized jobs is consistent with the > CONFIG_PADATA version and avoids hugetlb_pages_alloc_boot taking a lock > and flushing the tlb when there's no work to do. That's reasonable, thanks! Since it's single-threaded, the lock isn't contested, but tlb does need to be treated with caution. > > With that, > > Acked-by: Daniel Jordan > And thanks again. >> + job->thread_fn(job->start, job->start + job->size, job->fn_arg); >> +} >> +#endif >> + >> #endif >> -- >> 2.20.1 >>