From: Tejun Heo <tj@kernel.org>
To: Tao Cui <cui.tao@linux.dev>
Cc: tj@kernel.org, josef@toxicopanda.com, axboe@kernel.dk,
cgroups@vger.kernel.org, linux-block@vger.kernel.org,
linux-kernel@vger.kernel.org, bpf@vger.kernel.org,
andrii@kernel.org, ast@kernel.org, daniel@iogearbox.net,
linux-kselftest@vger.kernel.org, Tao Cui <cuitao@kylinos.cn>
Subject: Re: [RFC PATCH 0/8] blk-iocost: BPF struct_ops cost model
Date: Tue, 08 Sep 2026 10:31:11 -1000 [thread overview]
Message-ID: <178889947167.2.14514677804554939704@kernel.org> (raw)
In-Reply-To: <20260908100143.47598-1-cui.tao@linux.dev>
Hello, Tao.
On Tue, 08 Sep 2026 18:01:35 +0800, Tao Cui wrote:
> 4. One model system-wide vs named models selectable per device (as
> tcp-cc names are per-socket)?
The struct_ops instance should be per-device. Loading a model for a device
should switch it to BPF automatically. Switching back to the builtin model
should detach the struct_ops.
> 2. Per-cgroup state lifetime: iocg_id is the css id and is recycled
> once the cgroup is removed, so models must treat it as a
> transient key. Does the interface need a release(iocg_id)
> callback so models can clean up per-cgroup state instead of
> detecting reuse, or is per-cgroup bpf local storage, which
> carries its own lifetime, the better home for model state?
I'd pass blkcg as a kptr and add online/offline callbacks so the model can
manage its per-cgroup state.
> return value of 0 delegates the IO back to the builtin formula, so a
> model which only handles some IO types cannot make the rest free.
I don't think mixing BPF and builtin pricing makes sense, either per IO or
between charging and request sizing. It seems convoluted and error-prone.
Implementing the linear model in BPF is straightforward.
Please combine the interface, registration, dispatch and configuration
changes into one patch. These patches are small and implement one feature.
Thanks.
--
tejun
next prev parent reply other threads:[~2026-09-08 21:03 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-08 10:01 [RFC PATCH 0/8] blk-iocost: BPF struct_ops cost model Tao Cui
2026-09-08 10:01 ` [RFC PATCH 1/8] blk-iocost: add iocost_ioc_tick tracepoint for per-period device summary Tao Cui
2026-09-08 10:01 ` [RFC PATCH 2/8] blk-iocost: define iocost_model_ops cost model interface Tao Cui
2026-09-08 10:13 ` sashiko-bot
2026-09-08 20:31 ` Tejun Heo
2026-09-08 10:01 ` [RFC PATCH 3/8] blk-iocost: implement BPF struct_ops registration Tao Cui
2026-09-08 20:31 ` Tejun Heo
2026-09-08 10:01 ` [RFC PATCH 4/8] blk-iocost: dispatch cost calculation to registered BPF model Tao Cui
2026-09-08 20:31 ` Tejun Heo
2026-09-08 10:01 ` [RFC PATCH 5/8] blk-iocost: add ctrl=bpf per-device opt-in Tao Cui
2026-09-08 10:01 ` [RFC PATCH 6/8] selftests/bpf: add iocost cost model test Tao Cui
2026-09-08 10:20 ` sashiko-bot
2026-09-08 20:31 ` Tejun Heo
2026-09-08 10:01 ` [RFC PATCH 7/8] selftests/bpf: add multi-stream sequentiality example model Tao Cui
2026-09-08 10:21 ` sashiko-bot
2026-09-08 20:31 ` Tejun Heo
2026-09-08 10:01 ` [RFC PATCH 8/8] docs: cgroup-v2: document io.cost ctrl=bpf option Tao Cui
2026-09-08 20:31 ` Tejun Heo [this message]
2026-09-09 13:12 ` [RFC PATCH 0/8] blk-iocost: BPF struct_ops cost model Tao Cui
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178889947167.2.14514677804554939704@kernel.org \
--to=tj@kernel.org \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=axboe@kernel.dk \
--cc=bpf@vger.kernel.org \
--cc=cgroups@vger.kernel.org \
--cc=cui.tao@linux.dev \
--cc=cuitao@kylinos.cn \
--cc=daniel@iogearbox.net \
--cc=josef@toxicopanda.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.