mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Tejun Heo <tj@kernel.org>
To: Tao Cui <cui.tao@linux.dev>
Cc: 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, eddyz87@gmail.com,
	ast@kernel.org, daniel@iogearbox.net,
	linux-kselftest@vger.kernel.org, Tao Cui <cuitao@kylinos.cn>,
	ameryhung@gmail.com, alexei.starovoitov@gmail.com
Subject: Re: [RFC PATCH v7 0/4] blk-iocost: BPF struct_ops cost model
Date: Mon, 28 Sep 2026 14:42:21 -1000	[thread overview]
Message-ID: <6f80eca83c87b60398110c3a6d735aec@kernel.org> (raw)
In-Reply-To: <20260924054549.2271705-1-cui.tao@linux.dev>

Hello, Tao.

On Thu, 24 Sep 2026 13:45:45 +0800, Tao Cui wrote:

> loading attaches the model to
> that device and switches it away from the builtin linear model,
> detaching the struct_ops restores the builtin model, and the
> struct_ops core owns the program lifetime.

I don't think attaching should enable the controller. v7 currently turns
it on without the queue freeze and quiesce that ioc_qos_write() goes
through. Attaching can create the ioc if needed like an io.cost.model
write does and switch the model under the same freeze and quiesce,
leaving enabling to io.cost.qos.

This is different from what I said on v1, where switching back to the
builtin model detached the struct_ops, but with the controller state left
to io.cost.qos it seems more consistent to keep the attachment independent
too. Writing enable=0 or model=linear wouldn't detach the struct_ops,
model=bpf would switch back to the attached model, and only detaching
would remove it. This is the same as the linear coefficients, which are
kept while the BPF model is in use and take effect again when switched
back.

> iocg_init()/iocg_free()
> callbacks, invoked from the iocg policy init and free paths with
> the same per (cgroup, device) lifetime, let models manage their own
> per-cgroup state.

Existing cgroups don't get iocg_init() on attach and iocg_free() isn't
delivered on detach, so init and free don't pair up. Can you call
iocg_init() for all existing iocgs on attach and iocg_free() for the
remaining ones on detach? That's what sched_ext does with
ops.cgroup_init() and ops.cgroup_exit() on enable and disable.

> Writing "ctrl=bpf" or "model=bpf" is accepted as a no-op so a saved
> configuration still parses; re-attaching the model requires loading
> the struct_ops again, not writing to this file.

ctrl keeps describing the coefficients and never reads back "bpf", so
ctrl=bpf shouldn't be accepted. model=bpf should fail when no model is
attached.

Thanks.

--
tejun

  parent reply	other threads:[~2026-09-29  0:42 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-24  5:45 Tao Cui
2026-09-24  5:45 ` [RFC PATCH v7 1/4] blk-iocost: add BPF struct_ops cost model support Tao Cui
2026-09-24  6:30   ` bot+bpf-ci
2026-09-29  0:42   ` Tejun Heo
2026-09-29 13:42     ` Tao Cui
2026-09-24  5:45 ` [RFC PATCH v7 2/4] selftests/bpf: add iocost cost model test Tao Cui
2026-09-24  6:30   ` bot+bpf-ci
2026-09-24  5:45 ` [RFC PATCH v7 3/4] blk-iocost: add iocost_ioc_tick tracepoint for per-period device summary Tao Cui
2026-09-24  6:17   ` bot+bpf-ci
2026-09-29  0:42   ` Tejun Heo
2026-09-29 13:46     ` Tao Cui
2026-09-24  5:45 ` [RFC PATCH v7 4/4] docs: cgroup-v2: document the iocost BPF cost model attachment Tao Cui
2026-09-29  0:42 ` Tejun Heo [this message]
2026-09-29 13:39   ` [RFC PATCH v7 0/4] 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=6f80eca83c87b60398110c3a6d735aec@kernel.org \
    --to=tj@kernel.org \
    --cc=alexei.starovoitov@gmail.com \
    --cc=ameryhung@gmail.com \
    --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=eddyz87@gmail.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®