[7/9] maple_tree: Delete redundant code in mas_next_node()

Message ID 20230425110511.11680-8-zhangpeng.00@bytedance.com
State New
Headers
Series fix, rework and clean up for maple tree |

Commit Message

Peng Zhang April 25, 2023, 11:05 a.m. UTC
  When offset == node_end is satisfied, go to the parent node, mas->max
will not change. So there is no need to update min on the move.

Signed-off-by: Peng Zhang <zhangpeng.00@bytedance.com>
---
 lib/maple_tree.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)
  

Comments

Liam R. Howlett April 25, 2023, 4:45 p.m. UTC | #1
* Peng Zhang <zhangpeng.00@bytedance.com> [230425 07:05]:

The title of the patch seems wrong.

This isn't redundant code and you aren't deleting it.. you are moving a
block of code outside a loop.  You did modify the check though, is that
the redundant code?

> When offset == node_end is satisfied, go to the parent node, mas->max
> will not change. So there is no need to update min on the move.

Please try not to state the code in your commit message.

I have moved this block of code in patch 27/34 [1]

> 
> Signed-off-by: Peng Zhang <zhangpeng.00@bytedance.com>
> ---
>  lib/maple_tree.c | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/lib/maple_tree.c b/lib/maple_tree.c
> index 83441ef2e1f57..8bfa837b7b752 100644
> --- a/lib/maple_tree.c
> +++ b/lib/maple_tree.c
> @@ -4616,7 +4616,8 @@ static inline int mas_next_node(struct ma_state *mas, struct maple_node *node,
>  	enum maple_type mt;
>  	void __rcu **slots;
>  
> -	if (mas->max >= max)
> +	min = mas->max + 1;
> +	if (min > max)
>  		goto no_entry;

What happens on overflow?

>  
>  	level = 0;
> @@ -4624,10 +4625,6 @@ static inline int mas_next_node(struct ma_state *mas, struct maple_node *node,
>  		if (ma_is_root(node))
>  			goto no_entry;
>  
> -		min = mas->max + 1;
> -		if (min > max)
> -			goto no_entry;
> -
>  		if (unlikely(mas_ascend(mas)))
>  			return 1;
>  
> -- 
> 2.20.1
> 

[1] https://lore.kernel.org/linux-mm/20230425140955.3834476-28-Liam.Howlett@oracle.com/
  
Peng Zhang April 26, 2023, 11:43 a.m. UTC | #2
在 2023/4/26 00:45, Liam R. Howlett 写道:
> * Peng Zhang <zhangpeng.00@bytedance.com> [230425 07:05]:
>
> The title of the patch seems wrong.
>
> This isn't redundant code and you aren't deleting it.. you are moving a
> block of code outside a loop.  You did modify the check though, is that
> the redundant code?
>
>> When offset == node_end is satisfied, go to the parent node, mas->max
>> will not change. So there is no need to update min on the move.
> Please try not to state the code in your commit message.
>
> I have moved this block of code in patch 27/34 [1]
>
>> Signed-off-by: Peng Zhang <zhangpeng.00@bytedance.com>
>> ---
>>   lib/maple_tree.c | 7 ++-----
>>   1 file changed, 2 insertions(+), 5 deletions(-)
>>
>> diff --git a/lib/maple_tree.c b/lib/maple_tree.c
>> index 83441ef2e1f57..8bfa837b7b752 100644
>> --- a/lib/maple_tree.c
>> +++ b/lib/maple_tree.c
>> @@ -4616,7 +4616,8 @@ static inline int mas_next_node(struct ma_state *mas, struct maple_node *node,
>>   	enum maple_type mt;
>>   	void __rcu **slots;
>>   
>> -	if (mas->max >= max)
>> +	min = mas->max + 1;
>> +	if (min > max)
>>   		goto no_entry;
> What happens on overflow?
Yes, I made a mistake.
I will drop this patch since you have updated the code in patch 27/34.
>
>>   
>>   	level = 0;
>> @@ -4624,10 +4625,6 @@ static inline int mas_next_node(struct ma_state *mas, struct maple_node *node,
>>   		if (ma_is_root(node))
>>   			goto no_entry;
>>   
>> -		min = mas->max + 1;
>> -		if (min > max)
>> -			goto no_entry;
>> -
>>   		if (unlikely(mas_ascend(mas)))
>>   			return 1;
>>   
>> -- 
>> 2.20.1
>>
> [1] https://lore.kernel.org/linux-mm/20230425140955.3834476-28-Liam.Howlett@oracle.com/
  

Patch

diff --git a/lib/maple_tree.c b/lib/maple_tree.c
index 83441ef2e1f57..8bfa837b7b752 100644
--- a/lib/maple_tree.c
+++ b/lib/maple_tree.c
@@ -4616,7 +4616,8 @@  static inline int mas_next_node(struct ma_state *mas, struct maple_node *node,
 	enum maple_type mt;
 	void __rcu **slots;
 
-	if (mas->max >= max)
+	min = mas->max + 1;
+	if (min > max)
 		goto no_entry;
 
 	level = 0;
@@ -4624,10 +4625,6 @@  static inline int mas_next_node(struct ma_state *mas, struct maple_node *node,
 		if (ma_is_root(node))
 			goto no_entry;
 
-		min = mas->max + 1;
-		if (min > max)
-			goto no_entry;
-
 		if (unlikely(mas_ascend(mas)))
 			return 1;