[PATCH] proc: array: drop stale FIXME about RCU in task_sig()

Jaime Saguillo Revilla posted 1 patch 1 month, 2 weeks ago
fs/proc/array.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] proc: array: drop stale FIXME about RCU in task_sig()
Posted by Jaime Saguillo Revilla 1 month, 2 weeks ago
task_sig() already wraps the SigQ rlimit read in an explicit RCU
read-side critical section. Drop the stale FIXME comment and keep using
task_ucounts() for the ucounts access.

No functional change.

Signed-off-by: Jaime Saguillo Revilla <jaime.saguillo@gmail.com>
---
 fs/proc/array.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/proc/array.c b/fs/proc/array.c
index f447e734612a..90fb0c6b5f99 100644
--- a/fs/proc/array.c
+++ b/fs/proc/array.c
@@ -280,7 +280,7 @@ static inline void task_sig(struct seq_file *m, struct task_struct *p)
 		blocked = p->blocked;
 		collect_sigign_sigcatch(p, &ignored, &caught);
 		num_threads = get_nr_threads(p);
-		rcu_read_lock();  /* FIXME: is this correct? */
+		rcu_read_lock();
 		qsize = get_rlimit_value(task_ucounts(p), UCOUNT_RLIMIT_SIGPENDING);
 		rcu_read_unlock();
 		qlim = task_rlimit(p, RLIMIT_SIGPENDING);
-- 
2.34.1
Re: [PATCH] proc: array: drop stale FIXME about RCU in task_sig()
Posted by Oleg Nesterov 1 month, 2 weeks ago
On 02/15, Jaime Saguillo Revilla wrote:
> task_sig() already wraps the SigQ rlimit read in an explicit RCU
> read-side critical section. Drop the stale FIXME comment and keep using
> task_ucounts() for the ucounts access.
> 
> No functional change.
> 
> Signed-off-by: Jaime Saguillo Revilla <jaime.saguillo@gmail.com>
> ---
>  fs/proc/array.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/proc/array.c b/fs/proc/array.c
> index f447e734612a..90fb0c6b5f99 100644
> --- a/fs/proc/array.c
> +++ b/fs/proc/array.c
> @@ -280,7 +280,7 @@ static inline void task_sig(struct seq_file *m, struct task_struct *p)
>  		blocked = p->blocked;
>  		collect_sigign_sigcatch(p, &ignored, &caught);
>  		num_threads = get_nr_threads(p);
> -		rcu_read_lock();  /* FIXME: is this correct? */
> +		rcu_read_lock();
>  		qsize = get_rlimit_value(task_ucounts(p), UCOUNT_RLIMIT_SIGPENDING);

I think that task_ucounts/rcu interaction need cleanups, I'll try to do
this next week(s)...

But as for this change I agree: the code is correct and "FIXME' adds the
unnecessary confusion.

Acked-by: Oleg Nesterov <oleg@redhat.com>
Re: [PATCH] proc: array: drop stale FIXME about RCU in task_sig()
Posted by Jaime 1 month, 2 weeks ago
Thanks, Oleg, for the review and Ack.

I’ll watch for the task_ucounts/RCU cleanup.

Thanks,
Jaime

On Sun, 15 Feb 2026 at 15:55, Oleg Nesterov <oleg@redhat.com> wrote:
>
> On 02/15, Jaime Saguillo Revilla wrote:
> > task_sig() already wraps the SigQ rlimit read in an explicit RCU
> > read-side critical section. Drop the stale FIXME comment and keep using
> > task_ucounts() for the ucounts access.
> >
> > No functional change.
> >
> > Signed-off-by: Jaime Saguillo Revilla <jaime.saguillo@gmail.com>
> > ---
> >  fs/proc/array.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/fs/proc/array.c b/fs/proc/array.c
> > index f447e734612a..90fb0c6b5f99 100644
> > --- a/fs/proc/array.c
> > +++ b/fs/proc/array.c
> > @@ -280,7 +280,7 @@ static inline void task_sig(struct seq_file *m, struct task_struct *p)
> >               blocked = p->blocked;
> >               collect_sigign_sigcatch(p, &ignored, &caught);
> >               num_threads = get_nr_threads(p);
> > -             rcu_read_lock();  /* FIXME: is this correct? */
> > +             rcu_read_lock();
> >               qsize = get_rlimit_value(task_ucounts(p), UCOUNT_RLIMIT_SIGPENDING);
>
> I think that task_ucounts/rcu interaction need cleanups, I'll try to do
> this next week(s)...
>
> But as for this change I agree: the code is correct and "FIXME' adds the
> unnecessary confusion.
>
> Acked-by: Oleg Nesterov <oleg@redhat.com>
>