[v2,0/8] Improve the validation for maple tree and some cleanup

Message ID 20230711035444.526-1-zhangpeng.00@bytedance.com
Headers
Series Improve the validation for maple tree and some cleanup |

Message

Peng Zhang July 11, 2023, 3:54 a.m. UTC
  These patches do the following:
001 - 002: Small cleanup to maple tree.
003 - 006: Improve the validation for maple tree.
007 - 008: Drop some functions that will no longer be used.

Thanks Liam for the review.

Changes since v1:
 - Add fixes tag and the necessary Cc. [1/8]
 - Add the verification that gaps beyond the node limit are zero. [3/8]
 - Revise comment. [5/8]
 - Reformat the code. [6/8]

Peng Zhang (8):
  maple_tree: set the node limit when creating a new root node
  maple_tree: don't use MAPLE_ARANGE64_META_MAX to indicate no gap
  maple_tree: make mas_validate_gaps() to check metadata
  maple_tree: fix mas_validate_child_slot() to check last missed slot
  maple_tree: make mas_validate_limits() check root node and node limit
  maple_tree: update mt_validate()
  maple_tree: replace mas_logical_pivot() with mas_safe_pivot()
  maple_tree: drop mas_first_entry()

 include/linux/maple_tree.h |   2 -
 lib/maple_tree.c           | 258 ++++++++++++-------------------------
 2 files changed, 79 insertions(+), 181 deletions(-)
  

Comments

Geert Uytterhoeven July 11, 2023, 10:10 a.m. UTC | #1
Hi Peng,

On Tue, Jul 11, 2023 at 5:56 AM Peng Zhang <zhangpeng.00@bytedance.com> wrote:
> These patches do the following:
> 001 - 002: Small cleanup to maple tree.
> 003 - 006: Improve the validation for maple tree.
> 007 - 008: Drop some functions that will no longer be used.
>
> Thanks Liam for the review.
>
> Changes since v1:
>  - Add fixes tag and the necessary Cc. [1/8]
>  - Add the verification that gaps beyond the node limit are zero. [3/8]
>  - Revise comment. [5/8]
>  - Reformat the code. [6/8]
>
> Peng Zhang (8):
>   maple_tree: set the node limit when creating a new root node
>   maple_tree: don't use MAPLE_ARANGE64_META_MAX to indicate no gap
>   maple_tree: make mas_validate_gaps() to check metadata
>   maple_tree: fix mas_validate_child_slot() to check last missed slot
>   maple_tree: make mas_validate_limits() check root node and node limit
>   maple_tree: update mt_validate()
>   maple_tree: replace mas_logical_pivot() with mas_safe_pivot()
>   maple_tree: drop mas_first_entry()
>
>  include/linux/maple_tree.h |   2 -
>  lib/maple_tree.c           | 258 ++++++++++++-------------------------
>  2 files changed, 79 insertions(+), 181 deletions(-)

Thanks for your series!

I gave it a try with test_maple_tree on m68k/ARAnyM, and the net
impact is:

     TEST STARTING

     BUG at next_prev_test:2014 (1)
     Pass: 3749128 Run:3749129
    -BUG at check_empty_area_window:2655 (1)
    -Pass: 3754275 Run:3754277
    -BUG at check_empty_area_window:2656 (1)
    -Pass: 3754275 Run:3754278
    -BUG at check_empty_area_window:2657 (1)
    -Pass: 3754275 Run:3754279
    -BUG at check_empty_area_window:2661 (1)
    -Pass: 3754275 Run:3754280
    -BUG at check_empty_area_window:2662 (1)
    -Pass: 3754275 Run:3754281
    -maple_tree: 3804518 of 3804524 tests passed
    +maple_tree: 3804523 of 3804524 tests passed

So only one bug left to squash ;-)

Tested-by: Geert Uytterhoeven <geert@linux-m68k.org>

Gr{oetje,eeting}s,

                        Geert
  
Liam R. Howlett July 12, 2023, 1:27 a.m. UTC | #2
* Geert Uytterhoeven <geert@linux-m68k.org> [230711 06:10]:
> Hi Peng,
> 
> On Tue, Jul 11, 2023 at 5:56 AM Peng Zhang <zhangpeng.00@bytedance.com> wrote:
> > These patches do the following:
> > 001 - 002: Small cleanup to maple tree.
> > 003 - 006: Improve the validation for maple tree.
> > 007 - 008: Drop some functions that will no longer be used.
> >
> > Thanks Liam for the review.
> >
> > Changes since v1:
> >  - Add fixes tag and the necessary Cc. [1/8]
> >  - Add the verification that gaps beyond the node limit are zero. [3/8]
> >  - Revise comment. [5/8]
> >  - Reformat the code. [6/8]
> >
> > Peng Zhang (8):
> >   maple_tree: set the node limit when creating a new root node
> >   maple_tree: don't use MAPLE_ARANGE64_META_MAX to indicate no gap
> >   maple_tree: make mas_validate_gaps() to check metadata
> >   maple_tree: fix mas_validate_child_slot() to check last missed slot
> >   maple_tree: make mas_validate_limits() check root node and node limit
> >   maple_tree: update mt_validate()
> >   maple_tree: replace mas_logical_pivot() with mas_safe_pivot()
> >   maple_tree: drop mas_first_entry()
> >
> >  include/linux/maple_tree.h |   2 -
> >  lib/maple_tree.c           | 258 ++++++++++++-------------------------
> >  2 files changed, 79 insertions(+), 181 deletions(-)
> 
> Thanks for your series!
> 
> I gave it a try with test_maple_tree on m68k/ARAnyM, and the net
> impact is:
> 
>      TEST STARTING
> 
>      BUG at next_prev_test:2014 (1)
>      Pass: 3749128 Run:3749129
>     -BUG at check_empty_area_window:2655 (1)
>     -Pass: 3754275 Run:3754277
>     -BUG at check_empty_area_window:2656 (1)
>     -Pass: 3754275 Run:3754278
>     -BUG at check_empty_area_window:2657 (1)
>     -Pass: 3754275 Run:3754279
>     -BUG at check_empty_area_window:2661 (1)
>     -Pass: 3754275 Run:3754280
>     -BUG at check_empty_area_window:2662 (1)
>     -Pass: 3754275 Run:3754281
>     -maple_tree: 3804518 of 3804524 tests passed
>     +maple_tree: 3804523 of 3804524 tests passed
> 
> So only one bug left to squash ;-)

That one is a bug for 32b in the test, I have two fixes and I'll send
them soon.

Thanks for re-testing.

Regards,
Liam