From: Gao Xiang <hsiangkao@linux.alibaba.com>
To: Joel Fernandes <joel@joelfernandes.org>
Cc: kernel-team@android.com, paulmck@kernel.org,
Will Shiu <Will.Shiu@mediatek.com>,
linux-erofs@lists.ozlabs.org, Boqun Feng <boqun.feng@gmail.com>,
Lai Jiangshan <jiangshanlai@gmail.com>,
Josh Triplett <josh@joshtriplett.org>,
Steven Rostedt <rostedt@goodmis.org>,
linux-kernel@vger.kernel.org, rcu@vger.kernel.org,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
linux-mediatek@lists.infradead.org,
Zqiang <qiang.zhang1211@gmail.com>,
Neeraj Upadhyay <quic_neeraju@quicinc.com>,
Frederic Weisbecker <frederic@kernel.org>,
linux-arm-kernel@lists.infradead.org,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>
Subject: Re: [PATCH v1] rcu: Fix and improve RCU read lock checks when !CONFIG_DEBUG_LOCK_ALLOC
Date: Fri, 14 Jul 2023 21:51:16 +0800 [thread overview]
Message-ID: <fccca41d-8a72-27cf-e589-409f54cd5811@linux.alibaba.com> (raw)
In-Reply-To: <CAEXW_YQCpUsPz24H4Mux6wOH1=RFRR-gsXLFTbJ37MgUJo3kCw@mail.gmail.com>
On 2023/7/14 21:42, Joel Fernandes wrote:
> On Thu, Jul 13, 2023 at 11:17 PM Gao Xiang <hsiangkao@linux.alibaba.com> wrote:
>>
>>
>>
>> On 2023/7/14 10:16, Paul E. McKenney wrote:
>>> On Thu, Jul 13, 2023 at 09:33:35AM -0700, Paul E. McKenney wrote:
>>>> On Thu, Jul 13, 2023 at 11:33:24AM -0400, Joel Fernandes wrote:
>>
>> ...
>>
>>>>>
>>>>> >From what Sandeep described, the code path is in an RCU reader. My
>>>>> question is more, why doesn't it use SRCU instead since it clearly
>>>>> does so if BLK_MQ_F_BLOCKING. What are the tradeoffs? IMHO, a deeper
>>>>> dive needs to be made into that before concluding that the fix is to
>>>>> use rcu_read_lock_any_held().
>>>>
>>>> How can this be solved?
>>>>
>>>> 1. Always use a workqueue. Simple, but is said to have performance
>>>> issues.
>>>>
>>>> 2. Pass a flag in that indicates whether or not the caller is in an
>>>> RCU read-side critical section. Conceptually simple, but might
>>>> or might not be reasonable to actually implement in the code as
>>>> it exists now. (You tell me!)
>>>>
>>>> 3. Create a function in z_erofs that gives you a decent
>>>> approximation, maybe something like the following.
>>>>
>>>> 4. Other ideas here.
>>>
>>> 5. #3 plus make the corresponding Kconfig option select
>>> PREEMPT_COUNT, assuming that any users needing compression in
>>> non-preemptible kernels are OK with PREEMPT_COUNT being set.
>>> (Some users of non-preemptible kernels object strenuously
>>> to the added overhead from CONFIG_PREEMPT_COUNT=y.)
>>
>> I'm not sure if it's a good idea
>
> I think it is a fine idea.
>
>> we need to work on
>> CONFIG_PREEMPT_COUNT=n (why not?), we could just always trigger a
>> workqueue for this.
>>
>
> So CONFIG_PREEMPT_COUNT=n users don't deserve good performance? ;-)
I'm not sure if non-preemptible kernel users really care about
such sensitive latencies, I don't know, my 2 cents.
Thanks,
Gao Xiang
>
> thanks,
>
> - Joel
WARNING: multiple messages have this Message-ID (diff)
From: Gao Xiang <hsiangkao@linux.alibaba.com>
To: Joel Fernandes <joel@joelfernandes.org>
Cc: paulmck@kernel.org, Sandeep Dhavale <dhavale@google.com>,
Frederic Weisbecker <frederic@kernel.org>,
Neeraj Upadhyay <quic_neeraju@quicinc.com>,
Josh Triplett <josh@joshtriplett.org>,
Boqun Feng <boqun.feng@gmail.com>,
Steven Rostedt <rostedt@goodmis.org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Lai Jiangshan <jiangshanlai@gmail.com>,
Zqiang <qiang.zhang1211@gmail.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>,
linux-erofs@lists.ozlabs.org, xiang@kernel.org,
Will Shiu <Will.Shiu@mediatek.com>,
kernel-team@android.com, rcu@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org
Subject: Re: [PATCH v1] rcu: Fix and improve RCU read lock checks when !CONFIG_DEBUG_LOCK_ALLOC
Date: Fri, 14 Jul 2023 21:51:16 +0800 [thread overview]
Message-ID: <fccca41d-8a72-27cf-e589-409f54cd5811@linux.alibaba.com> (raw)
In-Reply-To: <CAEXW_YQCpUsPz24H4Mux6wOH1=RFRR-gsXLFTbJ37MgUJo3kCw@mail.gmail.com>
On 2023/7/14 21:42, Joel Fernandes wrote:
> On Thu, Jul 13, 2023 at 11:17 PM Gao Xiang <hsiangkao@linux.alibaba.com> wrote:
>>
>>
>>
>> On 2023/7/14 10:16, Paul E. McKenney wrote:
>>> On Thu, Jul 13, 2023 at 09:33:35AM -0700, Paul E. McKenney wrote:
>>>> On Thu, Jul 13, 2023 at 11:33:24AM -0400, Joel Fernandes wrote:
>>
>> ...
>>
>>>>>
>>>>> >From what Sandeep described, the code path is in an RCU reader. My
>>>>> question is more, why doesn't it use SRCU instead since it clearly
>>>>> does so if BLK_MQ_F_BLOCKING. What are the tradeoffs? IMHO, a deeper
>>>>> dive needs to be made into that before concluding that the fix is to
>>>>> use rcu_read_lock_any_held().
>>>>
>>>> How can this be solved?
>>>>
>>>> 1. Always use a workqueue. Simple, but is said to have performance
>>>> issues.
>>>>
>>>> 2. Pass a flag in that indicates whether or not the caller is in an
>>>> RCU read-side critical section. Conceptually simple, but might
>>>> or might not be reasonable to actually implement in the code as
>>>> it exists now. (You tell me!)
>>>>
>>>> 3. Create a function in z_erofs that gives you a decent
>>>> approximation, maybe something like the following.
>>>>
>>>> 4. Other ideas here.
>>>
>>> 5. #3 plus make the corresponding Kconfig option select
>>> PREEMPT_COUNT, assuming that any users needing compression in
>>> non-preemptible kernels are OK with PREEMPT_COUNT being set.
>>> (Some users of non-preemptible kernels object strenuously
>>> to the added overhead from CONFIG_PREEMPT_COUNT=y.)
>>
>> I'm not sure if it's a good idea
>
> I think it is a fine idea.
>
>> we need to work on
>> CONFIG_PREEMPT_COUNT=n (why not?), we could just always trigger a
>> workqueue for this.
>>
>
> So CONFIG_PREEMPT_COUNT=n users don't deserve good performance? ;-)
I'm not sure if non-preemptible kernel users really care about
such sensitive latencies, I don't know, my 2 cents.
Thanks,
Gao Xiang
>
> thanks,
>
> - Joel
WARNING: multiple messages have this Message-ID (diff)
From: Gao Xiang <hsiangkao@linux.alibaba.com>
To: Joel Fernandes <joel@joelfernandes.org>
Cc: paulmck@kernel.org, Sandeep Dhavale <dhavale@google.com>,
Frederic Weisbecker <frederic@kernel.org>,
Neeraj Upadhyay <quic_neeraju@quicinc.com>,
Josh Triplett <josh@joshtriplett.org>,
Boqun Feng <boqun.feng@gmail.com>,
Steven Rostedt <rostedt@goodmis.org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Lai Jiangshan <jiangshanlai@gmail.com>,
Zqiang <qiang.zhang1211@gmail.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>,
linux-erofs@lists.ozlabs.org, xiang@kernel.org,
Will Shiu <Will.Shiu@mediatek.com>,
kernel-team@android.com, rcu@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org
Subject: Re: [PATCH v1] rcu: Fix and improve RCU read lock checks when !CONFIG_DEBUG_LOCK_ALLOC
Date: Fri, 14 Jul 2023 21:51:16 +0800 [thread overview]
Message-ID: <fccca41d-8a72-27cf-e589-409f54cd5811@linux.alibaba.com> (raw)
In-Reply-To: <CAEXW_YQCpUsPz24H4Mux6wOH1=RFRR-gsXLFTbJ37MgUJo3kCw@mail.gmail.com>
On 2023/7/14 21:42, Joel Fernandes wrote:
> On Thu, Jul 13, 2023 at 11:17 PM Gao Xiang <hsiangkao@linux.alibaba.com> wrote:
>>
>>
>>
>> On 2023/7/14 10:16, Paul E. McKenney wrote:
>>> On Thu, Jul 13, 2023 at 09:33:35AM -0700, Paul E. McKenney wrote:
>>>> On Thu, Jul 13, 2023 at 11:33:24AM -0400, Joel Fernandes wrote:
>>
>> ...
>>
>>>>>
>>>>> >From what Sandeep described, the code path is in an RCU reader. My
>>>>> question is more, why doesn't it use SRCU instead since it clearly
>>>>> does so if BLK_MQ_F_BLOCKING. What are the tradeoffs? IMHO, a deeper
>>>>> dive needs to be made into that before concluding that the fix is to
>>>>> use rcu_read_lock_any_held().
>>>>
>>>> How can this be solved?
>>>>
>>>> 1. Always use a workqueue. Simple, but is said to have performance
>>>> issues.
>>>>
>>>> 2. Pass a flag in that indicates whether or not the caller is in an
>>>> RCU read-side critical section. Conceptually simple, but might
>>>> or might not be reasonable to actually implement in the code as
>>>> it exists now. (You tell me!)
>>>>
>>>> 3. Create a function in z_erofs that gives you a decent
>>>> approximation, maybe something like the following.
>>>>
>>>> 4. Other ideas here.
>>>
>>> 5. #3 plus make the corresponding Kconfig option select
>>> PREEMPT_COUNT, assuming that any users needing compression in
>>> non-preemptible kernels are OK with PREEMPT_COUNT being set.
>>> (Some users of non-preemptible kernels object strenuously
>>> to the added overhead from CONFIG_PREEMPT_COUNT=y.)
>>
>> I'm not sure if it's a good idea
>
> I think it is a fine idea.
>
>> we need to work on
>> CONFIG_PREEMPT_COUNT=n (why not?), we could just always trigger a
>> workqueue for this.
>>
>
> So CONFIG_PREEMPT_COUNT=n users don't deserve good performance? ;-)
I'm not sure if non-preemptible kernel users really care about
such sensitive latencies, I don't know, my 2 cents.
Thanks,
Gao Xiang
>
> thanks,
>
> - Joel
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-07-14 13:51 UTC|newest]
Thread overview: 117+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-11 23:38 [PATCH v1] rcu: Fix and improve RCU read lock checks when !CONFIG_DEBUG_LOCK_ALLOC Sandeep Dhavale via Linux-erofs
2023-07-11 23:38 ` Sandeep Dhavale
2023-07-11 23:38 ` Sandeep Dhavale
2023-07-12 17:02 ` Joel Fernandes
2023-07-12 17:02 ` Joel Fernandes
2023-07-12 17:02 ` Joel Fernandes
2023-07-12 21:20 ` Sandeep Dhavale via Linux-erofs
2023-07-12 21:20 ` Sandeep Dhavale
2023-07-12 21:20 ` Sandeep Dhavale
2023-07-13 0:32 ` Joel Fernandes
2023-07-13 0:32 ` Joel Fernandes
2023-07-13 0:32 ` Joel Fernandes
2023-07-13 2:02 ` Gao Xiang
2023-07-13 2:02 ` Gao Xiang
2023-07-13 2:02 ` Gao Xiang
2023-07-13 2:10 ` Gao Xiang
2023-07-13 2:10 ` Gao Xiang
2023-07-13 2:10 ` Gao Xiang
2023-07-13 2:16 ` Joel Fernandes
2023-07-13 2:16 ` Joel Fernandes
2023-07-13 2:16 ` Joel Fernandes
2023-07-13 4:27 ` Paul E. McKenney
2023-07-13 4:27 ` Paul E. McKenney
2023-07-13 4:27 ` Paul E. McKenney
2023-07-13 4:41 ` Gao Xiang
2023-07-13 4:41 ` Gao Xiang
2023-07-13 4:41 ` Gao Xiang
2023-07-13 4:52 ` Paul E. McKenney
2023-07-13 4:52 ` Paul E. McKenney
2023-07-13 4:52 ` Paul E. McKenney
2023-07-13 4:59 ` Gao Xiang
2023-07-13 4:59 ` Gao Xiang
2023-07-13 4:59 ` Gao Xiang
2023-07-13 14:07 ` Joel Fernandes
2023-07-13 14:07 ` Joel Fernandes
2023-07-13 14:07 ` Joel Fernandes
2023-07-13 14:34 ` Gao Xiang
2023-07-13 14:34 ` Gao Xiang
2023-07-13 14:34 ` Gao Xiang
2023-07-13 15:33 ` Joel Fernandes
2023-07-13 15:33 ` Joel Fernandes
2023-07-13 15:33 ` Joel Fernandes
2023-07-13 16:09 ` Alan Huang
2023-07-13 16:09 ` Alan Huang
2023-07-13 16:09 ` Alan Huang
2023-07-13 18:14 ` Paul E. McKenney
2023-07-13 18:14 ` Paul E. McKenney
2023-07-13 18:14 ` Paul E. McKenney
2023-07-13 19:00 ` Gao Xiang
2023-07-13 19:00 ` Gao Xiang
2023-07-13 19:00 ` Gao Xiang
2023-07-13 22:27 ` Paul E. McKenney
2023-07-13 22:27 ` Paul E. McKenney
2023-07-13 22:27 ` Paul E. McKenney
2023-07-13 16:33 ` Paul E. McKenney
2023-07-13 16:33 ` Paul E. McKenney
2023-07-13 16:33 ` Paul E. McKenney
2023-07-13 17:05 ` Sandeep Dhavale via Linux-erofs
2023-07-13 17:05 ` Sandeep Dhavale
2023-07-13 17:05 ` Sandeep Dhavale
2023-07-13 17:35 ` Paul E. McKenney
2023-07-13 17:35 ` Paul E. McKenney
2023-07-13 17:35 ` Paul E. McKenney
2023-07-13 18:51 ` Sandeep Dhavale via Linux-erofs
2023-07-13 18:51 ` Sandeep Dhavale
2023-07-13 18:51 ` Sandeep Dhavale
2023-07-13 22:49 ` Paul E. McKenney
2023-07-13 22:49 ` Paul E. McKenney
2023-07-13 22:49 ` Paul E. McKenney
2023-07-13 23:08 ` Sandeep Dhavale via Linux-erofs
2023-07-13 23:08 ` Sandeep Dhavale
2023-07-13 23:08 ` Sandeep Dhavale
2023-07-13 23:28 ` Paul E. McKenney
2023-07-13 23:28 ` Paul E. McKenney
2023-07-13 23:28 ` Paul E. McKenney
2023-07-14 2:16 ` Paul E. McKenney
2023-07-14 2:16 ` Paul E. McKenney
2023-07-14 2:16 ` Paul E. McKenney
2023-07-14 3:16 ` Gao Xiang
2023-07-14 3:16 ` Gao Xiang
2023-07-14 3:16 ` Gao Xiang
2023-07-14 13:42 ` Joel Fernandes
2023-07-14 13:42 ` Joel Fernandes
2023-07-14 13:42 ` Joel Fernandes
2023-07-14 13:51 ` Gao Xiang [this message]
2023-07-14 13:51 ` Gao Xiang
2023-07-14 13:51 ` Gao Xiang
2023-07-14 14:56 ` Steven Rostedt
2023-07-14 14:56 ` Steven Rostedt
2023-07-14 14:56 ` Steven Rostedt
2023-07-14 15:13 ` Paul E. McKenney
2023-07-14 15:13 ` Paul E. McKenney
2023-07-14 15:13 ` Paul E. McKenney
2023-07-14 15:35 ` Alan Huang
2023-07-14 15:35 ` Alan Huang
2023-07-14 15:35 ` Alan Huang
2023-07-14 15:54 ` Alan Huang
2023-07-14 15:54 ` Alan Huang
2023-07-14 15:54 ` Alan Huang
2023-07-14 17:02 ` Paul E. McKenney
2023-07-14 17:02 ` Paul E. McKenney
2023-07-14 17:02 ` Paul E. McKenney
2023-07-14 18:40 ` Alan Huang
2023-07-14 18:40 ` Alan Huang
2023-07-14 18:40 ` Alan Huang
2023-07-14 18:44 ` Paul E. McKenney
2023-07-14 18:44 ` Paul E. McKenney
2023-07-14 18:44 ` Paul E. McKenney
2023-07-14 19:15 ` Sandeep Dhavale via Linux-erofs
2023-07-14 19:15 ` Sandeep Dhavale
2023-07-14 19:15 ` Sandeep Dhavale
2023-07-14 19:36 ` Paul E. McKenney
2023-07-14 19:36 ` Paul E. McKenney
2023-07-14 19:36 ` Paul E. McKenney
2023-07-13 4:51 ` Gao Xiang
2023-07-13 4:51 ` Gao Xiang
2023-07-13 4:51 ` Gao Xiang
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=fccca41d-8a72-27cf-e589-409f54cd5811@linux.alibaba.com \
--to=hsiangkao@linux.alibaba.com \
--cc=Will.Shiu@mediatek.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=boqun.feng@gmail.com \
--cc=frederic@kernel.org \
--cc=jiangshanlai@gmail.com \
--cc=joel@joelfernandes.org \
--cc=josh@joshtriplett.org \
--cc=kernel-team@android.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-erofs@lists.ozlabs.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=matthias.bgg@gmail.com \
--cc=paulmck@kernel.org \
--cc=qiang.zhang1211@gmail.com \
--cc=quic_neeraju@quicinc.com \
--cc=rcu@vger.kernel.org \
--cc=rostedt@goodmis.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.