From: "Liam R. Howlett" <Liam.Howlett@oracle.com>
To: Wei Yang <richard.weiyang@gmail.com>
Cc: Sidhartha Kumar <sidhartha.kumar@oracle.com>,
linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org,
linux-mm@kvack.org, akpm@linux-foundation.org,
willy@infradead.org
Subject: Re: [PATCH] maple_tree: remove conditionals to detect wr_node_store
Date: Thu, 10 Oct 2024 13:16:32 -0400 [thread overview]
Message-ID: <otdtppzuwgxfs6c23nsrwsogqie2krhuacyrocbovunnayv7p7@qrqpcy2sovv2> (raw)
In-Reply-To: <20241010062844.vf4pyrd6isfddwo4@master>
* Wei Yang <richard.weiyang@gmail.com> [241010 02:28]:
> On Wed, Oct 09, 2024 at 11:20:07AM -0400, Sidhartha Kumar wrote:
> >From: Sidhartha <sidhartha.kumar@oracle.com>
> >
> >In mas_wr_store_type(), we check if new_end < mt_slots[wr_mas->type]. If
> >this check fails, we know that ,after this, new_end is >= mt_min_slots.
> >Checking this again when we detect a wr_node_store later in the function
> >is reduntant. Because this check is part of an OR statement, the statement
> >will always evaluate to true, therefore we can just get rid of it.
> >
> >Suggested-by; Wei Yang <richard.weiyang@gmail.com>
> >Signed-off-by: Sidhartha Kumar <sidhartha.kumar@oracle.com>
> >---
> > lib/maple_tree.c | 9 +--------
> > 1 file changed, 1 insertion(+), 8 deletions(-)
> >
> >diff --git a/lib/maple_tree.c b/lib/maple_tree.c
> >index 4b423330d83c..f5a12d37b352 100644
> >--- a/lib/maple_tree.c
> >+++ b/lib/maple_tree.c
> >@@ -4252,14 +4252,7 @@ static inline void mas_wr_store_type(struct ma_wr_state *wr_mas)
> > return;
> > }
> >
> >- if (mte_is_root(mas->node) || (new_end >= mt_min_slots[wr_mas->type]) ||
> >- (mas->mas_flags & MA_STATE_BULK)) {
> >- mas->store_type = wr_node_store;
> >- return;
> >- }
> >-
> >- mas->store_type = wr_invalid;
> >- MAS_WARN_ON(mas, 1);
>
> If my understanding is correct, here is the only place we assign wr_invalid.
>
> So maybe we can remove this definition?
No. This needs to exist to catch incorrect uses of the API, at the very
least. I am not pleased that we aren't able to fall through to setting
this to catch missed settings with this code today.
We are now just assuming we got things right. Any mistakes will show up
as an out-of-memory issues with writes to the tree. It will be much
harder to track down what went wrong.
Currently it is set in the header as the default store type and should
remain for that use, at the very least.
>
> >+ mas->store_type = wr_node_store;
> > }
> >
> > /**
> >--
> >2.43.0
>
> --
> Wei Yang
> Help you, Help me
prev parent reply other threads:[~2024-10-10 17:16 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-09 15:20 Sidhartha Kumar
2024-10-10 0:02 ` Liam R. Howlett
2024-10-10 1:29 ` Liam R. Howlett
2024-10-10 6:28 ` Wei Yang
2024-10-10 17:16 ` Liam R. Howlett [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=otdtppzuwgxfs6c23nsrwsogqie2krhuacyrocbovunnayv7p7@qrqpcy2sovv2 \
--to=liam.howlett@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=maple-tree@lists.infradead.org \
--cc=richard.weiyang@gmail.com \
--cc=sidhartha.kumar@oracle.com \
--cc=willy@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox