Received: by 2002:a05:7412:bbc7:b0:fc:a2b0:25d7 with SMTP id kh7csp168417rdb; Thu, 1 Feb 2024 05:29:17 -0800 (PST) X-Google-Smtp-Source: AGHT+IHAmXenV71V06GZC6wEYOD7d6yrpqDJcMZkt4lyr19VDIuhMBY5ATbXr02qNJkU1nLmdvVZ X-Received: by 2002:a05:6808:200e:b0:3be:a57f:a014 with SMTP id q14-20020a056808200e00b003bea57fa014mr5741376oiw.19.1706794157343; Thu, 01 Feb 2024 05:29:17 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706794157; cv=pass; d=google.com; s=arc-20160816; b=F2EABwr+rEjDZvJpirl6xgwtcr4Dh+NliCBzcQGZGum1X6BATmkAt0GRldE1Ez8P3R v35NNUQ6NWqUFSKzwOgW2hmcQ3j0bz5LfbJHg0wWqtPG4qy6+bS2HKhqOzWo5HbfavG9 eCAdbpQYg4SRqP6CzfvU8wFcWF5sbnigRtL5DgMHGrMN7Gkh8XXerb1Bw7/TnHtZmfx/ CSb8hDSxhXZtOwjZP5trKvqKH9YjpJyW6Yn3PmV+lpoofx4I/IXecry0fUd1DUT4ng4S y2oolS9F/5whjHCEoAR+wqwlpr2ByPlVw23YYsLWMuiVL1Qt/ZOUuu+61Nswa/N1U2pH 9gOQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:cc:to :from:dkim-signature:dkim-signature; bh=0PVDSYqJ1G0wsY/wIF6aCbRfwUggmS4ekfVfUCAcpvM=; fh=ptIO/mUKIb4NH7xVy7EWlby/zM1MbFKZjVRgoHIsTnQ=; b=eTW4aCDeFyjPh67d3niYJHe69opQAGybcb0G8rYbKH614o7d2oHd/wVhwNI2dMJ6VZ 6QuB2AUYgHy6EhwCkoKNpJ9PTZLnqcfZJgWitQ0Sv2nbPEKEA6j3KEOjh0fJXYgDxMRF CTCBYv4emblkySw1PjgtwujV1vQwUw2/b0X2KloM37RLE6gEgzIJBH4FpSzF3vHQ09Q3 obMWzvdHxI8MPlYoJnoXNuGtnP2062irG673eL2zDJsakfglVebh8VlSTkaVYQWspMGH LBmJFaUv5Iu5qpb3mxLTyXW+V965W4bjLhoQtPl3AlustvuO73PLUWw6NCCuydpEj5Ed ra9Q==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@suse.com header.s=susede1 header.b=k2fm2hyG; dkim=pass header.i=@suse.com header.s=susede1 header.b=k2fm2hyG; arc=pass (i=1 spf=pass spfdomain=suse.com dkim=pass dkdomain=suse.com dkim=pass dkdomain=suse.com dmarc=pass fromdomain=suse.com); spf=pass (google.com: domain of linux-kernel+bounces-48198-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-48198-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com X-Forwarded-Encrypted: i=1; AJvYcCXj2Gjtf8/aH8OLQbo7Cdqt1Cn5IHKFsEnN1H1IvcKEbdQF0O4AuOABeQW/8zOKZfUZR6TMvBZyoJMTu6tPCVThQpIfbJcuom1JeHmyeA== Return-Path: Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [147.75.48.161]) by mx.google.com with ESMTPS id g10-20020aa79dca000000b006dbdfa8419dsi11714299pfq.400.2024.02.01.05.29.16 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 01 Feb 2024 05:29:17 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-48198-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) client-ip=147.75.48.161; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=susede1 header.b=k2fm2hyG; dkim=pass header.i=@suse.com header.s=susede1 header.b=k2fm2hyG; arc=pass (i=1 spf=pass spfdomain=suse.com dkim=pass dkdomain=suse.com dkim=pass dkdomain=suse.com dmarc=pass fromdomain=suse.com); spf=pass (google.com: domain of linux-kernel+bounces-48198-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-48198-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id 78E70B2B1E7 for ; Thu, 1 Feb 2024 13:10:49 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id EF03F5D466; Thu, 1 Feb 2024 13:09:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b="k2fm2hyG"; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b="k2fm2hyG" Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 85D7E53363; Thu, 1 Feb 2024 13:09:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=195.135.223.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706792990; cv=none; b=kC4Ms7a9X17xkhP5LcOKTXCrWlzql6Fla9LC9fy5JDDQPCwm06wOYTLE67jsYEst7q+kSf9zbrVbYR4cpT/khrJwOlKGzxYkcbEreWZuxes03MP1o4O4dLVAGpTn1J1CvPmzQFPJD+lst5eIqPmmKr0K+dYmwu7DCk5QefAR8U0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706792990; c=relaxed/simple; bh=TtPjt/x5e69CeWXDn7QeqQ1izpa9yi+Ue9HOIxIVdD8=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type; b=jtC2fPBIc8MgGoh2uYO/9fKbPI26pVtKBdLMJpKYDHDBjT9aR2f+BlU0ojGl2/F6l+14JgJ5t05kZhpAoHrne5Szu7YX18/m71mMk/G0/dVmRJavx3eqhVbnLGrmlf3y58MjQEG1+F6hchfgikWgJ2NWmv2AY7YU7PYbln5BeRI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b=k2fm2hyG; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b=k2fm2hyG; arc=none smtp.client-ip=195.135.223.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [10.150.64.98]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 9CE8A1FBB1; Thu, 1 Feb 2024 13:09:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1706792985; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0PVDSYqJ1G0wsY/wIF6aCbRfwUggmS4ekfVfUCAcpvM=; b=k2fm2hyGE6CxZcd2Y/GRhIFRm+yVvlhxpRO+J4FX7YqxZzWuz9MMDZwAO4tq7f/26ozDql VNLxPX0MUUoq2huRB3r7KadFyndwNj1AEak2CaF8VwYHEWVEYKmSGVYA1m4Y44aa2fCK5J uUqxkTZ1CWHGOpNiU6D6fS7o+EZMCPs= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1706792985; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0PVDSYqJ1G0wsY/wIF6aCbRfwUggmS4ekfVfUCAcpvM=; b=k2fm2hyGE6CxZcd2Y/GRhIFRm+yVvlhxpRO+J4FX7YqxZzWuz9MMDZwAO4tq7f/26ozDql VNLxPX0MUUoq2huRB3r7KadFyndwNj1AEak2CaF8VwYHEWVEYKmSGVYA1m4Y44aa2fCK5J uUqxkTZ1CWHGOpNiU6D6fS7o+EZMCPs= Received: from imap2.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 788CD1329F; Thu, 1 Feb 2024 13:09:45 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap2.dmz-prg2.suse.org with ESMTPSA id 25DkHBmYu2VafgAAn2gu4w (envelope-from ); Thu, 01 Feb 2024 13:09:45 +0000 From: =?UTF-8?q?Michal=20Koutn=C3=BD?= To: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org, cake@lists.bufferbloat.net Cc: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Jamal Hadi Salim , Cong Wang , Jiri Pirko , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Eduard Zingerman , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= , Vinicius Costa Gomes , Stephen Hemminger , Simon Horman , Pedro Tammela Subject: [PATCH v5 0/4] net/sched: Load modules via alias Date: Thu, 1 Feb 2024 14:09:39 +0100 Message-ID: <20240201130943.19536-1-mkoutny@suse.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Authentication-Results: smtp-out2.suse.de; none X-Spam-Level: X-Spam-Score: -1.80 X-Spamd-Result: default: False [-1.80 / 50.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; BAYES_HAM(-3.00)[100.00%]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; FREEMAIL_ENVRCPT(0.00)[gmail.com]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TAGGED_RCPT(0.00)[]; MIME_GOOD(-0.10)[text/plain]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_RATELIMIT(0.00)[to_ip_from(RLk7of1183i6tu11bgyseu9iy5)]; RCVD_COUNT_THREE(0.00)[3]; DKIM_SIGNED(0.00)[suse.com:s=susede1]; NEURAL_HAM_SHORT(-0.20)[-1.000]; RCPT_COUNT_TWELVE(0.00)[28]; MID_CONTAINS_FROM(1.00)[]; FUZZY_BLOCKED(0.00)[rspamd.com]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_CC(0.00)[davemloft.net,google.com,kernel.org,redhat.com,mojatatu.com,gmail.com,resnulli.us,iogearbox.net,linux.dev,toke.dk,intel.com,networkplumber.org]; RCVD_TLS_ALL(0.00)[]; SUSPICIOUS_RECIPS(1.50)[] X-Spam-Flag: NO 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 10: protocol ip prio 10 handle 1: cgroup # cls_cgroup module is loaded despite a `blacklist cls_cgroup` entry # in /etc/modprobe.d/*.conf After the change: $ tc filter add dev lo parent 10: protocol ip prio 10 handle 1: cgroup Error: TC classifier not found. We have an error talking to the kernel # explicit/acknowledged (privileged) action is needed $ modprobe cls_cgroup # 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. Its 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 Changes from v3 (https://lore.kernel.org/r/20240112180646.13232-1-mkoutny@suse.com) - rebase on netdev/net-next/main - correct aliases in cls_* modules (wrong sed) - replace repeated prefix strings with a macro - patch also request_module call in qdisc_set_default() Changes from v4 (https://lore.kernel.org/r/20240123135242.11430-1-mkoutny@suse.com) - update example in cover letter to existing module (cls_tcindex->cls_cgroup) - tested that ':-) - remove __stringify in alias macro, net-cls-cgroup instead of net-cls-"cgroup" - pass correct argument to request_module() (Simon) - rebased on netdev-next/main 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 alias of sch_clsact include/net/act_api.h | 2 ++ include/net/pkt_cls.h | 2 ++ include/net/pkt_sched.h | 2 ++ 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_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 | 4 ++-- 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 + 61 files changed, 66 insertions(+), 5 deletions(-) base-commit: 644c64318de0df5f4ea9f00e4b8cc262b343a93f -- 2.43.0