From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mail.toke.dk; spf=pass smtp.mailfrom=; dkim=pass header.d=gmail.com; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=gmail.com policy.dmarc=quarantine Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com [IPv6:2a00:1450:4864:20::429]) by mail.toke.dk (Postfix) with ESMTPS id 3916F6EDEEA for ; Thu, 25 Sep 2025 11:07:04 +0200 (CEST) Received: by mail-wr1-x429.google.com with SMTP id ffacd0b85a97d-3ee1221ceaaso456408f8f.3 for ; Thu, 25 Sep 2025 02:07:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1758791163; x=1759395963; darn=lists.bufferbloat.net; h=content-transfer-encoding:mime-version:user-agent:references :message-id:date:in-reply-to:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=NNrpyJFfgvgCiux0aBl6SIFccp73bP8aAdH+wBEeNY4=; b=dMA1LmCYXUgG3e2viUX9kQo3cxh7LTvTMAs3JNZWCW+snjdzdF1goUe/Ms/ra9C9IG rEtw9v2LfT9T7U3bXLWM+yMxDFBjBJ5OcaUYfu8wlvs0x1yhrgPiZbcqhF7sAct1anzA Wtv3YI7xsIzOPLuIFiYVuhXogUTsR3bAUPd0rIFgZsEvEQmprry6/g6vBFRXuYONsz+e d3diliPZd/xqxrRIbYSuF/nnXjgTkPDSXs1UVqDcpnipKeZDUFRCzHlKKLni0lcS1A3o sdVbe8IXzP0TddgPzwAodavLX9VCr4e2YZE5hAHhVWtSSNxaexHXA7v1jG+N4j3mIz8X s02Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758791163; x=1759395963; h=content-transfer-encoding:mime-version:user-agent:references :message-id:date:in-reply-to:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=NNrpyJFfgvgCiux0aBl6SIFccp73bP8aAdH+wBEeNY4=; b=sVOWQ5rgoBOwZVSUhvlhdfCJOk+cEVpQruCitZj3Nr1JI9SyJVy2LOAcLHHXe1GVE6 TIFQCmFEghdVrN1X4m7PRWSSXjBfbJ3YJfLWQnepydqJFh8cGdC0E4O1Fnx2yNh8AyHP 5uvZHC+SSv1k0wP9VkE2Iq9Ny8Ng4Gipz7Qxbe5zOjx53JBABMY8LsXkwAOU8UHkXFED 4CAcupICwjgpI/WMbdDpGCFMAyQYEgzinKsNedh0gCAyCgyrtlT9Yp5cBKN+TjTJ6CEv RAflDU908i9RXsjObmqf0duzsC1I5vRhsMNl8E7Qcqx23V6MMhnKl80CFNmYOH4YfHKn 7r8g== X-Forwarded-Encrypted: i=1; AJvYcCWiGlWuyxuKZo8t1DvN3G0sr2MOJJbspZpjD+yeBLIgbnR4Xh4GqKWIqMZ233Td1wdjEbyo@lists.bufferbloat.net X-Gm-Message-State: AOJu0Yy7MokFqBr8j+pDeIr1wseGbomilp7hJhmtoffRC09Z5F6IlmhN D9wnm//jfxPEhay0RINjWaOVevoazExMC2F+ncrmnnlSc5Irk+90Ykoj X-Gm-Gg: ASbGncus4NSScRzEY7vWm5UfhJUWMNO+9d8CQy9q8IRCTStQFJ/F1DYwBxYJkB4Y2AD vu6xXLRnjqeBBaqtxS2/jN6CuYYwMFTX9qMDcOlZNCt7fGo9lbqDyYqkuqgY/ykOn5CDZk+B0RJ 5f4Q/rvXPU8MSvrD3HBDmPrUdtfRyyTCe/paJpSjqUXLCJYB8U1Egaj0HpxYMc+xQIGLntKJfdS dW7xuCBoCzOaC+8ZVGbtrK2Egnwj8X6flKSRNL2DjbVE6FQt1bFyg0W6VsYwX3Jq6xSJI17nuqf 1eV+aTxpy+3AUGUuxyh9m2rqZvXnQQ36PciCeIjo/UpLklk5YgLWr+i/Np6rG+wz4+sZl0Hzufv xQpgehWs6kgpDNjG2Apapyl9uR6u7O382mg== X-Google-Smtp-Source: AGHT+IEm9MAwcQUDDCAI0PtQDJs+W1QfdU8z4dmmvXWEahWVep9Lfg7Z7aitwOlHvjoD9h5aALX1Cw== X-Received: by 2002:a05:6000:2308:b0:3ea:c360:ff88 with SMTP id ffacd0b85a97d-40e4ba3a4e9mr2572484f8f.31.1758791162616; Thu, 25 Sep 2025 02:06:02 -0700 (PDT) Received: from imac ([2a02:8010:60a0:0:7065:f39a:cc4:890d]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-40fc5602eccsm2165854f8f.40.2025.09.25.02.06.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Sep 2025 02:06:02 -0700 (PDT) From: Donald Hunter To: Toke =?utf-8?Q?H=C3=B8iland-J=C3=B8rgensen?= Cc: Toke =?utf-8?Q?H=C3=B8iland-J=C3=B8rgensen?= , Jamal Hadi Salim , Cong Wang , Jiri Pirko , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Jonas =?utf-8?Q?K=C3=B6ppeler?= , cake@lists.bufferbloat.net, netdev@vger.kernel.org In-Reply-To: <20250924-mq-cake-sub-qdisc-v1-4-43a060d1112a@redhat.com> Date: Thu, 25 Sep 2025 10:04:58 +0100 Message-ID: References: <20250924-mq-cake-sub-qdisc-v1-0-43a060d1112a@redhat.com> <20250924-mq-cake-sub-qdisc-v1-4-43a060d1112a@redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-MailFrom: donald.hunter@gmail.com X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation Message-ID-Hash: U5TKY32AVLOGYMTHV6WM5IASWRJMNJMI X-Message-ID-Hash: U5TKY32AVLOGYMTHV6WM5IASWRJMNJMI X-Mailman-Approved-At: Thu, 25 Sep 2025 15:51:22 +0200 X-Mailman-Version: 3.3.10 Precedence: list Subject: [Cake] Re: [PATCH RFC net-next 4/4] net/sched: sch_cake: share shaper state across sub-instances of cake_mq List-Id: Cake - FQ_codel the next generation Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Toke H=C3=B8iland-J=C3=B8rgensen writes: > From: Jonas K=C3=B6ppeler > > This commit adds shared shaper state across the cake instances beneath a > cake_mq qdisc. It works by periodically tracking the number of active > instances, and scaling the configured rate by the number of active > queues. > > The scan is lockless and simply reads the qlen and the last_active state > variable of each of the instances configured beneath the parent cake_mq > instance. Locking is not required since the values are only updated by > the owning instance, and eventual consistency is sufficient for the > purpose of estimating the number of active queues. > > The interval for scanning the number of active queues is configurable > and defaults to 200 us. We found this to be a good tradeoff between > overhead and response time. For a detailed analysis of this aspect see > the Netdevconf talk: > > https://netdevconf.info/0x19/docs/netdev-0x19-paper16-talk-paper.pdf > > Signed-off-by: Jonas K=C3=B6ppeler > Signed-off-by: Toke H=C3=B8iland-J=C3=B8rgensen > --- > include/uapi/linux/pkt_sched.h | 2 ++ > net/sched/sch_cake.c | 67 ++++++++++++++++++++++++++++++++++++= ++++++ > 2 files changed, 69 insertions(+) > > diff --git a/include/uapi/linux/pkt_sched.h b/include/uapi/linux/pkt_sche= d.h > index c2da76e78badebbdf7d5482cef1a3132aec99fe1..a4aa812bfbe86424c502de5bb= 2e5b1429b440088 100644 > --- a/include/uapi/linux/pkt_sched.h > +++ b/include/uapi/linux/pkt_sched.h > @@ -1014,6 +1014,7 @@ enum { > TCA_CAKE_ACK_FILTER, > TCA_CAKE_SPLIT_GSO, > TCA_CAKE_FWMARK, > + TCA_CAKE_SYNC_TIME, > __TCA_CAKE_MAX > }; > #define TCA_CAKE_MAX (__TCA_CAKE_MAX - 1) > @@ -1036,6 +1037,7 @@ enum { > TCA_CAKE_STATS_DROP_NEXT_US, > TCA_CAKE_STATS_P_DROP, > TCA_CAKE_STATS_BLUE_TIMER_US, > + TCA_CAKE_STATS_ACTIVE_QUEUES, > __TCA_CAKE_STATS_MAX > }; > #define TCA_CAKE_STATS_MAX (__TCA_CAKE_STATS_MAX - 1) Hi Toke, Could you include this diff in the patch to keep the ynl spec up to date? diff --git a/Documentation/netlink/specs/tc.yaml b/Documentation/netlink/sp= ecs/tc.yaml index b398f7a46dae..f0edc84f9613 100644 --- a/Documentation/netlink/specs/tc.yaml +++ b/Documentation/netlink/specs/tc.yaml @@ -2153,6 +2153,9 @@ attribute-sets: - name: fwmark type: u32 + - + name: sync-time + type: u32 - name: cake-stats-attrs name-prefix: tca-cake-stats- @@ -2207,6 +2210,9 @@ attribute-sets: - name: blue-timer-us type: s32 + - + name: active-queues + type: u32 - name: cake-tin-stats-attrs name-prefix: tca-cake-tin-stats-