Messages in this thread |  | | From | Jeff Moyer <> | Subject | Re: [PATCH 8/8] cfq-iosched: charge async IOs to the appropriate blkcg's instead of the root | Date | Tue, 09 Jun 2015 11:03:15 -0400 |
| |
Tejun Heo <tj@kernel.org> writes:
> Up until now, all async IOs were queued to async queues which are > shared across the whole request_queue, which means that blkcg resource > control is completely void on async IOs including all writeback IOs. > It was done this way because writeback didn't support writeback and > there was no way of telling which writeback IO belonged to which > cgroup; however, writeback recently became cgroup aware and writeback > bio's are sent down properly tagged with the blkcg's to charge them > against. > > This patch makes async cfq_queues per-cfq_cgroup instead of > per-cfq_data so that each async IO is charged to the blkcg that it was > tagged for instead of unconditionally attributing it to root. > > * cfq_data->async_cfqq and ->async_idle_cfqq are moved to cfq_group > and alloc / destroy paths are updated accordingly. > > * cfq_link_cfqq_cfqg() no longer overrides @cfqg to root for async > queues. > > * check_blkcg_changed() now also invalidates async queues as they no > longer stay the same across cgroups. > > After this patch, cfq's proportional IO control through blkio.weight > works correctly when cgroup writeback is in use. > > Signed-off-by: Tejun Heo <tj@kernel.org> > Cc: Vivek Goyal <vgoyal@redhat.com> > Cc: Arianna Avanzini <avanzini.arianna@gmail.com>
Reviewed-by: Jeff Moyer <jmoyer@redhat.com>
|  |