On Thu, Jan 05, 2023 at 09:52:29PM +0800, Yu Kuai wrote: > Hi, > > 在 2023/01/05 18:45, Michal Koutný 写道: > > On Thu, Jan 05, 2023 at 09:43:02AM +0800, Yu Kuai <yukuai1@xxxxxxxxxxxxxxx> wrote: > > > This is based only on code review, currently the only negative effects > > > is that root blkg from blk-throtl won't call pd_online_fn(). > > > > Good, that's a NOP and there are no other uses of pd_online_fn. > > > > I wonder are the separate pd_init_fn and pd_online_fn callbacks > > necessary today? > > I think online can combine to init, consider that only blk-throttle > implement pd_online_fn(), but I'm not sure... > > It seems to me the policies(bfq, iocost...) seem don't honor how pd > apis works: alloc->init->online->offline->free, bfq combines online to > init, iocost combines offline to free, ... So, the distinction between alloc and online is that a pd which gets allocated may be freed without ever going online if later allocations fail. This is following cgroup init/exit pattern. Maybe it's a bit too elaborate but the distinction is meaningful, at least in principle. What seems truly spurious is pd_init_fn(). All that pd_init_fn() can do should be achievable between pd_alloc_fn() and pd_online_fn(). The overlap seems at least partially historical and we used to have pd_exit_fn() too. So, yeah, getting rid of pd_init_fn() would be a nice first step. Thanks. -- tejun