[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190614150924.GB538958@devbig004.ftw2.facebook.com>
Date: Fri, 14 Jun 2019 08:09:24 -0700
From: Tejun Heo <tj@...nel.org>
To: Toke Høiland-Jørgensen <toke@...hat.com>
Cc: axboe@...nel.dk, newella@...com, clm@...com, josef@...icpanda.com,
dennisz@...com, lizefan@...wei.com, hannes@...xchg.org,
linux-kernel@...r.kernel.org, linux-block@...r.kernel.org,
kernel-team@...com, cgroups@...r.kernel.org, ast@...nel.org,
daniel@...earbox.net, kafai@...com, songliubraving@...com,
yhs@...com, bpf@...r.kernel.org, Josef Bacik <jbacik@...com>
Subject: Re: [PATCH 08/10] blkcg: implement blk-ioweight
Hello, Toke.
On Fri, Jun 14, 2019 at 02:17:45PM +0200, Toke Høiland-Jørgensen wrote:
> One question: How are equal-weight cgroups scheduled relative to each
> other? Or requests from different processes within a single cgroup for
> that matter? FIFO? Round-robin? Something else?
Once each cgroup got their hierarchical weight and current vtime for
the period, they don't talk to each other. Each is expected to do the
right thing on their own. When the period ends, the timer looks at
how the device is performing, how much each used and so on and then
make necessary adjustments. So, there's no direct cross-cgroup
synchronization. Each is throttled to their target level
independently.
Within a single cgroup, the IOs are FIFO. When an IO has enough vtime
credit, it just passes through. When it doesn't, it always waits
behind any other IOs which are already waiting.
Thanks.
--
tejun
Powered by blists - more mailing lists