Thread (4 messages) flat view 4 messages, 4 authors, 2026-01-19

Re: [PATCH net-next] net/sched: cake: avoid separate allocation of struct cake_sched_config

From: Eric Dumazet <edumazet@google.com>
Date: 2026-01-14 07:58:34
Subsystem: cake qdisc, networking [general], tc subsystem, the rest · Maintainers: Toke Høiland-Jørgensen, "David S. Miller", Eric Dumazet, Jakub Kicinski, Paolo Abeni, Jamal Hadi Salim, Jiri Pirko, Linus Torvalds

On Tue, Jan 13, 2026 at 3:32 PM Toke Høiland-Jørgensen [off-list ref] wrote:
Paolo pointed out that we can avoid separately allocating struct
cake_sched_config even in the non-mq case, by embedding it into struct
cake_sched_data. This reduces the complexity of the logic that swaps the
pointers and frees the old value, at the cost of adding 56 bytes to the
latter. Since cake_sched_data is already almost 17k bytes, this seems
like a reasonable tradeoff.

Suggested-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Toke Høiland-Jørgensen <redacted>
---
This is also fixing a panic, so :

Fixes: bc0ce2bad36c ("net/sched: sch_cake: Factor out config variables
into separate struct")

For the record, a fix for the panic would be :
diff --git a/net/sched/sch_cake.c b/net/sched/sch_cake.c
index e30ef7f8ee6862a916acc06e568e37f35fd675b1..742fb850e2afb159f215b263bc36c372552911bc
100644
--- a/net/sched/sch_cake.c
+++ b/net/sched/sch_cake.c
@@ -2825,6 +2825,8 @@ static int cake_init(struct Qdisc *sch, struct
nlattr *opt,
        struct cake_sched_config *q;
        int i, j, err;

+       qdisc_watchdog_init(&qd->watchdog, sch);
+
        q = kzalloc(sizeof(*q), GFP_KERNEL);
        if (!q)
                return -ENOMEM;
@@ -2838,7 +2840,6 @@ static int cake_init(struct Qdisc *sch, struct
nlattr *opt,
        qd->cur_flow  = 0;
        qd->config = q;

-       qdisc_watchdog_init(&qd->watchdog, sch);

        if (opt) {
                err = cake_change(sch, opt, extack);
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help