[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20190702141541.12635-5-lpf.vector@gmail.com>
Date: Tue, 2 Jul 2019 22:15:40 +0800
From: Pengfei Li <lpf.vector@...il.com>
To: akpm@...ux-foundation.org, peterz@...radead.org, urezki@...il.com
Cc: rpenyaev@...e.de, mhocko@...e.com, guro@...com,
aryabinin@...tuozzo.com, rppt@...ux.ibm.com, mingo@...nel.org,
rick.p.edgecombe@...el.com, linux-mm@...ck.org,
linux-kernel@...r.kernel.org, Pengfei Li <lpf.vector@...il.com>
Subject: [PATCH v2 4/5] mm/vmalloc.c: Modify function merge_or_add_vmap_area() for readability
Since function merge_or_add_vmap_area() is only used to
merge or add vmap area to the *FREE* tree, so rename it
to merge_or_add_va_to_free_tree.
Then this is obvious, merge_or_add_vmap_area() does not
need parameters root and head, so remove them.
Signed-off-by: Pengfei Li <lpf.vector@...il.com>
---
mm/vmalloc.c | 21 +++++++++------------
1 file changed, 9 insertions(+), 12 deletions(-)
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index b6ea52d6e8f9..ad117d16af34 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -688,8 +688,7 @@ insert_va_to_free_tree(struct vmap_area *va, struct rb_node *from)
* freed.
*/
static __always_inline void
-merge_or_add_vmap_area(struct vmap_area *va,
- struct rb_root *root, struct list_head *head)
+merge_or_add_va_to_free_tree(struct vmap_area *va)
{
struct vmap_area *sibling;
struct list_head *next;
@@ -701,7 +700,7 @@ merge_or_add_vmap_area(struct vmap_area *va,
* Find a place in the tree where VA potentially will be
* inserted, unless it is merged with its sibling/siblings.
*/
- link = find_va_links(va, root, NULL, &parent);
+ link = find_va_links(va, &free_vmap_area_root, NULL, &parent);
/*
* Get next node of VA to check if merging can be done.
@@ -717,7 +716,7 @@ merge_or_add_vmap_area(struct vmap_area *va,
* | |
* start end
*/
- if (next != head) {
+ if (next != &free_vmap_area_list) {
sibling = list_entry(next, struct vmap_area, list);
if (sibling->va_start == va->va_end) {
sibling->va_start = va->va_start;
@@ -725,9 +724,6 @@ merge_or_add_vmap_area(struct vmap_area *va,
/* Check and update the tree if needed. */
augment_tree_propagate_from(sibling);
- /* Remove this VA, it has been merged. */
- unlink_va(va, root);
-
/* Free vmap_area object. */
kmem_cache_free(vmap_area_cachep, va);
@@ -744,7 +740,7 @@ merge_or_add_vmap_area(struct vmap_area *va,
* | |
* start end
*/
- if (next->prev != head) {
+ if (next->prev != &free_vmap_area_list) {
sibling = list_entry(next->prev, struct vmap_area, list);
if (sibling->va_end == va->va_start) {
sibling->va_end = va->va_end;
@@ -753,7 +749,8 @@ merge_or_add_vmap_area(struct vmap_area *va,
augment_tree_propagate_from(sibling);
/* Remove this VA, it has been merged. */
- unlink_va(va, root);
+ if (merged)
+ unlink_va(va, &free_vmap_area_root);
/* Free vmap_area object. */
kmem_cache_free(vmap_area_cachep, va);
@@ -764,7 +761,8 @@ merge_or_add_vmap_area(struct vmap_area *va,
insert:
if (!merged) {
- link_va(va, root, parent, link, head);
+ link_va(va, &free_vmap_area_root, parent, link,
+ &free_vmap_area_list);
augment_tree_propagate_from(va);
}
}
@@ -1141,8 +1139,7 @@ static void __free_vmap_area(struct vmap_area *va)
/*
* Merge VA with its neighbors, otherwise just add it.
*/
- merge_or_add_vmap_area(va,
- &free_vmap_area_root, &free_vmap_area_list);
+ merge_or_add_va_to_free_tree(va);
}
/*
--
2.21.0
Powered by blists - more mailing lists