Re: [PATCH v2 1/2] blk-iocost: add refcounting for iocg

From: Yu Kuai
Date: Tue Jan 10 2023 - 20:36:41 EST


Hi,

在 2023/01/11 2:36, Tejun Heo 写道:
Hello,

On Tue, Jan 10, 2023 at 09:39:44AM +0800, Yu Kuai wrote:
As I tried to explain before, we can make sure blkg_free() is called
in order, but blkg_free() from remove cgroup can concurrent with
deactivate policy, and we can't guarantee the order of ioc_pd_free()
that is called both from blkg_free() and blkcg_deactivate_policy().
Hence I don't think #3 is possible.

Hahaha, sorry that I keep forgetting that. This doesn't really feel like
that important or difficult part of the problem tho. Can't it be solved by
synchronizing blkg free work item against the deactivate path with a mutex?


I'm not sure, of course this can fix the problem, but two spinlock
'blkcg->lock' and 'q->queue_lock' are used to protect blkg_destroy()
currently, add a mutex(disk level?) requires a refactor, which seems
complex to me.

Thanks,
Kuai