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

Zhen Lei posted 3 patches 2 months, 2 weeks ago
lib/debugobjects.c | 105 ++++++++++++++++++++++++++++++---------------
1 file changed, 70 insertions(+), 35 deletions(-)
[PATCH v3 0/3] debugobjects: Do some minor optimizations, fixes and cleaups
Posted by Zhen Lei 2 months, 2 weeks ago
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