[PATCH v3 0/3] debugobjects: Do some minor optimizations, fixes and cleaups

From: Zhen Lei
Date: Wed Sep 11 2024 - 04:35:54 EST


v2 --> v3:
1. Use the lockless mode to fill the pool.

v1 --> v2:
1. Fix the compilation attributes of some global variables
2. Update comments and commit messages.


v1:
The summary changes of the first two patches is as follows:
if (likely(READ_ONCE(obj_pool_free) >= debug_objects_pool_min_level))
return;

- while (READ_ONCE(obj_nr_tofree) && (READ_ONCE(obj_pool_free) < obj_pool_min_free)) {
+ if (READ_ONCE(obj_nr_tofree)) {
raw_spin_lock_irqsave(&pool_lock, flags);
- while (obj_nr_tofree && (obj_pool_free < obj_pool_min_free)) {
+ while (obj_nr_tofree && (obj_pool_free < debug_objects_pool_min_level)) {
... ...
}
raw_spin_unlock_irqrestore(&pool_lock, flags);

Zhen Lei (3):
debugobjects: Delete a piece of redundant code
debugobjects: Use hlist_splice_init() to reduce lock conflicts
debugobjects: Reduce contention on pool lock in fill_pool()

lib/debugobjects.c | 105 ++++++++++++++++++++++++++++++---------------
1 file changed, 70 insertions(+), 35 deletions(-)

--
2.34.1