Re: [PATCH 11/11] x86/mm, pat: convert pat tree to generic interval tree

From: Ingo Molnar
Date: Mon Oct 07 2019 - 11:33:45 EST



* Davidlohr Bueso <dave@xxxxxxxxxxxx> wrote:

> With some considerations, the custom pat_rbtree implementation can be
> simplified to use most of the generic interval_tree machinery.
>
> o The tree inorder traversal can slightly differ when there are key
> ('start') collisions in the tree due to one going left and another right.
> This, however, only affects the output of debugfs' pat_memtype_list file.
>
> o Generic interval trees are now semi open [a,b), which suits well with
> what pat wants.
>
> o Erasing logic must remain untouched as well.
>
> In order for the types to remain u64, the 'memtype_interval' calls are
> introduced, as opposed to simply using struct interval_tree.
>
> In addition, pat tree might potentially also benefit by the fast overlap
> detection for the insertion case when looking up the first overlapping node
> in the tree.
>
> Finally, I've tested this on various servers, via sanity warnings, running
> side by side with the current version and so far see no differences in the
> returned pointer node when doing memtype_rb_lowest_match() lookups.
>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> Cc: Borislav Petkov <bp@xxxxxxxxx>
> Cc: x86@xxxxxxxxxx
> Signed-off-by: Davidlohr Bueso <dbueso@xxxxxxx>
> ---
> arch/x86/mm/pat.c | 22 +++----
> arch/x86/mm/pat_rbtree.c | 151 ++++++++++-------------------------------------
> 2 files changed, 43 insertions(+), 130 deletions(-)

I suppose this will be carried in -mm?

If so and if this patch is regression free, then:

Acked-by: Ingo Molnar <mingo@xxxxxxxxxx>

Thanks,

Ingo