[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240112180646.13232-1-mkoutny@suse.com>
Date: Fri, 12 Jan 2024 19:06:42 +0100
From: Michal Koutný <mkoutny@...e.com>
To: netdev@...r.kernel.org,
linux-kernel@...r.kernel.org,
bpf@...r.kernel.org,
cake@...ts.bufferbloat.net
Cc: "David S . Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>,
Jamal Hadi Salim <jhs@...atatu.com>,
Cong Wang <xiyou.wangcong@...il.com>,
Jiri Pirko <jiri@...nulli.us>,
Alexei Starovoitov <ast@...nel.org>,
Daniel Borkmann <daniel@...earbox.net>,
Andrii Nakryiko <andrii@...nel.org>,
Martin KaFai Lau <martin.lau@...ux.dev>,
Song Liu <song@...nel.org>,
Yonghong Song <yonghong.song@...ux.dev>,
John Fastabend <john.fastabend@...il.com>,
KP Singh <kpsingh@...nel.org>,
Stanislav Fomichev <sdf@...gle.com>,
Hao Luo <haoluo@...gle.com>,
Jiri Olsa <jolsa@...nel.org>,
Toke Høiland-Jørgensen <toke@...e.dk>,
Vinicius Costa Gomes <vinicius.gomes@...el.com>,
Stephen Hemminger <stephen@...workplumber.org>,
Petr Pavlu <ppavlu@...e.cz>,
Michal Kubecek <mkubecek@...e.cz>,
Martin Wilck <mwilck@...e.com>
Subject: [PATCH v3 0/4] net/sched: Load modules via alias
These modules may be loaded lazily without user's awareness and
control. Add respective aliases to modules and request them under these
aliases so that modprobe's blacklisting mechanism (through aliases)
works for them. (The same pattern exists e.g. for filesystem
modules.)
For example (before the change):
$ tc filter add dev lo parent 1: protocol ip prio 1 handle 10 tcindex ...
# cls_tcindex module is loaded despite a `blacklist cls_tcindex` entry
# in /etc/modprobe.d/*.conf
After the change:
$ tc filter add dev lo parent 1: protocol ip prio 1 handle 10 tcindex ...
Unknown filter "tcindex", hence option "..." is unparsable
# explicit/acknowledged (privileged) action is needed
$ modprobe cls_tcindex
# blacklist entry won't apply to this direct modprobe, module is
# loaded with awareness
A considered alternative was invoking `modprobe -b` always from
request_module(), however, dismissed as too intrusive and slightly
confusing in favor of the precedented aliases (the commit 7f78e0351394
("fs: Limit sys_mount to only request filesystem modules.").
User experience suffers in both alternatives. It's improvement is
orthogonal to blacklist honoring.
Changes from v1 (https://lore.kernel.org/r/20231121175640.9981-1-mkoutny@suse.com)
- Treat sch_ and act_ modules analogously to cls_
Changes from v2 (https://lore.kernel.org/r/20231206192752.18989-1-mkoutny@suse.com)
- reorganized commits (one generated commit + manual pre-/post- work)
- used alias names more fitting the existing net- aliases
- more info in commit messages and cover letter
- rebased on current master
Michal Koutný (4):
net/sched: Add helper macros with module names
net/sched: Add module aliases for cls_,sch_,act_ modules
net/sched: Load modules via their alias
net/sched: Remove aliases of act_xt and sch_clsact
include/net/act_api.h | 1 +
include/net/pkt_cls.h | 1 +
include/net/pkt_sched.h | 1 +
net/sched/act_api.c | 2 +-
net/sched/act_bpf.c | 1 +
net/sched/act_connmark.c | 1 +
net/sched/act_csum.c | 1 +
net/sched/act_ct.c | 1 +
net/sched/act_ctinfo.c | 1 +
net/sched/act_gact.c | 1 +
net/sched/act_gate.c | 1 +
net/sched/act_ife.c | 1 +
net/sched/act_ipt.c | 3 ++-
net/sched/act_mirred.c | 1 +
net/sched/act_mpls.c | 1 +
net/sched/act_nat.c | 1 +
net/sched/act_pedit.c | 1 +
net/sched/act_police.c | 1 +
net/sched/act_sample.c | 1 +
net/sched/act_simple.c | 1 +
net/sched/act_skbedit.c | 1 +
net/sched/act_skbmod.c | 1 +
net/sched/act_tunnel_key.c | 1 +
net/sched/act_vlan.c | 1 +
net/sched/cls_api.c | 2 +-
net/sched/cls_basic.c | 1 +
net/sched/cls_bpf.c | 1 +
net/sched/cls_cgroup.c | 1 +
net/sched/cls_flow.c | 1 +
net/sched/cls_flower.c | 1 +
net/sched/cls_fw.c | 1 +
net/sched/cls_matchall.c | 1 +
net/sched/cls_route.c | 1 +
net/sched/cls_u32.c | 1 +
net/sched/sch_api.c | 2 +-
net/sched/sch_cake.c | 1 +
net/sched/sch_cbs.c | 1 +
net/sched/sch_choke.c | 1 +
net/sched/sch_codel.c | 1 +
net/sched/sch_drr.c | 1 +
net/sched/sch_etf.c | 1 +
net/sched/sch_ets.c | 1 +
net/sched/sch_fq.c | 1 +
net/sched/sch_fq_codel.c | 1 +
net/sched/sch_gred.c | 1 +
net/sched/sch_hfsc.c | 1 +
net/sched/sch_hhf.c | 1 +
net/sched/sch_htb.c | 1 +
net/sched/sch_ingress.c | 3 ++-
net/sched/sch_mqprio.c | 1 +
net/sched/sch_multiq.c | 1 +
net/sched/sch_netem.c | 1 +
net/sched/sch_pie.c | 1 +
net/sched/sch_plug.c | 1 +
net/sched/sch_prio.c | 1 +
net/sched/sch_qfq.c | 1 +
net/sched/sch_red.c | 1 +
net/sched/sch_sfb.c | 1 +
net/sched/sch_sfq.c | 1 +
net/sched/sch_skbprio.c | 1 +
net/sched/sch_taprio.c | 1 +
net/sched/sch_tbf.c | 1 +
62 files changed, 64 insertions(+), 5 deletions(-)
--
2.43.0
Powered by blists - more mailing lists