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 006DBE6748F for ; Thu, 31 Oct 2024 23:18:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 871106B00A3; Thu, 31 Oct 2024 19:18:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 820A16B00A4; Thu, 31 Oct 2024 19:18:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6C5706B00A5; Thu, 31 Oct 2024 19:18:20 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 471476B00A3 for ; Thu, 31 Oct 2024 19:18:20 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id BE498A8DC4 for ; Thu, 31 Oct 2024 23:18:19 +0000 (UTC) X-FDA: 82735461732.07.CDB5971 Received: from mail-ej1-f50.google.com (mail-ej1-f50.google.com [209.85.218.50]) by imf13.hostedemail.com (Postfix) with ESMTP id 4D98E2000F for ; Thu, 31 Oct 2024 23:17:49 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=VUyX9cdF; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf13.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.50 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1730416641; a=rsa-sha256; cv=none; b=E7fI6xZBx2cz+urQ63HuXxnQajlHyG3CQ99WSsIY9kmizu//dHb+EGpbPh1f7X5zmFbpqS hxyoo+C8yP+3D4YwLML59qmmIa8HQJpweCChtsF6FNgL7rcdAUHFeyHC9dK27IAy0XULWk JsAbVCesothNNUKInxF1oGFaZ6FfVn8= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=VUyX9cdF; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf13.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.50 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1730416641; h=from:from:sender:reply-to: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=jMzXCuLRsSn0Wb6BJfBCmAvab9Yqqj/1fMCR0enJw8E=; b=r3pP/MrctncGDFYJfcGfR+PE6OEKU6AVGhboX6vu585wYe8qrSlklzE3hiK3aST99Nam8n NeduB1AkZLBQ88IJ6oyQ4RQCQQTlGf3w7HLreSZuuEMEcbsjwvsZJVdwqAyuL5HrnBiXpk R8mmaU9fLhf5oSIlz7jgXC/BN6FfysY= Received: by mail-ej1-f50.google.com with SMTP id a640c23a62f3a-a99cc265e0aso223780466b.3 for ; Thu, 31 Oct 2024 16:18:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1730416696; x=1731021496; darn=kvack.org; h=user-agent:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:reply-to:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=jMzXCuLRsSn0Wb6BJfBCmAvab9Yqqj/1fMCR0enJw8E=; b=VUyX9cdFSwy/11wKJxSkibZ0JaLJFCXa9XL3HGGGFpAYZGsNsRZVAEWIzqSCqkDgrD 4sKYXmtvLwwhSbryaM13X9pwRuBeBsAtcc2XueQ6m9u1TRfholJS7fIf4fkbB93HC87h XJvZjVttj2HQseybP0izBThxJirrv8Pr8H4SCEgb/ocZbIffuliw2XNVty64uCCKukVi 3yKshTgnfFZbSHjU8uN0/JQUeOE3U0OG3V4/cVQYFi4EZzttlYtaECvFxi0uFUaSibpO wPFyXpY36tSIRwcDTfMZo05ABkNWTHqHv/X3g0ddKWa3n7onQ4hzlKaIIqHywC3vqClE fb9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1730416696; x=1731021496; h=user-agent:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:reply-to:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=jMzXCuLRsSn0Wb6BJfBCmAvab9Yqqj/1fMCR0enJw8E=; b=PONfwh86OcGWCoGAdqUFg8i3kL2mXOk+lZ3qgk4QV7Neg1+rvKbNWnZadgVnPa5Zxo Hu9JIuqHFXls1y1NtdkMYM686nTyQRLjpC7LsGzUUfM0DcTpCAEMH1BzfUdIlniXQyZw R4357JMFVT0QDMMque+bqogtmp8XZcTUy6QZZ0nVHqQwRdD0OSboVeoL/QgTP+RVtjk4 GL7nwAWxpAw3iSWn0UxXJ9yfl2Y8oUoyE6KjGeUpG5eyeOll04j4taldEPcPKi5anpxu pAQlEPG+z4rGR+3hUab3/Qpx4jEl3vZiLg9WS/bK/gedmjx2/pv423WFX4i5oL2DjWbD pp5w== X-Forwarded-Encrypted: i=1; AJvYcCV5g+yGZI5k7lh2kmjRou6vFP7shxQRwrRX9AgOlGLiVSEgSgV7/HsX0sp2Dnj0JJsNt445ViFtng==@kvack.org X-Gm-Message-State: AOJu0YyoadqSofemWuOhGxtsnTxWaPlj0HJ8VgIjtRV/7FMUjIgLpDTG yHXaHySG4/rEkvNRPS5fk+GaKa+g6uzT44xERD1lVckasU+XZhc8 X-Google-Smtp-Source: AGHT+IENbqhdS838jZ3geEuc7x1npwi+AAO9i0bOQRab1PoEVWEyqCBKcDwT2gmlM8518ne1ZVTV9g== X-Received: by 2002:a17:906:6a19:b0:a99:eb94:3e37 with SMTP id a640c23a62f3a-a9de632ffbamr1731425166b.58.1730416695982; Thu, 31 Oct 2024 16:18:15 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a9e564c55f4sm115351766b.78.2024.10.31.16.18.12 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 31 Oct 2024 16:18:14 -0700 (PDT) Date: Thu, 31 Oct 2024 23:18:12 +0000 From: Wei Yang To: Sid Kumar Cc: Wei Yang , linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, linux-mm@kvack.org, akpm@linux-foundation.org, liam.howlett@oracle.com, willy@infradead.org, surenb@google.com Subject: Re: [PATCH v4 16/17] maple_tree: remove unneeded mas_wr_walk() in mas_store_prealloc() Message-ID: <20241031231812.cnvt4jtw4axykiwh@master> Reply-To: Wei Yang References: <20240814161944.55347-1-sidhartha.kumar@oracle.com> <20240814161944.55347-17-sidhartha.kumar@oracle.com> <20241024012038.zf3dpqsflnyi4wce@master> <20241025235850.5o6l3k2u2so6hxrs@master> <2eb5fa18-bcf4-40d8-bf0e-8cc92b30de04@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <2eb5fa18-bcf4-40d8-bf0e-8cc92b30de04@oracle.com> User-Agent: NeoMutt/20170113 (1.7.2) X-Rspam-User: X-Rspamd-Queue-Id: 4D98E2000F X-Rspamd-Server: rspam11 X-Stat-Signature: d5fna6ny4adkue7cs9jpdw7941ede3tf X-HE-Tag: 1730416669-804650 X-HE-Meta: U2FsdGVkX1+nnbKSxIf+YR45uNGVrVZd5eUCE+gnPOG0/7tUQV3xH8tuu0ulgi+oqee0QMKTQO4/f3YdyfvEmBJpuXORpviQY+sOMQZGrPDPWpU46X0gTDwlzw4LkZkVCIJvs3u8ejVerfaU5Bc7Od7mlMmpkAUhEppp+N6okmPMJN/3CSALJBN5H/vQucqnknfrPxfz7RO02sgnPxQixyz5UgrXtMCEaCAwDbCjB/Rr2MPFl1pfJBA0XbzKgUIPYLoGJpvum42Dtrz2eWbZb98ao/dNvd641L1i/eNVlKg6ZfUkJEo59/xQ4KBYwV+0eXEHs0+hWlN5RW8Si6m/5bFBZSd/DhdxVzxnS0n7hJDN5UHlCgiUOd+ZdeM0Zv1ovNADo6zVqblK5kII4jDOwiRqXJHjt87K2Auq+ELi7Extie5X4l2U2oL3WljjNswSwodyEG2l/jbdNhecaKfHmH5Eq+T8b4XbX4qXq0YDLEGt+9vU81PkpzxcU4YlKGaiJsbXmSGVfGRHDLbg8kJ5gFIKH8/2pXk/jKbULWNUeF5cqaYHVnyzO9Zc9BNsPx1eUOUf8bVI5ZsSbr4VMp5cYuNoMJqBXqKNLJTD4epVonm25koKSz316orn8IdoDBU3Z/Ps5tTArQyuCacJ+iIyWoaKBf1NUjW223CAyfTrYDa3LpZNTrE+fFtFy1dph5mUTkwV3x4S/ln/oLUaDJ3aLwZAapQ6iDfPjec+EL+r0llqot7Bb1aufNHc0M5Uj48QXxzKBMMaDIvRLKtFP1JoilEJvygAWmLL7SJ6DNozB3BSk7KT+Gg1XaDGeOTfehS0pfyX/o/NZrHvUOqVDhpp1NCAsmDzL+e9eiRAfs7y+lMTua+qRtcbGKlEx/5FJxbTQkYm6VbQWZcSVnxw1AqCDEfCJlgUa2DNMLGKdVSLzZSojnTyBM3iI1Z7F/CVPftBqCsc8py1+ss8kPrNYHL VRVm6NLx pI8koFNeqjq+FKp74G03j8jaJzPbX/Gyvp+JH5qE6CGibHhDDvV6ddRBISrsi+ENUJHf9kyZY9qHMxGxHDoZGt1aA2YG1WzhfpqN7ZXkA4BMpY23qfcWSc74suN9C5xBiO7BzCHeJXQpmIDR2htgq+Ba/m5obmcpULQxBir+4rfo8u73FSwPeO9/ZoH+Zn2sSTrB+DeOyCetwZmryhcQaQwDQv1eHIwp/xiMyvnNjBZGZnjvVMD7w9inqL8xwH4LXht4CPfVhRzNB4hfYT+SgjhTueB0aoVydgUslpUUawA4tGTPsDTwh2J180WQ4REIcnA/DI3Cpc6JlZOvp5nq47GB/qqkRZ8X8H/Y2R4PG+9P4N3hAWEw+TIqpZ9CzAMi3LhHCiJ4UFnjUDYy2EbDDrE7vHyANhEnCKT4ifF+reYNZHWomA9XrfDBmd7Ep9oG2o+wFGskCodnyYhuctuyKkvt66w+boiDb351B0ELwc4shTjG7YcJT8LRXCcNRrRBSFZ6DaGoB/AAq66WV3xnY8edZ5M1w33iSnUyJS80qGpn4K3z+65VZ6K7jMkeMpmr82+aP+xXUWXWlLY9irFwTuraZHjnRah1IiSKyXsiXyoyQgZRmGvQwLfbtDCWpEk6TG1dHQGfsUcCst9DKrvde8aLKA9d1RCUsRFqLOzjy02TZ4YjQEZ1HSxZZzvv1+3134dzoLRPfdEuIpEdKphKyDW8dNQ== 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 Tue, Oct 29, 2024 at 11:46:58AM -0400, Sid Kumar wrote: > >On 10/25/24 7:58 PM, Wei Yang wrote: >> On Fri, Oct 25, 2024 at 03:54:04PM -0400, Sid Kumar wrote: >> > On 10/23/24 9:20 PM, Wei Yang wrote: >> > > On Wed, Aug 14, 2024 at 12:19:43PM -0400, Sidhartha Kumar wrote: >> > > > Users of mas_store_prealloc() enter this function with nodes already >> > > > preallocated. This means the store type must be already set. We can then >> > > > remove the call to mas_wr_store_type() and initialize the write state to >> > > > continue the partial walk that was done when determining the store type. >> > > > >> > > May I ask what is the partial walk here means? >> > > >> > > It is the mas_wr_walk() in mas_wr_store_type() which is stopped because of it >> > > is spanning write? >> > Yes, this is what I meant by the partial walk that's already been started. >> > It's the walk done by mas_wr_store_type(). >> > >> > > I may lost some background, so the assumption here is mas_wr_store_type() has >> > > already been invoked and the store type has been decided, right? >> > Ya users of mas_store_prealloc() should have already called mas_preallocate() >> > which does: >> > >> >     mas->store_type = mas_wr_store_type(&wr_mas); >> >     request = mas_prealloc_calc(&wr_mas, entry); >> > >> > to set the store type and allocate the nodes. >> > >> > >> > > > Reviewed-by: Liam R. Howlett >> > > > Signed-off-by: Sidhartha Kumar >> > > > --- >> > > > lib/maple_tree.c | 18 +++++++++++++----- >> > > > 1 file changed, 13 insertions(+), 5 deletions(-) >> > > > >> > > > diff --git a/lib/maple_tree.c b/lib/maple_tree.c >> > > > index 8c1a1a483395..73ce63d9c3a0 100644 >> > > > --- a/lib/maple_tree.c >> > > > +++ b/lib/maple_tree.c >> > > > @@ -3979,9 +3979,6 @@ static inline void mas_wr_end_piv(struct ma_wr_state *wr_mas) >> > > > wr_mas->end_piv = wr_mas->pivots[wr_mas->offset_end]; >> > > > else >> > > > wr_mas->end_piv = wr_mas->mas->max; >> > > > - >> > > > - if (!wr_mas->entry) >> > > > - mas_wr_extend_null(wr_mas); >> > > > } >> > > > >> > > > static inline unsigned char mas_wr_new_end(struct ma_wr_state *wr_mas) >> > > > @@ -5532,8 +5529,19 @@ void mas_store_prealloc(struct ma_state *mas, void *entry) >> > > > { >> > > > MA_WR_STATE(wr_mas, mas, entry); >> > > > >> > > > - mas_wr_prealloc_setup(&wr_mas); >> > > > - mas_wr_store_type(&wr_mas); >> > > > + if (mas->store_type == wr_store_root) { >> > > > + mas_wr_prealloc_setup(&wr_mas); >> > > > + goto store; >> > > > + } >> > > > + >> > > > + mas_wr_walk_descend(&wr_mas); >> > > This one does not descend the tree, just locate the offset in a node and >> > > adjust min/max. So not look like to continue the partial walk to me. >> > > >> > > > + if (mas->store_type != wr_spanning_store) { >> > > > + /* set wr_mas->content to current slot */ >> > > > + wr_mas.content = mas_slot_locked(mas, wr_mas.slots, mas->offset); >> > > > + mas_wr_end_piv(&wr_mas); >> > > If not a spanning write, the previous walk should reach a leaf node, right? >> > Ya that's true. >> > >> > > I am not sure why we don't need to check extend null here. Because we have >> > > already done it? >> > >> > Ya we extend null in mas_wr_store_type() which has already been called at >> > this point. >> > >> > >> >     /* At this point, we are at the leaf node that needs to be altered. */ >> >     mas_wr_end_piv(wr_mas); >> >     if (!wr_mas->entry) >> >         mas_wr_extend_null(wr_mas); >> > >> > Thanks, >> Hmm... if we have already done this, why we need to do mas_wr_end_piv() again? > >The maple write state here is local to this function: > >void mas_store_prealloc(struct ma_state *mas, void *entry) >{ >    MA_WR_STATE(wr_mas, mas, entry); > >so we don't retain the wr_end information from the previous call to >mas_preallocate() and have to repeat it here. The write state is not >currently exposed so have to call mas_wr_end_piv() again. > Thanks, I missed this point. >Thanks, > >Sid > > >> >> > Sid >> > >> > > > + } >> > > > + >> > > > +store: >> > > > trace_ma_write(__func__, mas, 0, entry); >> > > > mas_wr_store_entry(&wr_mas); >> > > > MAS_WR_BUG_ON(&wr_mas, mas_is_err(mas)); >> > > > -- >> > > > 2.46.0 >> > > > -- Wei Yang Help you, Help me