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 A28C4C48260 for ; Tue, 13 Feb 2024 14:52:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E932C6B0089; Tue, 13 Feb 2024 09:52:22 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E436E6B0098; Tue, 13 Feb 2024 09:52:22 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D0A7A6B0099; Tue, 13 Feb 2024 09:52:22 -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 BE1666B0089 for ; Tue, 13 Feb 2024 09:52:22 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 48F29140BFE for ; Tue, 13 Feb 2024 14:52:22 +0000 (UTC) X-FDA: 81787071324.07.2B29632 Received: from out-186.mta1.migadu.com (out-186.mta1.migadu.com [95.215.58.186]) by imf11.hostedemail.com (Postfix) with ESMTP id 523ED40017 for ; Tue, 13 Feb 2024 14:52:20 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=HDPjwyQq; spf=pass (imf11.hostedemail.com: domain of muchun.song@linux.dev designates 95.215.58.186 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=1707835940; 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=7kiEddb6ZgbgAcQqtUc29c6kM6P5RdAUD0eQtc6YWJ4=; b=BI3XPlnghouqUWsNq0C5lZz2bs/l35CnMG/2FB/zagijA5dS+dPzD8WdWyt84PksHr57Ws qfNcM8FPnc6la5uCt/HHHfHoYDk5chCGFxs+1ogjvskqU+OXbW4TAFJ3DmwHnKBQPdgQFH L5gPvnXljs5byUE7EAZRErDXQVrhRmA= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=HDPjwyQq; spf=pass (imf11.hostedemail.com: domain of muchun.song@linux.dev designates 95.215.58.186 as permitted sender) smtp.mailfrom=muchun.song@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1707835940; a=rsa-sha256; cv=none; b=Iy6fQCy8wpEwhZUrdcPaZyJST+zQyohSA8MyXFAMzNsR8iJ9zOZEDykCWLr2h9ZMd9F26n jymDNaU2IwXKV1qnXUyuowE68Q5c9Ikob4Z1AwTxwazIVhitGFmwDGGL0VSpC0F0c1Fc4r Z64M4lcXM0cNLQJh7goSerRCh2mjULk= Message-ID: <89b3bee3-5ee3-4b75-99e3-881b759e79de@linux.dev> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1707835938; 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=7kiEddb6ZgbgAcQqtUc29c6kM6P5RdAUD0eQtc6YWJ4=; b=HDPjwyQqT5PKJchEPXB/BV8P4RY1AAtmjjCldRRg1f38Fa/Z2tJE0lRhLTsJhJaYTHeVxK zFArtqla2pFR+9kJKEqOM9UsIxtOdKxak7k1dmXdR0HuV7NGK9rcDeyrZw5Vi5JtGs0jTj s7DVNIufZ5xLN+8zHG3w2+FIQdH4txk= Date: Tue, 13 Feb 2024 22:52:11 +0800 MIME-Version: 1.0 Subject: Re: [PATCH v1 1/2] padata: downgrade padata_do_multithreaded to serial execution for non-SMP To: Gang Li , Andrew Morton , Steffen Klassert , Daniel Jordan , Jane Chu , "Paul E . McKenney" , Randy Dunlap , kernel test robot , Gang Li Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org References: <20240213111347.3189206-1-gang.li@linux.dev> <20240213111347.3189206-2-gang.li@linux.dev> X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Muchun Song In-Reply-To: <20240213111347.3189206-2-gang.li@linux.dev> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Migadu-Flow: FLOW_OUT X-Rspamd-Queue-Id: 523ED40017 X-Rspam-User: X-Stat-Signature: 1b946k7mgpnnnx9d4o4ucnbkbkqupuhn X-Rspamd-Server: rspam01 X-HE-Tag: 1707835940-102209 X-HE-Meta: U2FsdGVkX18iOgFSJkZHuBNP6mAqYy9JB8kqzQMtYBvZG2e0onMiSUPt+Y7z3T06ZV1eHQfaoT3iOlxLgfRtK8cnhgCrzgQXXD/lpvj8JK4FrQUgEVUx8MaitIXXHlQkSQiVPl6e/e7EPLJna+9pQTtex1bbDu8UgvdAVVuFZ9hoy6jRwU5qOv1oa+jqxoIi8UZNnaGTQekEI+UxRaMGVCb4YMVMekhL/CKl5gAhoxCONHJncLfhc33THZLPzkOSZ4SOoQsDBwgijTmtgaQ/iBwoKJKlLmrGfQUyTN77V+9uOa9RuYfI2u+THueznSwRvJXboio+o7ZFLQLYvXxA7nYp8emfNW3pKEvAiK/cNY55Ar4CD1Uzik1EOw4Kp1WGahBHXOERYwyOP67hRkNwj9NteIPAyRwxtErCvTnxrXYtQQgKYgU7gE7/a2lMr+07gvsGvuohGu0gSMcuo8vJc3V44spYHyENwWmxcTwoM3VINDEM+ycQhja4yKBdnhgNqcQlFZsPulF1jNOM3vjF2kDNuxDPESWJg2uuP70hlgrV6/aEf0z7w3BlU73zVsizv/ZSWAXHd1fl9uIotRzgpXvZd1x4KYOjHi417AUsWbCS/i2TNTSDWt2wmBtAw6qGvfeonjEcLNKgTxxdiFy6dtNaZMLwX+DZWQHoEfrtaY+6YG61cONynAu/ehwAjeRWvg5PM8F0ad0s6PO3SaVSSF17ngfr0u0hAj0OlRoJy7fXJVM8idf5MYZ0BBM6xFcxywZY+lsnH3xttvBeAcFlj3pWVCayrqhpVPfMxXqdYgaZYkdWwFDt9gUq/mqlKvh7T9X/dub23JFWt0PTLN+u7Fqf31BCMgSSs1P4RqDtPHD6dIJQgRZx16BRuF4hMEQFjWrXXKh3UAVG2lCm1qtPEqPfoksusl8v/Obljl7e5ytgQdnPGEQfAlLTjx1q0PShGdcJvi3VNPM1IGt63PN FsO+7OLa pUHfYO4r5yUj6yXgtxzv4YKqaRNOpAOj0/GsL2hNdAaVSn6X+Cj0fB+UiR2vGt/axhNG5j3dQAUrCJo7bD/KUILqhRhE9fsBydC6AVl5TAsAs0B6SOmzKPmONL2htBAF38Q0D8Yf5Xpw3aJibt2Id7NOC8tpPBQTztNuXPw+Xlfs5PXQ35QGSFFleoyOk1gdg/QKa/e+aJhjyVzYPsGVVJkgvUG1BQoqocBJ7O6gx8uc26CTYKmzwPtLRfemoeudk6XinQPeDcD8l65C7RBqKSoRqWgFLMKA8GtrvQaIGMIXrFpzR3xS+NW9GhcFJLCVBywBaOq06qYgSY7VcY3LnXpKW5w== 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/13 19:13, Gang Li wrote: > Randy Dunlap and kernel test robot reported a warning: > > ``` > WARNING: unmet direct dependencies detected for PADATA > Depends on [n]: SMP [=n] > Selected by [y]: > - HUGETLBFS [=y] && (X86 [=y] || SPARC64 || ARCH_SUPPORTS_HUGETLBFS [=n] || BROKEN [=n]) && (SYSFS [=y] || SYSCTL [=n]) > ``` > > 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. > > Fixes: a2cefb08be66 ("hugetlb: have CONFIG_HUGETLBFS select CONFIG_PADATA") > Reported-by: Randy Dunlap > Closes: https://lore.kernel.org/lkml/ec5dc528-2c3c-4444-9e88-d2c48395b433@infradead.org/ > Reported-by: kernel test robot > Closes: https://lore.kernel.org/oe-kbuild-all/202402020454.6EPkP1hi-lkp@intel.com/ > Signed-off-by: Gang Li > --- > fs/Kconfig | 2 +- > include/linux/padata.h | 13 +++++++++---- > 2 files changed, 10 insertions(+), 5 deletions(-) > > diff --git a/fs/Kconfig b/fs/Kconfig > index 4a51331f172e5..7963939592d70 100644 > --- a/fs/Kconfig > +++ b/fs/Kconfig > @@ -261,7 +261,7 @@ menuconfig HUGETLBFS > depends on X86 || SPARC64 || ARCH_SUPPORTS_HUGETLBFS || BROKEN > depends on (SYSFS || SYSCTL) > select MEMFD_CREATE > - select PADATA > + select PADATA if SMP I'd like to drop this dependence since HugeTLB does not depend on PADATA anymore. If some users take care about the kernel image size, it also can disable PADATA individually. > help > hugetlbfs is a filesystem backing for HugeTLB pages, based on > ramfs. For architectures that support it, say Y here and read > diff --git a/include/linux/padata.h b/include/linux/padata.h > index 8f418711351bc..7b84eb7d73e7f 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,13 @@ 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) > +{ > + if (job->size) I think we could drop this check, at least now there is no users will pass a zero of ->size to this function, and even if someone does in the future, I think it is really a corner case, it is unnecessary to optimize it and ->thread_fn is supporsed to handle case of zero size if it dose pass a zero size. Thanks. > + job->thread_fn(job->start, job->start + job->size, job->fn_arg); > +} > +#endif > + > #endif