All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wei Yang <richard.weiyang@gmail.com>
To: "Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Wei Yang <richard.weiyang@gmail.com>,
	linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>,
	Jiazi Li <jqqlijiazi@gmail.com>,
	linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org
Subject: Re: [PATCH 2/2] maple_tree: Add some alloc node test case
Date: Tue, 15 Oct 2024 13:31:25 +0000	[thread overview]
Message-ID: <20241015133125.aixhbw5kunbme2nt@master> (raw)
In-Reply-To: <juxyinlfa5gn6pbhvae34xamz4zx6d5lmbkfeo5uwg5hu4ctj2@ruvlfmtbx7ji>

On Mon, Oct 14, 2024 at 09:15:07PM -0400, Liam R. Howlett wrote:
>* Wei Yang <richard.weiyang@gmail.com> [241010 21:18]:
>> On Wed, Jun 26, 2024 at 12:06:31PM -0400, Liam R. Howlett wrote:
>> >From: Jiazi Li <jqqlijiazi@gmail.com>
>> >
>> >Add some maple_tree alloc node tese case.
>> >
>> >Suggested-by: Liam R. Howlett <Liam.Howlett@oracle.com>
>> >Signed-off-by: Jiazi Li <jqqlijiazi@gmail.com>
>> >Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
>> >---
>> > tools/testing/radix-tree/maple.c | 22 ++++++++++++++++++++++
>> > 1 file changed, 22 insertions(+)
>> >
>> >diff --git a/tools/testing/radix-tree/maple.c b/tools/testing/radix-tree/maple.c
>> >index 11f1efdf83f9..b4b5fd9f294d 100644
>> >--- a/tools/testing/radix-tree/maple.c
>> >+++ b/tools/testing/radix-tree/maple.c
>> >@@ -462,6 +462,28 @@ static noinline void __init check_new_node(struct maple_tree *mt)
>> > 	MT_BUG_ON(mt, mas_allocated(&mas) != 10 + MAPLE_ALLOC_SLOTS - 1);
>> > 	mas_destroy(&mas);
>> > 
>> >+	mas.node = MA_ERROR(-ENOMEM);
>> >+	mas_node_count(&mas, MAPLE_ALLOC_SLOTS + 1); /* Request */
>> >+	mas_nomem(&mas, GFP_KERNEL); /* Fill request */
>> 
>> I am not sure why mas_nomem() is here.
>> 
>> Without this one, we still can trigger the original bug.
>
>It will fill the maple state allocation.  Might not be needed but
>doesn't hurt.
>

I took another look at it. We really need mas_nomem() here, since we call
mt_set_non_kernel(0) at the beginning of check_new_node(). 

So mas_node_count() just set the request count and mas_nomem() does the real
allocation.

Any reason to design test case like this?

>> 
>> >+	MT_BUG_ON(mt, mas_allocated(&mas) != MAPLE_ALLOC_SLOTS + 1);
>> >+	mas.node = MA_ERROR(-ENOMEM);
>> >+	mas_node_count(&mas, MAPLE_ALLOC_SLOTS * 2 + 2); /* Request */
>> >+	mas_nomem(&mas, GFP_KERNEL); /* Fill request */
>> >+	mas.status = ma_start;
>> >+	MT_BUG_ON(mt, mas_allocated(&mas) != MAPLE_ALLOC_SLOTS * 2 + 2);
>> >+	mas_destroy(&mas);
>> >+
>> >+	mas.node = MA_ERROR(-ENOMEM);
>> >+	mas_node_count(&mas, MAPLE_ALLOC_SLOTS * 2 + 1); /* Request */
>> >+	mas_nomem(&mas, GFP_KERNEL); /* Fill request */
>> >+	MT_BUG_ON(mt, mas_allocated(&mas) != MAPLE_ALLOC_SLOTS * 2 + 1);
>> >+	mas.node = MA_ERROR(-ENOMEM);
>> >+	mas_node_count(&mas, MAPLE_ALLOC_SLOTS * 3 + 2); /* Request */
>> >+	mas_nomem(&mas, GFP_KERNEL); /* Fill request */
>> >+	mas.status = ma_start;
>> >+	MT_BUG_ON(mt, mas_allocated(&mas) != MAPLE_ALLOC_SLOTS * 3 + 2);
>> >+	mas_destroy(&mas);
>> >+
>> > 	mtree_unlock(mt);
>> > }
>> > 
>> >-- 
>> >2.43.0
>> >
>> 
>> -- 
>> Wei Yang
>> Help you, Help me

-- 
Wei Yang
Help you, Help me


  reply	other threads:[~2024-10-15 13:31 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-26 16:06 [PATCH 1/2] maple_tree: fix alloc node fail issue Liam R. Howlett
2024-06-26 16:06 ` [PATCH 2/2] maple_tree: Add some alloc node test case Liam R. Howlett
2024-10-11  1:17   ` Wei Yang
2024-10-15  1:15     ` Liam R. Howlett
2024-10-15 13:31       ` Wei Yang [this message]
2024-10-15 13:52         ` Liam R. Howlett
2024-10-11  1:09 ` [PATCH 1/2] maple_tree: fix alloc node fail issue Wei Yang
2024-10-15  1:17 ` Liam R. Howlett

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=20241015133125.aixhbw5kunbme2nt@master \
    --to=richard.weiyang@gmail.com \
    --cc=Liam.Howlett@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=jqqlijiazi@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=maple-tree@lists.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.