Messages in this thread |  | | Subject | Re: [PATCH] blkcg: not hold blkcg lock when deactivating policy. | From | Paolo Valente <> | Date | Wed, 18 Apr 2018 14:45:57 +0200 |
| |
> Il giorno 18 apr 2018, alle ore 11:18, jiang.biao2@zte.com.cn ha scritto: > > 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.
Thank you very much for checking. Then:
Acked-by: Paolo Valente <paolo.valente@linaro.org>
Thanks, Paolo
> 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.:) > > Jiang, > Regards
|  |