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 7FE69C19F32 for ; Wed, 5 Mar 2025 19:29:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 87A5F280005; Wed, 5 Mar 2025 14:29:11 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 82A74280004; Wed, 5 Mar 2025 14:29:11 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6F183280005; Wed, 5 Mar 2025 14:29:11 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 550EB280004 for ; Wed, 5 Mar 2025 14:29:11 -0500 (EST) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 50714C0363 for ; Wed, 5 Mar 2025 10:02:51 +0000 (UTC) X-FDA: 83187058542.01.D17CB9D Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf02.hostedemail.com (Postfix) with ESMTP id 5894D80017 for ; Wed, 5 Mar 2025 10:02:49 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=S23yeaKi; spf=pass (imf02.hostedemail.com: domain of bhe@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=bhe@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741168969; 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=fW7+rAgDKlzOI88XIbHmS2aOHp/CrzdKRrtFKo42XLM=; b=flLnN3PoNMMn38pnkutzPhvWOTmoZM+dg2/AdRFvwkFyIH7bs6wtH/HM4SIJ/yL4uiPQTP EOjiDrSm1XWHhb7uhxImMRvt2fS9feHg/sACZbvDy7qeG2qZWH97NruIx67AurzYxFu2Ni a89R3KoIzrB7sSTiEoJfs+8CCEfGoVU= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=S23yeaKi; spf=pass (imf02.hostedemail.com: domain of bhe@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=bhe@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741168969; a=rsa-sha256; cv=none; b=R0J8XcWbi4RekDItXPEUR/lI/7y1e8R+T63n15lSFL1Wir8MmkCNwgtlS+I61TusSqBkYh MWqCjHxPmLSMcKBnoeqySTx9qCAdfBMhn7Yidrf+7Q0TVXIc4VrBr2hQ1+jBH+4Hth0YGO hv4jd6Me9jKZtBRA0YH95xgqMmlgu0M= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1741168968; 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=fW7+rAgDKlzOI88XIbHmS2aOHp/CrzdKRrtFKo42XLM=; b=S23yeaKiYVsvzbSSob2vSnO3IRPLiilU+sTA2SSQ4UnxBWhr1iNeekA7Dt08sY+6FKtQa/ 9g1TVKTNi8MAACIyyvhE7ItnnZP1NUXWcOWrjGTYKLmyBTy7hqas6scT23PMUPeb+sZPck LpwVFez+BuudqpFEKWLFWut2rSCj49A= Received: from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-185-um8LX2hKPjinaZv39n2qug-1; Wed, 05 Mar 2025 05:02:30 -0500 X-MC-Unique: um8LX2hKPjinaZv39n2qug-1 X-Mimecast-MFC-AGG-ID: um8LX2hKPjinaZv39n2qug_1741168948 Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 3C08B1954B36; Wed, 5 Mar 2025 10:02:28 +0000 (UTC) Received: from localhost (unknown [10.72.112.32]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 47A2A193EFD8; Wed, 5 Mar 2025 10:02:25 +0000 (UTC) Date: Wed, 5 Mar 2025 18:02:19 +0800 From: Baoquan He To: liuye Cc: Uladzislau Rezki , akpm@linux-foundation.org, hch@infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/4] mm/vmalloc: Remove unnecessary size ALIGN in __vmalloc_node_range_noprof Message-ID: References: <20250303094410.437985-1-liuye@kylinos.cn> <20250303094410.437985-2-liuye@kylinos.cn> <6701d375-8d7c-4e13-b0db-486a48088446@kylinos.cn> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <6701d375-8d7c-4e13-b0db-486a48088446@kylinos.cn> X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 X-Stat-Signature: nrjy7czsxdbyc5wifjys848mthkordra X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 5894D80017 X-Rspam-User: X-HE-Tag: 1741168969-431001 X-HE-Meta: U2FsdGVkX1/vVb/55U60co0Bx6Z14RBOYcK8SWUeQjLcj0DawqM5wpMu1XrIKcIUCSJ/xIBPd/ro3uQOnlDktMMaBYjRg0wWusa9eFyO7eDJuLeJhRTWGeM6H86zB95Il0bYKgaq98kh0KIgk5EeR3NuWF9OAhulD352HVGiHFnOp9kLPJ2bHy7QL0rEVzW170UA5vo1m256yqxiteiNRWsHGjhnKjUqN7yYz3dZk5qBSi/jidjMiYm2+xFpo+AIVH5C7nlKM0GFa/xqUVmmLtrAJCw+1v085MmAFy9YGP9NvU4zMIvwGNGcW7v79gV7NaNMen0+YItgh3AXESz8zPvg+97cxtA2CscayzcJxEdDy33ucs7xfd1MUD2nLQb0QphRhtJze01Vx9dHf6YbiFL4z4UJ+JJWWVDWKZW2it8AYUa8IW2b+ANxqzl4lQ8V4RUTUL98SexSAnXFc5uYxAObxMeI5/fyEqfpmBNjmifqXACxsUbVsElCGk20NZhcosVBtM2RhZqFX0skB+Kb5Syx5FiR1lh/X6LR5OiU+s8tw/11T4CQhJHBdZuwV/7waOiRNzffI+G06FwCuM/EnI0LAY4XcYnf6BvpihpwRjX1fad2K8wDhWtg+A2RDXZaDrx1Hrfabo6T/PzPV9DHMPJhd4VBtu28/3re9PaWhfOpjv6RP6AoBBQ3AyR2FQbNDLhuJzaJkwa4rGN1WOttkaEpRMBo/hfMDv3vuEaaMHBMKXO4rdruqMQWSu97vFgLP8MwpGtCJ+J2vl0Zy7l5cCk9mDC0B71Sj7+xXfDWzRSrUE1wym6oOyhzickL6jYu+ax/LnQzkrTrhxdiSxjRyPiB/rXKofAdjMgUgbrFxn6Am/AMM/kENOE+ddBXDzYGXY9CDloK2Hg5m/wmrWJ8gvOjHQ0MAjXPxOI2CqOo2tM1qzb7YAg/GsUzkpcAONfiJgxFjtn/hBdCgUX9dzH BUcjfkiA IBT8KTumWynvGGEie5vkwUhLBUd8TNL0rBNfzDg4Ix1gVgLOvWQSUpUTF56JfF827pmRKZJxVqUViJjKARl9KahSKVdVkKBXmLCWDDDwCHX8AOIExcvPJewq3JZcM/eUcb+c6IBtHyosW4vPyGfQjVV574RH67It01lh6xb9zKof+awpel44d1/AmIw7K8WoivFyamQYwqqZSLFigQhU2O+bCXKHpp+8l+VthhsBSy3kI8gPqSYJ8dAFCON2jl5vBlAJd4CA5D5lAy6bytXFrr2EFnCwfSs9wDGp9ejaeSki1cHjbnz3ZiiDBOw9CYEkXxA6dgrZjdDVUfLHwY0zEzbTq1KvB3MVPNCFLz1+2Il7NB0OJgYa88bhPym3ywyr25PIKqhaWshYsn3DtbRPBix+maY1FVYIcPo4Ya7EPZm4WdPLNN63lNo22q02TKpklXClmxFk3endojJMVdy4U1v7X1g== 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 03/05/25 at 09:46am, liuye wrote: > > 在 2025/3/4 02:30, Uladzislau Rezki 写道: > > On Mon, Mar 03, 2025 at 05:44:07PM +0800, Liu Ye wrote: > >> The same operation already exists in the function __get_vm_area_node, > >> so delete the duplicate operation to simplify the code. > >> > >> Signed-off-by: Liu Ye > >> --- > >> mm/vmalloc.c | 1 - > >> 1 file changed, 1 deletion(-) > >> > >> diff --git a/mm/vmalloc.c b/mm/vmalloc.c > >> index dc658d4af181..20d9b9de84b1 100644 > >> --- a/mm/vmalloc.c > >> +++ b/mm/vmalloc.c > >> @@ -3798,7 +3798,6 @@ void *__vmalloc_node_range_noprof(unsigned long size, unsigned long align, > >> shift = arch_vmap_pte_supported_shift(size); > >> > >> align = max(real_align, 1UL << shift); > >> - size = ALIGN(real_size, 1UL << shift); > >> } > >> > >> again: > >> -- > >> 2.25.1 > >> > > There is a mess with: > > > > unsigned long real_size = size; > > unsigned long real_align = align; > > > > "real_size" and "real_align". Those are useless. What is about: > > Sorry, the order of the patches may be misleading. > > The correct order is as follows: > > PATCH1.  mm/vmalloc: Size should be used instead of real_size " > PATCH2.  mm/vmalloc: Remove unnecessary size ALIGN in __vmalloc_node_range_noprof                  > PATCH3.  mm/vmalloc: Remove the real_size variable to simplify the code " > PATCH4.  mm/vmalloc: Rename the variable real_align to original_align to prevent misunderstanding > > If PATCH1 is the correct fix, then consider PATCH2, PATCH3, and PATCH4. Well, seems the patch split is done too subtly. It's only about the size/align inside one function, maybe one patch is enough in this case. My personal opinion. > > > diff --git a/mm/vmalloc.c b/mm/vmalloc.c > > index 5c88d0e90c20..a381ffee1595 100644 > > --- a/mm/vmalloc.c > > +++ b/mm/vmalloc.c > > @@ -3771,8 +3771,6 @@ void *__vmalloc_node_range_noprof(unsigned long size, unsigned long align, > > struct vm_struct *area; > > void *ret; > > kasan_vmalloc_flags_t kasan_flags = KASAN_VMALLOC_NONE; > > - unsigned long real_size = size; > > - unsigned long real_align = align; > > unsigned int shift = PAGE_SHIFT; > > > > if (WARN_ON_ONCE(!size)) > > @@ -3781,7 +3779,7 @@ void *__vmalloc_node_range_noprof(unsigned long size, unsigned long align, > > if ((size >> PAGE_SHIFT) > totalram_pages()) { > > warn_alloc(gfp_mask, NULL, > > "vmalloc error: size %lu, exceeds total pages", > > - real_size); > > + size); > > return NULL; > > } > > > > @@ -3798,19 +3796,18 @@ void *__vmalloc_node_range_noprof(unsigned long size, unsigned long align, > > else > > shift = arch_vmap_pte_supported_shift(size); > > > > - align = max(real_align, 1UL << shift); > > - size = ALIGN(real_size, 1UL << shift); > > + align = max(align, 1UL << shift); > > } > > > > again: > > - area = __get_vm_area_node(real_size, align, shift, VM_ALLOC | > > + area = __get_vm_area_node(size, align, shift, VM_ALLOC | > > VM_UNINITIALIZED | vm_flags, start, end, node, > > gfp_mask, caller); > > if (!area) { > > bool nofail = gfp_mask & __GFP_NOFAIL; > > warn_alloc(gfp_mask, NULL, > > "vmalloc error: size %lu, vm_struct allocation failed%s", > > - real_size, (nofail) ? ". Retrying." : ""); > > + size, (nofail) ? ". Retrying." : ""); > > if (nofail) { > > schedule_timeout_uninterruptible(1); > > goto again; > > @@ -3860,7 +3857,7 @@ void *__vmalloc_node_range_noprof(unsigned long size, unsigned long align, > > (gfp_mask & __GFP_SKIP_ZERO)) > > kasan_flags |= KASAN_VMALLOC_INIT; > > /* KASAN_VMALLOC_PROT_NORMAL already set if required. */ > > - area->addr = kasan_unpoison_vmalloc(area->addr, real_size, kasan_flags); > > + area->addr = kasan_unpoison_vmalloc(area->addr, size, kasan_flags); > > > > /* > > * In this function, newly allocated vm_struct has VM_UNINITIALIZED > > @@ -3878,8 +3875,6 @@ void *__vmalloc_node_range_noprof(unsigned long size, unsigned long align, > > fail: > > if (shift > PAGE_SHIFT) { > > shift = PAGE_SHIFT; > > - align = real_align; > > - size = real_size; > > goto again; > > } > > > > ? > > > > -- > > Uladzislau Rezki >