From: Jens Axboe <axboe@kernel.dk>
To: jiang.biao2@zte.com.cn, paolo.valente@linaro.org
Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
tj@kernel.org, zhong.weidong@zte.com.cn, wen.yang99@zte.com.cn,
ulf.hansson@linaro.org, linus.walleij@linaro.org,
broonie@kernel.org
Subject: Re: [PATCH] blkcg: not hold blkcg lock when deactivating policy.
Date: Wed, 18 Apr 2018 08:40:20 -0600 [thread overview]
Message-ID: <3a699198-edf4-7337-f5e7-faaa6b058713@kernel.dk> (raw)
In-Reply-To: <201804181718167747438@zte.com.cn>
On 4/18/18 3:18 AM, jiang.biao2@zte.com.cn wrote:
> Hi,
>>> Il giorno 17 apr 2018, alle ore 09:10, Jiang Biao <jiang.biao2@zte.com.cn> ha scritto:
>>>
>>> As described in the comment of blkcg_activate_policy(),
>>> *Update of each blkg is protected by both queue and blkcg locks so
>>> that holding either lock and testing blkcg_policy_enabled() is
>>> always enough for dereferencing policy data.*
>>> with queue lock held, there is no need to hold blkcg lock in
>>> blkcg_deactivate_policy(). Similar case is in
>>> blkcg_activate_policy(), which has removed holding of blkcg lock in
>>> commit 4c55f4f9ad3001ac1fefdd8d8ca7641d18558e23.
>>>
>>
>> Hi,
>> by chance, did you check whether this may cause problems with bfq,
>> being the latter not protected by the queue lock as cfq?
> Checked the bfq code, bfq seems never used blkcg lock derectly, and
> update of blkg in the common code is protected by both queue and
> blkcg locks, so IMHO this patch would not introduce any new problem
> with bfq, even though bfq is not protected by queue lock.
> On the other hand, the locks (queue lock/blkcg lock) used to protected
> the update of blkg seems a bit too heavyweight, especially the queue lock
> which is used too widely may cause races with other contexts. I wonder
> if there is any way to ease the case? e.g. add a new lock for blkg's own.:)
It might make sense to lock it separately, but I would not worry
about it unless it shows up as hot in your testing.
I've applied your patch, thanks.
--
Jens Axboe
next prev parent reply other threads:[~2018-04-18 14:40 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1523949033-91148-1-git-send-email-jiang.biao2@zte.com.cn,661CB1A2-5BAC-439D-BCE2-64F9A0CD280E@linaro.org>
[not found] ` <201804181718167747438@zte.com.cn>
2018-04-18 12:45 ` Paolo Valente
2018-04-18 14:40 ` Jens Axboe [this message]
[not found] <201804190854343346115@zte.com.cn>
2018-04-19 2:09 ` Jens Axboe
2018-04-17 7:10 Jiang Biao
2018-04-17 12:32 ` Paolo Valente
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=3a699198-edf4-7337-f5e7-faaa6b058713@kernel.dk \
--to=axboe@kernel.dk \
--cc=broonie@kernel.org \
--cc=jiang.biao2@zte.com.cn \
--cc=linus.walleij@linaro.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=paolo.valente@linaro.org \
--cc=tj@kernel.org \
--cc=ulf.hansson@linaro.org \
--cc=wen.yang99@zte.com.cn \
--cc=zhong.weidong@zte.com.cn \
/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
all inboxes | Powered by JetHome®