Re: [PATCH for-5.14/block] blkcg: drop CLONE_IO check in blkcg_can_attach()

From: Jens Axboe
Date: Tue May 11 2021 - 15:39:14 EST


On 5/11/21 12:58 PM, Tejun Heo wrote:
> blkcg has always rejected to attach if any of the member tasks has shared
> io_context. The rationale was that io_contexts can be shared across
> different cgroups making it impossible to define what the appropriate
> control behavior should be. However, this check causes more problems than it
> solves:
>
> * The check prevents controller enable and migrations but not CLONE_IO
> itself, which can lead to surprises as the outcome changes depending on
> the order of operations.
>
> * Sharing within a cgroup is fine but the check can't distinguish that. This
> leads to unnecessary conflicts with the recent CLONE_IO usage in io_uring.
>
> io_context sharing doesn't make any difference for rq_qos based controllers
> and the way it's used is safe as long as tasks aren't migrated dynamically
> which is the vast majority of use cases. While we can try to make the check
> more precise to avoid false positives, the added complexity doesn't seem
> worthwhile. Let's just drop blkcg_can_attach().

Applied, thanks.

--
Jens Axboe