Re: [PATCH 2/5] debugobjects: Remove redundant checks in fill_pool()

From: Thomas Gleixner
Date: Tue Sep 03 2024 - 05:44:30 EST


On Mon, Sep 02 2024 at 22:05, Zhen Lei wrote:
> The conditions for the inner and outer loops are exactly the same, so the
> outer 'while' should be changed to 'if'. Then we'll see that the
> second

We'll see nothing. Please write change logs in passive voice and do not
try to impersonate code.

> condition of the new 'if' is already guaranteed above and can be
> removed.

Yes, the conditions are the same. But a 'if' is not the same as a 'while'.

So you need to explain why the outer loop is not required and why it
does not make a difference in terms of functionality.

> @@ -142,8 +142,7 @@ static void fill_pool(void)
> * READ_ONCE()s pair with the WRITE_ONCE()s in pool_lock critical
> * sections.
> */

The comment does not make sense anymore. Please fixup comments when
changing the code. It's a pain to read a comment and then see that the
code does something different.

> - while (READ_ONCE(obj_nr_tofree) &&
> - READ_ONCE(obj_pool_free) < debug_objects_pool_min_level) {
> + if (READ_ONCE(obj_nr_tofree)) {
> raw_spin_lock_irqsave(&pool_lock, flags);
> /*
> * Recheck with the lock held as the worker thread might have

Thanks,

tglx