From: Nilay Shroff <nilay@linux.ibm.com>
To: paulmck@kernel.org, Marco Elver <elver@google.com>
Cc: Christoph Hellwig <hch@lst.de>,
linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org,
kbusch@kernel.org, sagi@grimberg.me, axboe@fb.com,
bvanassche@acm.org, gjoyce@linux.ibm.com
Subject: Re: [PATCHv2 05/17] nvme: add Clang context annotations for nvme_ns_head::current_path
Date: Tue, 30 Jun 2026 15:26:40 +0530 [thread overview]
Message-ID: <fa1eb6cd-39e5-4e98-aff0-83733abb5cb4@linux.ibm.com> (raw)
In-Reply-To: <38955e20-0bf3-4c8c-bfc6-352ca1a4d83c@paulmck-laptop>
>>>>
>>>> commit 32c1e63fee171f7ed8cc986ec64f576ee80bccab
>>>> Author: Paul E. McKenney <paulmck@kernel.org>
>>>> Date: Sun Jun 28 09:00:01 2026 -0700
>>>>
>>>> rcu: Mark __rcu_access_pointer() as context_unsafe()
>>>>
>>>> A simple comparison of a pointer returned by rcu_access_pointer() results
>>>> in a context-analysis warning for lockless inspection of the RCU-protected
>>>> (also known as __rcu-protected) pointer. This can be suppressed by
>>>> placing context_unsafe() calls around calls rcu_access_pointer(),
>>>> but this is messy and distracting. This commit therefore wraps the
>>>> underlying __rcu_access_pointer() macro with a call to context_unsafe(),
>>>> thereby informing the context-analysis code that rcu_access_pointer()
>>>> may safely be invoked outside of an RCU read-side critical section.
>>>>
>>>> Reported-by: Christoph Hellwig <hch@lst.de>
>>>> Suggested-by: Marco Elver <elver@google.com>
>>>> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
>>>>
>>>> diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
>>>> index 5e95acc33989b6..e40dc2e20c5b1f 100644
>>>> --- a/include/linux/rcupdate.h
>>>> +++ b/include/linux/rcupdate.h
>>>> @@ -490,12 +490,12 @@ context_unsafe( \
>>>> */
>>>> #define unrcu_pointer(p) __unrcu_pointer(p, __UNIQUE_ID(rcu))
>>>>
>>>> -#define __rcu_access_pointer(p, local, space) \
>>>> +#define __rcu_access_pointer(p, local, space) context_unsafe( \
>>>> ({ \
>>>> typeof(*p) *local = (typeof(*p) *__force)READ_ONCE(p); \
>>>> rcu_check_sparse(p, space); \
>>>> ((typeof(*p) __force __kernel *)(local)); \
>>>> -})
>>>> +}) )
>>>> #define __rcu_dereference_check(p, local, c, space) \
>>>> ({ \
>>>> /* Dependency order vs. p above. */ \
>>>
>>> I have tested the above patch with an __rcu_guarded pointer accessed
>>> outside an RCU read-side critical section while Clang context analysis
>>> is enabled. I can confirm that this change suppresses the context
>>> analysis warning when the pointer is accessed via rcu_access_pointer().
>>>
>>> With that, if you send out this change, please add:
>>>
>>> Tested-by: Nilay Shroff <nilay@linux.ibm.com>
>>
>> Thanks for double-checking.
>>
>> Reviewed-by: Marco Elver <elver@google.com>
>
> Thank you all!
>
> By default, I will push this into the upcoming v7.3 merge window. If you
> need it earlier, we would have to make a case for this being a regression.
> Which I could probably do, but first, is v7.3 too late for you?
>
> Thanx, Paul
I think anyways the current series would not land in the upcoming
kernel v7.2. So if you could push this during v7.3 merge window then
that should be good for us.
Thanks,
--Nilay
next prev parent reply other threads:[~2026-06-30 9:57 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-14 13:15 [PATCHv2 00/17] Support Clang context analysis for NVMe host drivers Nilay Shroff
2026-06-14 13:15 ` [PATCHv2 01/17] nvme: update nvme_passthru_end() signature Nilay Shroff
2026-06-26 6:32 ` Christoph Hellwig
2026-06-14 13:15 ` [PATCHv2 02/17] nvme: add Clang context annotations for nvme_passthru_{start|stop} Nilay Shroff
2026-06-26 6:33 ` Christoph Hellwig
2026-06-26 14:20 ` Nilay Shroff
2026-06-14 13:15 ` [PATCHv2 03/17] nvme: add Clang context annotations for nvme_ns_head::srcu Nilay Shroff
2026-06-26 6:34 ` Christoph Hellwig
2026-06-14 13:15 ` [PATCHv2 04/17] nvme: add Clang context annotations for nvme_ns_head::requeue_list Nilay Shroff
2026-06-26 6:37 ` Christoph Hellwig
2026-06-26 14:24 ` Nilay Shroff
2026-06-14 13:15 ` [PATCHv2 05/17] nvme: add Clang context annotations for nvme_ns_head::current_path Nilay Shroff
2026-06-26 6:40 ` Christoph Hellwig
2026-06-26 15:35 ` Nilay Shroff
2026-06-26 18:36 ` Paul E. McKenney
2026-06-27 15:38 ` Marco Elver
2026-06-27 17:14 ` Paul E. McKenney
2026-06-28 6:00 ` Marco Elver
2026-06-28 16:07 ` Paul E. McKenney
2026-06-29 5:20 ` Nilay Shroff
2026-06-29 8:48 ` Marco Elver
2026-06-29 15:33 ` Paul E. McKenney
2026-06-30 9:56 ` Nilay Shroff [this message]
2026-06-30 14:24 ` Paul E. McKenney
2026-06-29 6:00 ` Marco Elver
2026-06-29 6:04 ` Nilay Shroff
2026-06-14 13:15 ` [PATCHv2 06/17] nvme: add Clang context annotations for nvme_dev::shutdown_lock Nilay Shroff
2026-06-26 6:41 ` Christoph Hellwig
2026-06-14 13:15 ` [PATCHv2 07/17] nvme: add Clang context annotations for nvme_subsystem::lock Nilay Shroff
2026-06-26 6:43 ` Christoph Hellwig
2026-06-26 14:39 ` Nilay Shroff
2026-06-29 12:47 ` Christoph Hellwig
2026-06-29 23:12 ` Marco Elver
2026-06-30 9:53 ` Nilay Shroff
2026-06-14 13:15 ` [PATCHv2 08/17] nvme: add Clang context annotations for nvme_ctrl::ana_lock Nilay Shroff
2026-06-26 6:43 ` Christoph Hellwig
2026-06-14 13:15 ` [PATCHv2 09/17] nvme: add Clang context annotations for nvme_subsystems_lock Nilay Shroff
2026-06-26 6:45 ` Christoph Hellwig
2026-06-26 14:48 ` Nilay Shroff
2026-06-29 12:47 ` Christoph Hellwig
2026-06-14 13:15 ` [PATCHv2 10/17] nvme: add Clang context annotations in fabric.c Nilay Shroff
2026-06-14 13:15 ` [PATCHv2 11/17] nvme: add Clang context annotations for nvme_queue::sq_lock Nilay Shroff
2026-06-26 6:47 ` Christoph Hellwig
2026-06-26 9:50 ` Marco Elver
2026-06-26 15:12 ` Nilay Shroff
2026-06-29 12:48 ` Christoph Hellwig
2026-06-14 13:15 ` [PATCHv2 12/17] nvme: add Clang context annotations for nvme_queue::cq_poll_lock Nilay Shroff
2026-06-26 6:48 ` Christoph Hellwig
2026-06-26 15:22 ` Nilay Shroff
2026-06-29 12:50 ` Christoph Hellwig
2026-06-30 9:26 ` Nilay Shroff
2026-06-30 10:56 ` Marco Elver
2026-06-14 13:15 ` [PATCHv2 13/17] nvme: add Clang context annotations in rdma.c Nilay Shroff
2026-06-14 13:15 ` [PATCHv2 14/17] nvme: fix Clang context analysis warning " Nilay Shroff
2026-06-26 6:49 ` Christoph Hellwig
2026-06-26 15:31 ` Nilay Shroff
2026-06-29 12:50 ` Christoph Hellwig
2026-06-29 22:47 ` Marco Elver
2026-06-30 9:35 ` Nilay Shroff
2026-06-30 10:38 ` Marco Elver
2026-06-14 13:15 ` [PATCHv2 15/17] nvme: add Clang context annotations in tcp.c Nilay Shroff
2026-06-14 13:15 ` [PATCHv2 16/17] nvme: fix Clang context analysis warning " Nilay Shroff
2026-06-14 13:15 ` [PATCHv2 17/17] nvme: enable Clang context analysis support for nvme host driver Nilay Shroff
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=fa1eb6cd-39e5-4e98-aff0-83733abb5cb4@linux.ibm.com \
--to=nilay@linux.ibm.com \
--cc=axboe@fb.com \
--cc=bvanassche@acm.org \
--cc=elver@google.com \
--cc=gjoyce@linux.ibm.com \
--cc=hch@lst.de \
--cc=kbusch@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nvme@lists.infradead.org \
--cc=paulmck@kernel.org \
--cc=sagi@grimberg.me \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox