Re: [PATCH v2 05/33] mm/rmap: update mm/interval_tree.c comments
From: Vlastimil Babka (SUSE)
Date: Mon Jul 13 2026 - 13:49:15 EST
On 7/10/26 22:16, Lorenzo Stoakes wrote:
> Update the file comment to clarify that both file-backed and anonymous
> interval trees are provided, referencing the relevant data types for
> clarity.
>
> Also add comments to indicate which parts of the file apply to each.
>
> While we're here, convert the VM_BUG_ON_VMA() to VM_WARN_ON_ONCE_VMA().
>
> Reviewed-by: Pedro Falcato <pfalcato@xxxxxxx>
> Reviewed-by: Gregory Price <gourry@xxxxxxxxxx>
> Signed-off-by: Lorenzo Stoakes <ljs@xxxxxxxxxx>
Reviewed-by: Vlastimil Babka (SUSE) <vbabka@xxxxxxxxxx>
> ---
> mm/interval_tree.c | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/mm/interval_tree.c b/mm/interval_tree.c
> index 344d1f5946c7..2d50bc6228c4 100644
> --- a/mm/interval_tree.c
> +++ b/mm/interval_tree.c
> @@ -1,6 +1,7 @@
> // SPDX-License-Identifier: GPL-2.0-only
> /*
> - * mm/interval_tree.c - interval tree for mapping->i_mmap
> + * mm/interval_tree.c - interval tree for address_space->i_mmap and
> + * anon_vma->rb_root
> *
> * Copyright (C) 2012, Michel Lespinasse <walken@xxxxxxxxxx>
> */
> @@ -10,6 +11,8 @@
> #include <linux/rmap.h>
> #include <linux/interval_tree_generic.h>
>
> +/* File-backed interval tree (address_space->i_mmap) */
> +
> INTERVAL_TREE_DEFINE(struct vm_area_struct, shared.rb,
> unsigned long, shared.rb_subtree_last,
> vma_start_pgoff, vma_last_pgoff, /* empty */, vma_interval_tree)
> @@ -23,7 +26,7 @@ void vma_interval_tree_insert_after(struct vm_area_struct *node,
> struct vm_area_struct *parent;
> unsigned long last = vma_last_pgoff(node);
>
> - VM_BUG_ON_VMA(vma_start_pgoff(node) != vma_start_pgoff(prev), node);
> + VM_WARN_ON_ONCE_VMA(vma_start_pgoff(node) != vma_start_pgoff(prev), node);
>
> if (!prev->shared.rb.rb_right) {
> parent = prev;
> @@ -48,6 +51,8 @@ void vma_interval_tree_insert_after(struct vm_area_struct *node,
> &vma_interval_tree_augment);
> }
>
> +/* Anonymous interval tree (anon_vma->rb_root) */
> +
> static inline unsigned long avc_start_pgoff(struct anon_vma_chain *avc)
> {
> return vma_start_pgoff(avc->vma);
>