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 E2722C48291 for ; Mon, 5 Feb 2024 07:38:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 737626B0078; Mon, 5 Feb 2024 02:38:23 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6E6E96B007D; Mon, 5 Feb 2024 02:38:23 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5AE976B007E; Mon, 5 Feb 2024 02:38:23 -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 4A0086B0078 for ; Mon, 5 Feb 2024 02:38:23 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 23DDA401D0 for ; Mon, 5 Feb 2024 07:38:23 +0000 (UTC) X-FDA: 81756947286.02.D6D1BF5 Received: from out-173.mta0.migadu.com (out-173.mta0.migadu.com [91.218.175.173]) by imf15.hostedemail.com (Postfix) with ESMTP id 3D2DEA0008 for ; Mon, 5 Feb 2024 07:38:21 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=SaVhPHd+; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf15.hostedemail.com: domain of muchun.song@linux.dev designates 91.218.175.173 as permitted sender) smtp.mailfrom=muchun.song@linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1707118701; 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=fQHXh2wfg2SeD35wizx70HuV8TPVTxbGPSiKIsEbGWw=; b=pOalD6ACPEwx5nSAH7x3C40tUF4KTRjUnPAQy0xjhsQ3tPBMeL1vz+8yBw9lP8G+ehMp7J MUckEVvG7y3RSOWBzEg+ELzbo0NKIVHQS0TGXal5aTSAF4eVeD3e8yBi5Po25jC8vftNGe 5eahCuGFHn2KvBQMgKE5edQDGprPz7w= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=SaVhPHd+; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf15.hostedemail.com: domain of muchun.song@linux.dev designates 91.218.175.173 as permitted sender) smtp.mailfrom=muchun.song@linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1707118701; a=rsa-sha256; cv=none; b=nxnQj0nB8rxL7vGv58iZ2rGUCwJNUos9s3vvUpgjDGfTxhTHWucdfSUD9qhG4klf7Pi14S Iwp5l7VuPWa7BZiFp2UcGmbmkTESzv6WiJWYIfoSxd+gyvJsbJ+OHHSY3ngnOqFZ4u/u5e antAT/GHfwXlx6UrZiYCvOZElRv2orc= Content-Type: text/plain; charset=us-ascii DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1707118699; 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=fQHXh2wfg2SeD35wizx70HuV8TPVTxbGPSiKIsEbGWw=; b=SaVhPHd+A0iYtfyl+XLII5d7yMV/0gsZJz1/JcqJJgqxF6LpvlU72ceo0g0LmRNEGMCiLV xdb+9afoW1fhGIPWD9MRGBq/UXBRHsyD0bWufCO/nLjWnNsenKyWrHs/fsaiZU7xMPNduw xyOkIRzTZ8G0Wbprolv8MRqnwHdf/4c= Mime-Version: 1.0 Subject: Re: [PATCH 1/1] hugetlb: fix CONFIG_PADATA dependency for non-SMP system X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Muchun Song In-Reply-To: <828f990c-11af-42ad-a030-a66dde97a7f2@linux.dev> Date: Mon, 5 Feb 2024 15:37:41 +0800 Cc: Gang Li , Andrew Morton , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Randy Dunlap , kernel test robot Content-Transfer-Encoding: quoted-printable Message-Id: <7472563F-5C2D-4DCB-ACD6-F86D7A18BDF2@linux.dev> References: <20240204072525.1986626-1-gang.li@linux.dev> <828f990c-11af-42ad-a030-a66dde97a7f2@linux.dev> To: Gang Li X-Migadu-Flow: FLOW_OUT X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 3D2DEA0008 X-Stat-Signature: fj31gapgrhduytncqawfjn9duu55sye3 X-HE-Tag: 1707118701-681691 X-HE-Meta: U2FsdGVkX1+sj/vqjus+pBOiK57BP9nxFUV2BhAmB2tTZk+on+ovi1ZmcyNIeQ82vjKiI/izOJd8Hr+UGL/eHUu7ubZJ68luxGcdXp1rT/LF6ia0QOQ5T63tUv9YelJVcB7tdhfZFTaw5GDQ14b/GLN/szXQTnuXPOtRjACmiCvhnSFkFRTZLaDTjrV2WC2ZeXFLQ628YuiIeStz+FdSDI+blfPqGiygXfiA5gr4fIPSMiMMc7Ytd/P8wFhg2cmwpgSbjmjSyQ677nqrYWNIrniwtSX3TPzkzhh7BW+8TkuJJzBGfTNDj6bg2o1kgxvE+d8/PqSt2E5T4lhO20XbIdjuMh2TmU1pFnJrZCHwha+BnOJ3nyx/2H4cSu7TWe4YJfYLpipdHu0w+rPv9m7yW4MqQZR/C4fTRYp6eTf9ONYmIsE7bYK9Ah1ZaWinOJ9SABiwbiMHyJ0itffU9ExsaP5N+C5JRE1fTH/J2s2VoFS6Tcu7yKLSLYUc+BLEBTreE/Mb2ca/SWsz7s9mDtwN7yqIXlGJ6q4/1W/RUedYodWD0C3YVEjST9obQZSJRjTB7XjooMjhgJ0LgarfA9XtqmnSAoFPx/bEyLFjMfjte2HoGUzxgtdwZaRh2DqAYzxRHmKZV3K+8bUY5L7YbDV6e3tYzJUqCfT/zvcBqtr5/twIWTgyuJ/ICqjygaNkJixPRJ2Z7Qs5ODKrNRLzYyPXhKnGvdEGXTkCDzXtg7E2flswKXaFGS/6DbQg3v+pEQxwScP1b+nTz/UlMhpiun1X1xzW6Ws9zW9Zzc6NT4KjTnUhI0SbtzDM/uCieVPsYdP16NEEVWf7KD3lxF6uxdnkZUt16p5Xl0Js08NbelpQbA8dK7IVZeMY5oys/k0WgvdgeTbRsZ73wOaPMIXnAdiEHetMNDnbPhmyQ7hJLv9AvCCmbabOAHn7JpQoAfTNGFWUH4ri7DGieUlBlg1vIIY 5pgcxJYa IG6AIt14L85dS+B/1WoI0g7UyLS4vIEWQ5p+456VPE563zQCYRLi8zrWQxXV2/sbd6HjwBxcgoTBJ/CmpW34N36j66Ry3r/aGKhzHPJWJgJh2hhFKuZj9/XBrJQEAXsr/hUDQo8cwy+7vLwPe2qC6krF4aBK6G9UWSA1+ 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 5, 2024, at 14:55, Gang Li wrote: >=20 >=20 > On 2024/2/4 15:48, Gang Li wrote: >> On 2024/2/4 15:44, Muchun Song wrote: >>> I don't think it is a clear way to fix this. If someone want to >>> use PADATA in a non-SMP system, he should be carefully to handle >>> the non-SMP case himself. I think the better way is to make PADATA >>> handle the non-SMP case, I think it should be easy for it, which >>> could just call ->thread_fn() many times instead of creating many >>> threads in the non-SMP case. >>>=20 >>> Thanks. >>>=20 >> Sounds good, I'll take a look at padata and send a new patch. >=20 > 1. delete the dependency on SMP >=20 > PADATA only depends on workqueue and completion. It works well with = !SMP > currently but has no performance benefits. What we can do is make = PADATA > handle the non-SMP case more elegantly. >=20 > PADATA has two parts: "Running Multithreaded Jobs" and "Running > Serialized Jobs". >=20 > "Running Multithreaded Jobs", which hugetlb parallelization relies on > can be easily deparallelize through this patch: >=20 > ``` > @@ -495,7 +495,7 @@ void __init padata_do_multithreaded(struct = padata_mt_job *job) > nworks =3D max(job->size / max(job->min_chunk, job->align), = 1ul); > nworks =3D min(nworks, job->max_threads); >=20 > - if (nworks =3D=3D 1) { > + if (nworks =3D=3D 1 || !IS_ENABLED(CONFIG_SMP)) { > /* Single thread, no coordination needed, cut to the = chase. */ > job->thread_fn(job->start, job->start + job->size, = job->fn_arg); > return; > ``` >=20 > However, "Running Serialized Jobs" is more challenging due to its > various workers queuing each other, making it more complex than = "Running > Multithreaded Jobs." I am currently in the process of deciphering the > code. Actually, I did not get it. Why the above code cannot work? The above code already make it serialized in one call, right? What do I miss here? Thanks. >=20 > To eliminate kconfig warnings, other methods could be considered: >=20 > 2. Split hugetlb parallelization into a separate kconfig. > 3. Wrap hugetlb parallelization with SMP or PADATA macros (already = ruled out). > 4. Split PADATA into PADATA_SERIALIZED and PADATA_MULTITHREADED (too = heavy). >=20 > Anyway, this is only FYI. I will continue exploring how to = deparallelize > "Running Serialized Jobs."