]> git.openfabrics.org - ~shefty/rdma-dev.git/blobdiff - include/linux/mm_types.h
mm: augment vma rbtree with rb_subtree_gap
[~shefty/rdma-dev.git] / include / linux / mm_types.h
index 31f8a3af7d942545562afd1fcacf11f52a4f82a0..94fa52b28ee87ae9e0970aa861f1ad4f570baf6d 100644 (file)
@@ -237,6 +237,14 @@ struct vm_area_struct {
 
        struct rb_node vm_rb;
 
+       /*
+        * Largest free memory gap in bytes to the left of this VMA.
+        * Either between this VMA and vma->vm_prev, or between one of the
+        * VMAs below us in the VMA rbtree and its ->vm_prev. This helps
+        * get_unmapped_area find a free area of the right size.
+        */
+       unsigned long rb_subtree_gap;
+
        /*
         * For areas with an address space and backing store,
         * linkage into the address_space->i_mmap interval tree, or
@@ -322,6 +330,7 @@ struct mm_struct {
        unsigned long task_size;                /* size of task vm space */
        unsigned long cached_hole_size;         /* if non-zero, the largest hole below free_area_cache */
        unsigned long free_area_cache;          /* first hole of size cached_hole_size or larger */
+       unsigned long highest_vm_end;           /* highest vma end address */
        pgd_t * pgd;
        atomic_t mm_users;                      /* How many users with user space? */
        atomic_t mm_count;                      /* How many references to "struct mm_struct" (users count as 1) */