Re: [PATCH v4] sched/psi: fix memory barrier without comment warnings

From: Christophe JAILLET
Date: Sun Oct 06 2024 - 03:03:33 EST


Le 06/10/2024 à 08:00, Pintu Kumar a écrit :
These warnings were reported by checkpatch.
Fix them with minor changes.
No functional changes.

WARNING: memory barrier without comment
+ t = smp_load_acquire(trigger_ptr);

WARNING: memory barrier without comment
+ smp_store_release(&seq->private, new);

Signed-off-by: Pintu Kumar <quic_pintu@xxxxxxxxxxx>

---
Changes in V4:
Added () in comment as well suggested by Christophe JAILLET.
V3: https://lore.kernel.org/all/00aeb243-3d47-42be-b52c-08b39c5fef07@xxxxxxxxxx/
Changes in V3:
Removed signature of Joe as requested. No other change.
V2: https://lore.kernel.org/all/CAOuPNLi1mUKW_vv0E6Ynzvdw_rHvCye+nAf2bWv6Qj9A8ofX1g@xxxxxxxxxxxxxx/
Changes in V2:
Retain printk_deferred warnings as suggested by Joe Perches.
V1: https://lore.kernel.org/all/a848671f803ba2b4ab14b0f7b09f0f53a8dd1c4b.camel@xxxxxxxxxxx/
---
kernel/sched/psi.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/kernel/sched/psi.c b/kernel/sched/psi.c
index 020d58967d4e..175423716e4c 100644
--- a/kernel/sched/psi.c
+++ b/kernel/sched/psi.c
@@ -1474,6 +1474,7 @@ __poll_t psi_trigger_poll(void **trigger_ptr,
if (static_branch_likely(&psi_disabled))
return DEFAULT_POLLMASK | EPOLLERR | EPOLLPRI;
+ /* Pairs with the smp_store_release() in psi_write */
t = smp_load_acquire(trigger_ptr);
if (!t)
return DEFAULT_POLLMASK | EPOLLERR | EPOLLPRI;
@@ -1557,6 +1558,7 @@ static ssize_t psi_write(struct file *file, const char __user *user_buf,
return PTR_ERR(new);
}
+ /* Pairs with the smp_store_acquire() in psi_trigger_poll */

Sorry if I was unclear in my previous comment, but my main point is that I think that it should be smp_load_acquire() and not smp_store_acquire().

(Also, if you add some (), you could also add them for psi_trigger_poll and psi_write)

CJ

smp_store_release(&seq->private, new);
mutex_unlock(&seq->lock);