Message ID | 20230425110511.11680-8-zhangpeng.00@bytedance.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | fix, rework and clean up for maple tree | expand |
* 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/
在 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/
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;
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(-)