Message ID | 20230830125654.21257-2-zhangpeng.00@bytedance.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Introduce __mt_dup() to improve the performance of fork() | expand |
* Peng Zhang <zhangpeng.00@bytedance.com> [230830 08:57]: > Add two helpers, which will be used later. Can you please change the subject to something like: Add mt_free_one() and mt_attr() helpers for easier git log readability? > > Signed-off-by: Peng Zhang <zhangpeng.00@bytedance.com> > --- > lib/maple_tree.c | 12 +++++++++++- > 1 file changed, 11 insertions(+), 1 deletion(-) > > diff --git a/lib/maple_tree.c b/lib/maple_tree.c > index ee1ff0c59fd7..ef234cf02e3e 100644 > --- a/lib/maple_tree.c > +++ b/lib/maple_tree.c > @@ -165,6 +165,11 @@ static inline int mt_alloc_bulk(gfp_t gfp, size_t size, void **nodes) > return kmem_cache_alloc_bulk(maple_node_cache, gfp, size, nodes); > } > > +static inline void mt_free_one(struct maple_node *node) > +{ > + kmem_cache_free(maple_node_cache, node); > +} > + > static inline void mt_free_bulk(size_t size, void __rcu **nodes) > { > kmem_cache_free_bulk(maple_node_cache, size, (void **)nodes); > @@ -205,6 +210,11 @@ static unsigned int mas_mt_height(struct ma_state *mas) > return mt_height(mas->tree); > } > > +static inline unsigned int mt_attr(struct maple_tree *mt) > +{ > + return mt->ma_flags & ~MT_FLAGS_HEIGHT_MASK; > +} > + > static inline enum maple_type mte_node_type(const struct maple_enode *entry) > { > return ((unsigned long)entry >> MAPLE_NODE_TYPE_SHIFT) & > @@ -5520,7 +5530,7 @@ void mas_destroy(struct ma_state *mas) > mt_free_bulk(count, (void __rcu **)&node->slot[1]); > total -= count; > } > - kmem_cache_free(maple_node_cache, node); > + mt_free_one(ma_mnode_ptr(node)); > total--; > } > > -- > 2.20.1 >
在 2023/9/8 04:13, Liam R. Howlett 写道: > * Peng Zhang <zhangpeng.00@bytedance.com> [230830 08:57]: >> Add two helpers, which will be used later. > > Can you please change the subject to something like: > Add mt_free_one() and mt_attr() helpers > > for easier git log readability? OK, I'll do that. > >> >> Signed-off-by: Peng Zhang <zhangpeng.00@bytedance.com> >> --- >> lib/maple_tree.c | 12 +++++++++++- >> 1 file changed, 11 insertions(+), 1 deletion(-) >> >> diff --git a/lib/maple_tree.c b/lib/maple_tree.c >> index ee1ff0c59fd7..ef234cf02e3e 100644 >> --- a/lib/maple_tree.c >> +++ b/lib/maple_tree.c >> @@ -165,6 +165,11 @@ static inline int mt_alloc_bulk(gfp_t gfp, size_t size, void **nodes) >> return kmem_cache_alloc_bulk(maple_node_cache, gfp, size, nodes); >> } >> >> +static inline void mt_free_one(struct maple_node *node) >> +{ >> + kmem_cache_free(maple_node_cache, node); >> +} >> + >> static inline void mt_free_bulk(size_t size, void __rcu **nodes) >> { >> kmem_cache_free_bulk(maple_node_cache, size, (void **)nodes); >> @@ -205,6 +210,11 @@ static unsigned int mas_mt_height(struct ma_state *mas) >> return mt_height(mas->tree); >> } >> >> +static inline unsigned int mt_attr(struct maple_tree *mt) >> +{ >> + return mt->ma_flags & ~MT_FLAGS_HEIGHT_MASK; >> +} >> + >> static inline enum maple_type mte_node_type(const struct maple_enode *entry) >> { >> return ((unsigned long)entry >> MAPLE_NODE_TYPE_SHIFT) & >> @@ -5520,7 +5530,7 @@ void mas_destroy(struct ma_state *mas) >> mt_free_bulk(count, (void __rcu **)&node->slot[1]); >> total -= count; >> } >> - kmem_cache_free(maple_node_cache, node); >> + mt_free_one(ma_mnode_ptr(node)); >> total--; >> } >> >> -- >> 2.20.1 >>
diff --git a/lib/maple_tree.c b/lib/maple_tree.c index ee1ff0c59fd7..ef234cf02e3e 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -165,6 +165,11 @@ static inline int mt_alloc_bulk(gfp_t gfp, size_t size, void **nodes) return kmem_cache_alloc_bulk(maple_node_cache, gfp, size, nodes); } +static inline void mt_free_one(struct maple_node *node) +{ + kmem_cache_free(maple_node_cache, node); +} + static inline void mt_free_bulk(size_t size, void __rcu **nodes) { kmem_cache_free_bulk(maple_node_cache, size, (void **)nodes); @@ -205,6 +210,11 @@ static unsigned int mas_mt_height(struct ma_state *mas) return mt_height(mas->tree); } +static inline unsigned int mt_attr(struct maple_tree *mt) +{ + return mt->ma_flags & ~MT_FLAGS_HEIGHT_MASK; +} + static inline enum maple_type mte_node_type(const struct maple_enode *entry) { return ((unsigned long)entry >> MAPLE_NODE_TYPE_SHIFT) & @@ -5520,7 +5530,7 @@ void mas_destroy(struct ma_state *mas) mt_free_bulk(count, (void __rcu **)&node->slot[1]); total -= count; } - kmem_cache_free(maple_node_cache, node); + mt_free_one(ma_mnode_ptr(node)); total--; }
Add two helpers, which will be used later. Signed-off-by: Peng Zhang <zhangpeng.00@bytedance.com> --- lib/maple_tree.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-)