From patchwork Thu Apr 3 21:10:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cong Wang X-Patchwork-Id: 14037603 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (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 A7F18171E49 for ; Thu, 3 Apr 2025 21:10:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743714651; cv=none; b=bnWkOkokMPHurKRGyCCX1u2mDrnM73dg7VbR4QqLgVPo8rEu+lE8ir5dkrUz9EfJknxJ99+9kcxn/EWyP52q8hZ9MwLFbJA5NpSeu0RGbu6PP1rIbhdTPvv0JnoNurAHPnG4P7/YmRXLPpd9mBJ5zSX+cHXEcTRmSZANJBmFOFs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743714651; c=relaxed/simple; bh=6xAT4FZ8Ia/GP5RFqG5qSyy+IR7iqZyT79R9PR8fpLY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=nUKD7yzLtc5ZYKJ5mzO/DcTO0Xouph9uKHVhP6r/YN/GGSY6kkDxnr/RMcr9mSLbb4t84IGLDgqdPmLvloi58sJ0a+SELUcivp4BO0OGSxAc7CHRUF3N9eu7bbQkG2P/jZY48GAyvY3gsACacHc3DYcYhtCt/nVoIPpZ4anOdtA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Dp7QzFqT; arc=none smtp.client-ip=209.85.214.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Dp7QzFqT" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-2264aefc45dso19388675ad.0 for ; Thu, 03 Apr 2025 14:10:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743714648; x=1744319448; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=COCG/9OD/BcO1OKsCfXyutvS4gXhQL9GdK8U1ubq8lQ=; b=Dp7QzFqTDLgNIzKvNhpXb2q6jTB/OZ5i/Ts5uwW6rygairecy29u7aJcLjAVG3Lyra pJtMFP70QKU3dqw2vShh3mkyZz9NfHmq0RAzizBt3K3rFSKMnizhMF8KeDYpp7Y7AijH KLdPt46nT2QKBmUz7Qr5QfpSAEYxVP5u/K4S+1i+i/KxDqqU9u/u7U/QP7AkPXsH4lki GrimYQQWbFDlNEJTIvHMJbU8dOTTxLrieckLtUa5LtRr22Mnl+mNpeL085oXF7AGkJBk GsyrFfgP46H9/nFGeuTnQBV0n1a1MD2zuUX6UPzPlP4vi5HQTZNA99nsy9pM9I809vGn 2O6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743714648; x=1744319448; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=COCG/9OD/BcO1OKsCfXyutvS4gXhQL9GdK8U1ubq8lQ=; b=mP9mBlc6tZCU6lv9iJcSaBYUUeAePU70SsNWOg4vGbSMNSyqpqQMBPLnj6x2U3Jovr BqAQJYAJlSHLQ4AKeHxwkDDf/PTlOU1rxMTPTVAiluPx0nDp8ufwYnK31cw3apczJkcN so9lFrWq2TKXgGCCITNvQ0+hjYupAGdQaQ9/DXUIv88CTeRM3xStFr8onIjx8I/Q4LGg tCsnheYCMY38teJENhcEhag54KRtZ6Ms0RmHDBc5jMrRSxkTS6qoOCNCh8sviNCtFJ9R sKJNnm85DnlT+I2bkb4FgvChD+gWBr0YemSXDnN6TqvePvnaduG916/KW3pBhhKtb43c Gciw== X-Gm-Message-State: AOJu0YybyMTX0hikKfbiqCdl0QRZyyrAN7qzRLr2E67M9njKFI6hEsLL FtGVWvR0uJ5mbRM6D5wccQNfP20kVspM5qEfI+LXqkWuI/FpGrs/8L5oVg== X-Gm-Gg: ASbGncsdmrh1Lk+zc9NNUOX+rqIEcYhfF8QE0Khj4VqVUF6R8gDMubgNoPydCHe2uN6 0fCaKJRXlSy2vQjpyESkHQXbo81wnEPwigsMj30MHX+3jnfQmx4gvYxryAD0bhepQkal+L7Z83G pixS8m3JLKdFHrv3bMIMtS0eDt8EcEiTMZ4nezcoynq+LOS/zwl8vfsqWMelswLaTqKgvkoSKVx 43nC+ZqneguZ/XvOCPTNSufpZ3iZm1xHlnUJeOYZ8hqYz6TKCwELRPJYi37IKNK35Ty68PSQTRU FsF9VknFlmeYOYxhfga37aWGk8LFjV0o9g0T4/yW+V8p4I841q7zljQ= X-Google-Smtp-Source: AGHT+IHS8S9ue0dtYw1z/gxBfkpCpBoqPE+wVy/3ycbw2NPwhIgA49u7ty/QY0XFDt/aKvafGF8+eg== X-Received: by 2002:a17:902:e749:b0:224:1074:638e with SMTP id d9443c01a7336-22a8a8d3167mr5248955ad.52.1743714648557; Thu, 03 Apr 2025 14:10:48 -0700 (PDT) Received: from pop-os.scu.edu ([129.210.115.104]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-229785ad831sm19367645ad.11.2025.04.03.14.10.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Apr 2025 14:10:48 -0700 (PDT) From: Cong Wang To: netdev@vger.kernel.org Cc: jhs@mojatatu.com, jiri@resnulli.us, victor@mojatatu.com, Cong Wang , Gerrard Tai Subject: [Patch net v2 01/11] sch_htb: make htb_qlen_notify() idempotent Date: Thu, 3 Apr 2025 14:10:23 -0700 Message-Id: <20250403211033.166059-2-xiyou.wangcong@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250403211033.166059-1-xiyou.wangcong@gmail.com> References: <20250403211033.166059-1-xiyou.wangcong@gmail.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org htb_qlen_notify() always deactivates the HTB class and in fact could trigger a warning if it is already deactivated. Therefore, it is not idempotent and not friendly to its callers, like fq_codel_dequeue(). Let's make it idempotent to ease qdisc_tree_reduce_backlog() callers' life. Reported-by: Gerrard Tai Signed-off-by: Cong Wang Reviewed-by: Simon Horman --- net/sched/sch_htb.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/net/sched/sch_htb.c b/net/sched/sch_htb.c index c31bc5489bdd..4b9a639b642e 100644 --- a/net/sched/sch_htb.c +++ b/net/sched/sch_htb.c @@ -1485,6 +1485,8 @@ static void htb_qlen_notify(struct Qdisc *sch, unsigned long arg) { struct htb_class *cl = (struct htb_class *)arg; + if (!cl->prio_activity) + return; htb_deactivate(qdisc_priv(sch), cl); } From patchwork Thu Apr 3 21:10:24 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cong Wang X-Patchwork-Id: 14037604 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) (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 713F81C3C08 for ; Thu, 3 Apr 2025 21:10:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743714653; cv=none; b=JZWJuu0YbyqTv5EcHiViNfXdl0ST2YNTro2j3Qkvg3kJuyWNW3K8C57dVmsl/dt98nDF7p04tJ4B0L5uakdMY5Nf8U3tHi8K10lb5TyxcZjaPreJpIWlGP5U6R9YMVVFVmQjLdeY3N/oe9LZ2pE4lDIid6SixFw9Ya/fVxjWzU0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743714653; c=relaxed/simple; bh=ISaSMzrWByvy0aKtLbM0WfTd5Z2PAmIJUgiNxzgXeIk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=NzKZ48yS6nYvZRZG3dyIzCUHOB3jp89PCeHETIRwelvmczVKCeFzpAMd4hJluXXF9xm4glBJMV+ftmv7igqVT6jAsBbpWfEYBntY89ehad+yUWjrfrYYWKLrtGooMjlml1YC9GWcLX8ZIFW1G+zf0g+JWw2hf8qznuGVUeRf0Yk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Tu9sh0de; arc=none smtp.client-ip=209.85.214.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Tu9sh0de" Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-227b650504fso14335505ad.0 for ; Thu, 03 Apr 2025 14:10:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743714651; x=1744319451; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=zcD927YR4xHTSf6FJJ2CaU42WhtYVC4m/9wxjMe4NXc=; b=Tu9sh0delW0CPG8mjFbVIZCpoiNNEPsmYQEbtOFYMk65KX+KiFnVLGLWjKPwg9Yo6E Gz2/o61kIjI1seQNHtM4AnlGeQcm2t4bDJZIO/gD8y2o1JkBoZqhg7nZLf/NdsGINVys h2wi9uuavJJVFRbyGaeIh8dLgw82I9RdE3VLFgX1Wf4j2mQTmefp7o2OVPPHd2rKY7zQ +CXhkKOIemkuwn2GGnJNWgrz6Pn8kQRBWZ/oHm5l0cOFKAije1b4H3Pcnbfjd0POS0hf XHz/Qig1DxUZxMIxEWU7pPKDF240yvUsFUdmLPTNsNI8WKk1RxXbj84bMl8uXOVWo7Sz i5Kw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743714651; x=1744319451; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zcD927YR4xHTSf6FJJ2CaU42WhtYVC4m/9wxjMe4NXc=; b=mo6N8RR7Zwmr7O9xoLGr8JlCPLjEUQx6D5dDbeiIC7htXBYMBhjbnzCtqAUI24PNHr +o0daTxjFhLsQhFDE6suZD+tIQxflSkG/snARISYn2Pp583+GLvqySdI+/C8oCSaC8z4 PA/u+7AsfyTy+ZMwFnCCH3Ayh3lC3JT6FErFr4hzcUALpE49bDHlB93UeeAmoU02x10r KfgFOU4F6hbg2TROV+O9jCkbj6Bw303y5Y2EPF6U6TsLqYuxtO321O2lmzcnhRMLvgEB 4qJGZcT13iRSfauvuar/Xvy0pZX+uzY1tXyFbx9ALM355wI9Gr7F/rM1U4QXIOMboOGs F1GA== X-Gm-Message-State: AOJu0YwmTdExnDNSsCFnxfVKNYAQvrRukYC/8vqwqEFsEAmodeA+zpON OCSuicOICc6If1NlgqHizQgyRaQUEA6Xv4Urr8W/HFUJv4HzQd77xyJbcQ== X-Gm-Gg: ASbGncu9s0ZIRGRnNKJzLaT931oOT5blGCEZAe14aqRwMhuSVIKChlJt2WAHvEj2u6H L9WqhiC/nrbvvcl5HYHSAUFOD+wU61MGcrIQcWHbHAGApWEB01S2V5av/Xb59PFlsYi5mKbWtWU scwNnO65kF0HTSDi3riPWKy7GTT2xaFLja9Z4z6jKG+vjjPQKttAujMzReo+Y0XbZgIIcR4eBdm +toG0Ax3ZRtga1nV4y+LPv9s+fPgs9PUfzrwbxrXE7GZ6y4BxOh1ldB55F0qYh8j1oLJcfIh/sj Qqp6TnX8tHorR3KgUMq5YAoPd9vKv0lLvs6KRzTdADuS5n24m63861U= X-Google-Smtp-Source: AGHT+IGiA3cCacbtXUuJ7MBg4zRL1kCQ3xNtpJhxQ/FXf/hzYFqOadSRILnE0M/Q115+R2gHmF1GfQ== X-Received: by 2002:a17:902:f542:b0:224:1ec0:8a1d with SMTP id d9443c01a7336-22a8a080716mr6231485ad.30.1743714651261; Thu, 03 Apr 2025 14:10:51 -0700 (PDT) Received: from pop-os.scu.edu ([129.210.115.104]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-229785ad831sm19367645ad.11.2025.04.03.14.10.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Apr 2025 14:10:50 -0700 (PDT) From: Cong Wang To: netdev@vger.kernel.org Cc: jhs@mojatatu.com, jiri@resnulli.us, victor@mojatatu.com, Cong Wang , Gerrard Tai Subject: [Patch net v2 02/11] sch_drr: make drr_qlen_notify() idempotent Date: Thu, 3 Apr 2025 14:10:24 -0700 Message-Id: <20250403211033.166059-3-xiyou.wangcong@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250403211033.166059-1-xiyou.wangcong@gmail.com> References: <20250403211033.166059-1-xiyou.wangcong@gmail.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org drr_qlen_notify() always deletes the DRR class from its active list with list_del(), therefore, it is not idempotent and not friendly to its callers, like fq_codel_dequeue(). Let's make it idempotent to ease qdisc_tree_reduce_backlog() callers' life. Also change other list_del()'s to list_del_init() just to be extra safe. Reported-by: Gerrard Tai Signed-off-by: Cong Wang Reviewed-by: Simon Horman --- net/sched/sch_drr.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/net/sched/sch_drr.c b/net/sched/sch_drr.c index c69b999fae17..e0a81d313aa7 100644 --- a/net/sched/sch_drr.c +++ b/net/sched/sch_drr.c @@ -105,6 +105,7 @@ static int drr_change_class(struct Qdisc *sch, u32 classid, u32 parentid, return -ENOBUFS; gnet_stats_basic_sync_init(&cl->bstats); + INIT_LIST_HEAD(&cl->alist); cl->common.classid = classid; cl->quantum = quantum; cl->qdisc = qdisc_create_dflt(sch->dev_queue, @@ -229,7 +230,7 @@ static void drr_qlen_notify(struct Qdisc *csh, unsigned long arg) { struct drr_class *cl = (struct drr_class *)arg; - list_del(&cl->alist); + list_del_init(&cl->alist); } static int drr_dump_class(struct Qdisc *sch, unsigned long arg, @@ -390,7 +391,7 @@ static struct sk_buff *drr_dequeue(struct Qdisc *sch) if (unlikely(skb == NULL)) goto out; if (cl->qdisc->q.qlen == 0) - list_del(&cl->alist); + list_del_init(&cl->alist); bstats_update(&cl->bstats, skb); qdisc_bstats_update(sch, skb); @@ -431,7 +432,7 @@ static void drr_reset_qdisc(struct Qdisc *sch) for (i = 0; i < q->clhash.hashsize; i++) { hlist_for_each_entry(cl, &q->clhash.hash[i], common.hnode) { if (cl->qdisc->q.qlen) - list_del(&cl->alist); + list_del_init(&cl->alist); qdisc_reset(cl->qdisc); } } From patchwork Thu Apr 3 21:10:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cong Wang X-Patchwork-Id: 14037605 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) (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 975181C5F07 for ; Thu, 3 Apr 2025 21:10:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743714656; cv=none; b=PDg7VOkHHV7qs2S8dtVijXGnc2PqZ9HXSZI2ETAW6hDq9uk5G4XXrIOz6UhHmqjhjRFAmlmmLBpAFLZQlW9ZncwV61QViiLv8qkDWn89OSRuxJzv2/d+4od+GQHhySgx7upLSliAYYAgUDxpD3c4f0wPxfWDJJLuDyYW8JiQVwk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743714656; c=relaxed/simple; bh=hHIYHezDOoxCNpJNOVopdAZG9dE34xIK63RE3y96P7M=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=lP3iX1JBadOrrbMymljQyGEJkzOtp4ngNC246mvNhWcCYiG02YH2eWYhjzjhYY3z3iWPexteOVdY0/PvCUVZmDgS0M3XIgawY3WYzN6SfC7UjQnlaupBP9Zt0JH9k5jRiz1QN4ggHa8b8qgSJhaZEvogk7d2OFppv1MNAtVas8A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=GTZzdIJn; arc=none smtp.client-ip=209.85.214.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GTZzdIJn" Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-223fd89d036so16404715ad.1 for ; Thu, 03 Apr 2025 14:10:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743714653; x=1744319453; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=fwt8GGRRu6e4+a9i4CGYtv0iwbrJOPzYW8+muO/Prik=; b=GTZzdIJn9Y/6/Bb4GRpsZ2Up8SxqE45BWHa106+zKylIvVUIOZy/WnqVEemLip6F4G 2vVxMZ+iHNG1HMIQeACeJuRv+8qqA2yLcmfaZFbzxEN5clZKFuzLnRZz+87SmQHp+4sQ TDGegPxMN4E8iL7RD4Xu+XvKABP99u9jhZ3b6TAjqFArBO69tSfeQYx7oaoRzPdcZQP1 Sm+/YrtDimEyLI9JnZcyDUNlFnBp0oTbgxMBb089OoUVrYKcLdzGuRN1Nn7OoAdy8K/4 o7TPXN0+McUxTTnY1j3qRhe9W6od9uA9fgyHCjioEZc9DvCAkg43QtWEHjLhCSUr3muM UofQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743714653; x=1744319453; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fwt8GGRRu6e4+a9i4CGYtv0iwbrJOPzYW8+muO/Prik=; b=Eajqa1+jVwNHwwXLww4Njc6dlgX3e+lVapZb0n2PpvCl+bAlwJ/JBsLzNXfoei8U+k AEb1efz+TIn8dtR/Vt/YMyQo4Xe4JQKWj1Yyj3x3DaCDkCRa3rci1d3QUIKfFILWYX5L LPTrVvFzk1YA/yYhvW69mKrrKPPHDnCUUTCvb4n7JOZxrD/081vTbws6iX962toKZK/b xK8rUeJHY0yxuCB+ptSMAXWKO9deH8FiqgBW43ZfSKn7hzRV2t2Sy3BTrVf7rFKGKWhJ rQ69Hb2/JFPcBAu6g6Qf10gM+L5+0URVzAA7rdYam62f7wuy95TZ2ElxAJCmNZZtcDUx X4Jg== X-Gm-Message-State: AOJu0Yz64ZaX2hMwJRZktRaSeguoYdLqUBcUr+K0SZauZAKtkwKlhSpG U2WgFDGjvKWdtuFzIdA/uMraH/AjNb81D0zSzGXFq/WHJG98zSVeHtYnoA== X-Gm-Gg: ASbGncuP4R9nL9j3Asp28naHmJ52wp9a98Cz0MJDQhLsZjEtz36sNHHPxMLqsQi/2N5 AJC0HSTgtzW7ve9ksQTDVownHdPxU8sRof515/NAY0GrMwTH6kjHh1ccW8cwaXUmoJkSnzNIXJB J+3c7DSIrDcCGZ9o9Y/8qLeDOH3wWrpRtcJJxD+JlQQ7nTTo6ko9iFhmwXSawK7I3bMZpcwm3ps UHCDkjBfSftjKQuVUxQuGt6TqLP9YSztOZkfoa6JbF2ydk3zHDMDYIVmyvKD43cWxsDeFLvymko 0iw7CMxUhmdqHKBUkBTGQhHlIMz+6eXUuHxiweO5RxRLmFW2eqlLtr8= X-Google-Smtp-Source: AGHT+IHHjbUjF1qaNw2bGPlzT7rka4ZjhLZHFAI8BJCgckyv105tnHYFvhEcgj+beE6HEwxDGv5YVA== X-Received: by 2002:a17:902:e552:b0:21f:3e2d:7d42 with SMTP id d9443c01a7336-22a8a06a041mr7912135ad.23.1743714653454; Thu, 03 Apr 2025 14:10:53 -0700 (PDT) Received: from pop-os.scu.edu ([129.210.115.104]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-229785ad831sm19367645ad.11.2025.04.03.14.10.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Apr 2025 14:10:52 -0700 (PDT) From: Cong Wang To: netdev@vger.kernel.org Cc: jhs@mojatatu.com, jiri@resnulli.us, victor@mojatatu.com, Cong Wang , Gerrard Tai Subject: [Patch net v2 03/11] sch_hfsc: make hfsc_qlen_notify() idempotent Date: Thu, 3 Apr 2025 14:10:25 -0700 Message-Id: <20250403211033.166059-4-xiyou.wangcong@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250403211033.166059-1-xiyou.wangcong@gmail.com> References: <20250403211033.166059-1-xiyou.wangcong@gmail.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org hfsc_qlen_notify() is not idempotent either and not friendly to its callers, like fq_codel_dequeue(). Let's make it idempotent to ease qdisc_tree_reduce_backlog() callers' life: 1. update_vf() decreases cl->cl_nactive, so we can check whether it is non-zero before calling it. 2. eltree_remove() always removes RB node cl->el_node, but we can use RB_EMPTY_NODE() + RB_CLEAR_NODE() to make it safe. Reported-by: Gerrard Tai Signed-off-by: Cong Wang Reviewed-by: Simon Horman --- net/sched/sch_hfsc.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/net/sched/sch_hfsc.c b/net/sched/sch_hfsc.c index c287bf8423b4..ce5045eea065 100644 --- a/net/sched/sch_hfsc.c +++ b/net/sched/sch_hfsc.c @@ -203,7 +203,10 @@ eltree_insert(struct hfsc_class *cl) static inline void eltree_remove(struct hfsc_class *cl) { - rb_erase(&cl->el_node, &cl->sched->eligible); + if (!RB_EMPTY_NODE(&cl->el_node)) { + rb_erase(&cl->el_node, &cl->sched->eligible); + RB_CLEAR_NODE(&cl->el_node); + } } static inline void @@ -1220,7 +1223,8 @@ hfsc_qlen_notify(struct Qdisc *sch, unsigned long arg) /* vttree is now handled in update_vf() so that update_vf(cl, 0, 0) * needs to be called explicitly to remove a class from vttree. */ - update_vf(cl, 0, 0); + if (cl->cl_nactive) + update_vf(cl, 0, 0); if (cl->cl_flags & HFSC_RSC) eltree_remove(cl); } From patchwork Thu Apr 3 21:10:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cong Wang X-Patchwork-Id: 14037606 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) (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 54EF11C84B2 for ; Thu, 3 Apr 2025 21:10:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743714657; cv=none; b=haZQanvzQnjdFsYV5ZLM25jHYwczavIpocCz8/i+Uegd6Xcd/OWroVUSJ415Iorr2Kl0LcyZC0TuSCNF2Om7TNif7VkLkC6x3IEKDb16zLk+OmIG5IbYYu+bdP4cBwhPq9sw9cTNGJkd1XClCm5yYpf814bNDPxN2UTMdrhKMVk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743714657; c=relaxed/simple; bh=r+gikWGzl5MEjUN4eokEcc0n1adpTw2x8VVvehd7OFM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=K95YaqKKZF2xK44L9TQ9yFkdpYhVnFZZNZab/bwN/Gc7JQblxDscJbGlF2nz54Mo0YivQ6Q1HrBnveJwtWgJ5nYSNzdsr2Akxe/kUPQEekEuoSkWkZDmokHP7f/l3x4P1EbUtBZ/U94ifjHqjL2D54t1zmq0m1axfKeh8kcyEXs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=M9JMITgS; arc=none smtp.client-ip=209.85.214.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="M9JMITgS" Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-226185948ffso15286915ad.0 for ; Thu, 03 Apr 2025 14:10:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743714655; x=1744319455; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5gpY+rdcx4DmrGbnf0XYjotvrm4FbCP3RPVGPnvtMgY=; b=M9JMITgSc7IW1cjO1F//6OQJt5wLlM+FT0ro66dhvOo+mQIl0NHrXSDm3fK9Vxy0Wn HTH0TXCXA2VkuaCrgj0nX7QwQ3Oz22HJhwnp/FDq4Deh1tnXqu7ljOitjwRGbtZtAavd MMJhvLVoeG22X75WXB8iWfrBwUIxieS903vWRVL8N/23Aw4NsMH86T4VlNvY6hmLEq+n xDtUaF0gBQOrrxOvHXK+8GF0DTHbNrzaL+8R52PSYA2nelbLDGK6PqeXXEXI21G0WJUX 4mNT3BSoqVHc/hcJxiS0J24E4XSInTJM3GEYRLofTRJkTaD3wrCigJTew+sf/36vWojz T06g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743714655; x=1744319455; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5gpY+rdcx4DmrGbnf0XYjotvrm4FbCP3RPVGPnvtMgY=; b=l4D5gwj2owuXIFphpc0v0I11b22Ad6KTKdNlmoWR6LXKrIIaWHhcFDsWDrd+D/er2n NkyF+CUn2IYDytn9BQeRaWipVQRGxOcJWXfEXUV10yxkw7KnBVpJxrYwgaSDnzWpaxL2 iRuEX2M1U6ivrtUyXQduqLNlGEAqXuJTYf3BfiFsacX6Wt0PhSsYKTuHxKyOOguXoJeU WiVKbjyV0SSzGqKPmef311E9zkZzWNQOnfSvOoG07dkn0NqPFbuotwvRSNZamW5jdreN juYEXizhe5NuXabNMuXGWskE0DkIHKa74QzvAVUnYd4sEiWLRrZsdZifoMQqc/Cd1MUr FHzQ== X-Gm-Message-State: AOJu0YxrZ2zsIdKunN7SjFS94McPU0m0VhD2uuj0+vaN/UQ3/82JERtq ga9ilHq64NCym5M/xQa8Owu6Wy34eop4LcPMpIcKagyQdpDmMMiUOeY49w== X-Gm-Gg: ASbGncsL+9juLV4EwLJPpbCrMRWfZw9qX0f5SL5QzfkeEN6mYOCmR80ueiuzqqboNyJ 1hdUPlNYUqhDuQ2EFDAOlVfYroJ6eKmHIBVMfBRRJlYjQ2baclNEo29VlySjxTRzwNrYzIJGrv/ 6LRdgFGfqArvARkAg5OsBYo4EEkkclqoPB6s2cJ+MSXQ6pz5iLbSdhLmzbUUBCUEAYPSAGwNw6a tf5TBVQmbl2w9sVJTWPJqSwYLqFhg5dy7SAKztQmndyvsOL8kqILcjoizf96ZYFjA1msywynp1P kPgJdRLzeZyje/BGzg1qn9Rg55mSs4arK/LxHgAudU8loMp9z4YTbpE= X-Google-Smtp-Source: AGHT+IEO9OgFv4cSV1AViYkQf4sLogfZEiVWl0doaF50u/xym88tF/gWAGDGPSjuZO7WUrvIX0Eepw== X-Received: by 2002:a17:903:1cd:b0:224:1d1c:8837 with SMTP id d9443c01a7336-22a8a0505d8mr6571345ad.19.1743714655210; Thu, 03 Apr 2025 14:10:55 -0700 (PDT) Received: from pop-os.scu.edu ([129.210.115.104]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-229785ad831sm19367645ad.11.2025.04.03.14.10.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Apr 2025 14:10:54 -0700 (PDT) From: Cong Wang To: netdev@vger.kernel.org Cc: jhs@mojatatu.com, jiri@resnulli.us, victor@mojatatu.com, Cong Wang , Gerrard Tai Subject: [Patch net v2 04/11] sch_qfq: make qfq_qlen_notify() idempotent Date: Thu, 3 Apr 2025 14:10:26 -0700 Message-Id: <20250403211033.166059-5-xiyou.wangcong@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250403211033.166059-1-xiyou.wangcong@gmail.com> References: <20250403211033.166059-1-xiyou.wangcong@gmail.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org qfq_qlen_notify() always deletes its class from its active list with list_del_init() _and_ calls qfq_deactivate_agg() when the whole list becomes empty. To make it idempotent, just skip everything when it is not in the active list. Also change other list_del()'s to list_del_init() just to be extra safe. Reported-by: Gerrard Tai Signed-off-by: Cong Wang Reviewed-by: Simon Horman --- net/sched/sch_qfq.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/net/sched/sch_qfq.c b/net/sched/sch_qfq.c index 2cfbc977fe6d..687a932eb9b2 100644 --- a/net/sched/sch_qfq.c +++ b/net/sched/sch_qfq.c @@ -347,7 +347,7 @@ static void qfq_deactivate_class(struct qfq_sched *q, struct qfq_class *cl) struct qfq_aggregate *agg = cl->agg; - list_del(&cl->alist); /* remove from RR queue of the aggregate */ + list_del_init(&cl->alist); /* remove from RR queue of the aggregate */ if (list_empty(&agg->active)) /* agg is now inactive */ qfq_deactivate_agg(q, agg); } @@ -474,6 +474,7 @@ static int qfq_change_class(struct Qdisc *sch, u32 classid, u32 parentid, gnet_stats_basic_sync_init(&cl->bstats); cl->common.classid = classid; cl->deficit = lmax; + INIT_LIST_HEAD(&cl->alist); cl->qdisc = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, classid, NULL); @@ -982,7 +983,7 @@ static struct sk_buff *agg_dequeue(struct qfq_aggregate *agg, cl->deficit -= (int) len; if (cl->qdisc->q.qlen == 0) /* no more packets, remove from list */ - list_del(&cl->alist); + list_del_init(&cl->alist); else if (cl->deficit < qdisc_pkt_len(cl->qdisc->ops->peek(cl->qdisc))) { cl->deficit += agg->lmax; list_move_tail(&cl->alist, &agg->active); @@ -1415,6 +1416,8 @@ static void qfq_qlen_notify(struct Qdisc *sch, unsigned long arg) struct qfq_sched *q = qdisc_priv(sch); struct qfq_class *cl = (struct qfq_class *)arg; + if (list_empty(&cl->alist)) + return; qfq_deactivate_class(q, cl); } From patchwork Thu Apr 3 21:10:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cong Wang X-Patchwork-Id: 14037607 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) (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 0F7011C862E for ; Thu, 3 Apr 2025 21:10:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743714659; cv=none; b=f2BC8khFH0Cl74XIcpKhU4IaXDdNefWbijw2pGYRB+E5asea0n3DGgsg234AHfQxbHxXtzNHiRI80fFyMxc/Rv/str75qZKqnQrxqolPD3plPITfX2513wCQJc38e5n980xlvKav0NKMazqm/23ul1ERKkDAKyXSS19IWHGOg3U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743714659; c=relaxed/simple; bh=pQeK2BrF55u/0EXsKN0Qf4SQL6dnj2ecn8e7A3L1A0s=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=J2GSDIoXnrjLnfRi3GSg620d4rwD/5jk+7GuVO3jZp2KRe7LtT/a1hXU5pgN4TL8IYOf8xrrXLNrHQCnudMMtaXSl5QU6Nk1KnxdADt8uqy29L1JhW7TysFeSi+1/KWfsPUEJ/FBgQLVFL6g1mYIlGv7kj40A2l1wRtpT/arhak= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=I+wBhyjF; arc=none smtp.client-ip=209.85.214.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="I+wBhyjF" Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-2260c915749so10415165ad.3 for ; Thu, 03 Apr 2025 14:10:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743714657; x=1744319457; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=moIEMrDcqnevzQAwwG+Lt8rXFaw/vlBOis0iockljXY=; b=I+wBhyjFEqRlleWF/QuivCkH5G7pzFe5HduE4oIPgtkfL3wTRtz/Yihg9ehz8p3mT+ bfnqT4q69x98iGUzhbDTEnA9/yDqRNWTW8V74Ox0IIvQCrCZzp9Ssrz2MTqvn3EDdLi8 qlzSpz4A03POc0ENvVd8WFe364noLuOm+vcJOI4iBJ/MRC35FiP3hGanfG3TvvqQQQ7c JpCCNmbvrTcilWFNjzAupu1ZI6yLvJgqxwUxYqjC1ofxaTwl43WvTWfbE9yqJHZTGstt l+KKsjj2BuRGnKfkRAR0/z3MT4UvQpvjMtg1JTICqKp9YqysatV+RuOTO1fDm1qqpDaE jt1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743714657; x=1744319457; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=moIEMrDcqnevzQAwwG+Lt8rXFaw/vlBOis0iockljXY=; b=A68Mxaa95Gld+HsDCzQXfJtuyHbPEQOXNRTy57yiuETxI206dIq1ZveqN/4Ro84YHu aiLTZHLC8ufoL9/Y7Ucp9PmigGppa8AH+lv+Px7q/63BP1lDWeguyGWoQhw51uJpGB6C D2y1RGWecXHrQoS5I7pydTuTdhZ0f5DAv+hbW1X8CoM2kCQCFHLaGYHyPZJ9jmS/qwMr JPlVVc88gFXT97/gjNAfFDVVPOURzK4W/fWN2vdzeIf/xNElQfcqTEq7OMYlWdw4OI5S vu9eW7+OF/gKA8WRwO9Etj6GZNrbNtuxQxlJ0TR3WHUf4O3oY+IjKu9tiWlQ89fFUgTP XVFQ== X-Gm-Message-State: AOJu0YzG/9iDmGtPh3C6Ll7BcIXi4hQiUNOq2VZaEDEJAr1Zd5BXT5tj zdgiRdHrbontQcsncENyrUR/HdnwGrQMbQH/NMhhpejTXNhFtsusFjFKPA== X-Gm-Gg: ASbGncvKTqL4GqfEX9AM2KxG7yegxNeePmoMQv0+I+quu+TRSZ9NBwuGR6pDTUZHvUw 3NoP8v0LfcXhYQ1sFbDIh5B47NyX915Ct4kSKq28tsEJmkrY5A11dV1fOraRd54xxTBwIFDg4jK OjvlkyopiDzZ2nx0FYkT2QhVtrc4ra2xdzMVwRe0G28nXMVPqnrsOdHPMYFcgvwX7WIQgHcRwcx t6cvATdaaHMn2eBUUL9HzX8X6i4DehGeowgctfkG1J3x/wsoz4LLF4hszKTsEq7I8EvrMajQSv3 WAO181/rJF8YDeg5RC/WcOANKKC+9p/GDFIf/rUUvXugtTJGa3sG3VM= X-Google-Smtp-Source: AGHT+IG7EeWsb5K3FpR1jM7reSRKDx3883R8Y6fPS3Orwg12zgq1gG5Us650CfZooUDzDrDQhvMH/A== X-Received: by 2002:a17:902:ce8f:b0:224:162:a3e0 with SMTP id d9443c01a7336-22a8a8ded01mr5771825ad.49.1743714656955; Thu, 03 Apr 2025 14:10:56 -0700 (PDT) Received: from pop-os.scu.edu ([129.210.115.104]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-229785ad831sm19367645ad.11.2025.04.03.14.10.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Apr 2025 14:10:56 -0700 (PDT) From: Cong Wang To: netdev@vger.kernel.org Cc: jhs@mojatatu.com, jiri@resnulli.us, victor@mojatatu.com, Cong Wang , Gerrard Tai Subject: [Patch net v2 05/11] sch_ets: make est_qlen_notify() idempotent Date: Thu, 3 Apr 2025 14:10:27 -0700 Message-Id: <20250403211033.166059-6-xiyou.wangcong@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250403211033.166059-1-xiyou.wangcong@gmail.com> References: <20250403211033.166059-1-xiyou.wangcong@gmail.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org est_qlen_notify() deletes its class from its active list with list_del() when qlen is 0, therefore, it is not idempotent and not friendly to its callers, like fq_codel_dequeue(). Let's make it idempotent to ease qdisc_tree_reduce_backlog() callers' life. Also change other list_del()'s to list_del_init() just to be extra safe. Reported-by: Gerrard Tai Signed-off-by: Cong Wang --- net/sched/sch_ets.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/net/sched/sch_ets.c b/net/sched/sch_ets.c index 516038a44163..c3bdeb14185b 100644 --- a/net/sched/sch_ets.c +++ b/net/sched/sch_ets.c @@ -293,7 +293,7 @@ static void ets_class_qlen_notify(struct Qdisc *sch, unsigned long arg) * to remove them. */ if (!ets_class_is_strict(q, cl) && sch->q.qlen) - list_del(&cl->alist); + list_del_init(&cl->alist); } static int ets_class_dump(struct Qdisc *sch, unsigned long arg, @@ -488,7 +488,7 @@ static struct sk_buff *ets_qdisc_dequeue(struct Qdisc *sch) if (unlikely(!skb)) goto out; if (cl->qdisc->q.qlen == 0) - list_del(&cl->alist); + list_del_init(&cl->alist); return ets_qdisc_dequeue_skb(sch, skb); } @@ -657,7 +657,7 @@ static int ets_qdisc_change(struct Qdisc *sch, struct nlattr *opt, } for (i = q->nbands; i < oldbands; i++) { if (i >= q->nstrict && q->classes[i].qdisc->q.qlen) - list_del(&q->classes[i].alist); + list_del_init(&q->classes[i].alist); qdisc_tree_flush_backlog(q->classes[i].qdisc); } WRITE_ONCE(q->nstrict, nstrict); @@ -713,7 +713,7 @@ static void ets_qdisc_reset(struct Qdisc *sch) for (band = q->nstrict; band < q->nbands; band++) { if (q->classes[band].qdisc->q.qlen) - list_del(&q->classes[band].alist); + list_del_init(&q->classes[band].alist); } for (band = 0; band < q->nbands; band++) qdisc_reset(q->classes[band].qdisc); From patchwork Thu Apr 3 21:16:31 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cong Wang X-Patchwork-Id: 14037615 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) (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 335F12E62BF for ; Thu, 3 Apr 2025 21:16:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743715013; cv=none; b=pMBg9Tc/yz3aUoOhsjupQolontgYdzQxojnKmDqj1mXZLFZIgxGfXxmxo5F3l5VZkBdrxI8icFAeZZumAjUt3k8QU3nLSwTK4pXYd3ZA2BkrPUPNiVoBQFmlfutKQyQUMdmPw7GJTwu9wVFH5Rhsu2L4bcc/uGFtBB5jcf5PdgY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743715013; c=relaxed/simple; bh=t6tu05ly9QjPCEx8sdlAFw0widD9kgarU7JHERAbJmc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=i3IyJ0oYeOmOo1dnYP5TYYimoL4OyORTfzyd4W8UpFnKj9ZzElxDpy+FR2UbVPZ10hGRa+/YdgfQn6AN36ND7zM5ekv1XdJpjEO8sPUj6IAMN1kL5IgQZGHhXhklf5kNscfFW88kdSbipsRdmdriOp9tT5Z+H7uoxAWO+jkUbBM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=aJgPTN5n; arc=none smtp.client-ip=209.85.214.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="aJgPTN5n" Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-2240b4de12bso20311625ad.2 for ; Thu, 03 Apr 2025 14:16:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743715011; x=1744319811; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=bzYxyoe/a5YlwqrwUSKlRYIYxamKo+68GX21nB8fjLs=; b=aJgPTN5naEwi4TIxF3M8bteezih1OwNqW+B3W6dkRixKCfuwqCaF3GDJl7r1IAJ/lW X8En8+qynschQtuqgLGuOWHPnw1AiAXx5H1PTaXFT55lSVk5/8eC/lPkOkR7auBTT3FT DMDUussrogDN3AhPUhIx9ZhcHJ4mttBlpextTS7+po2IEnOoNzmxhcwCfFkuGYS7Gj5y NAYM08UCpUcuR2YcBKiUvugbeLqzqzldnQe1AUcxQ0Oum8IQy1SGlBKaTcnHbFqhimmY fURLU4VwhyhUJqpuax1RejnKyFiLjgv0dO0N0NGzzXFuxANplE9PuZ2R9cAhZXr7atJF yyGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743715011; x=1744319811; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bzYxyoe/a5YlwqrwUSKlRYIYxamKo+68GX21nB8fjLs=; b=cpyU434d3XQ2/T6EnTnOnAuAld2LpoKJfshE4Dq3bBcoA+vmpN7HhJW50kIEO/ug1D e0R+9Q7VJTaZJcElhyQysq4Dzw66L5P3lEQ14fQbyFGeGfMsr+6O8WAkeRAFDIQ9pdD+ nO5gnRAuZN1ajAEHPCdNcvRLmc9LAKyQwdkXQ4deny7yZpm5Jt8JVwpylMGdhlkZC2iq F+s4sLD1HUhA+EY9X3chReBMPsN+3IZmla+8yUHoSLt+Raha95IQV197U1zAf0PDQNZN 5mmIQXKr0wVoOJpl6rlKxaJ/hGMG0qo1LperPIJzpYzJxfLlOMRccOSl8rBhg7HiHmL1 ZiFA== X-Gm-Message-State: AOJu0Yzuq1iRZqB2tbZzqxaIDZltZUnEyFMVE5LRFjdracHAbtWh/TLf sM+o3eFcnYyecyaxrdQpYIPknsmDzvkm2U4bMzjHYWJw/46Oi4xggl2ctw== X-Gm-Gg: ASbGnctCFk/gjEwx43RmzdgJ3S4b/E8lPtCh1uy9Pbxj6rY/BVS+qGeNnwFMsgjp1J5 49fhCx3n08lH1MjQLqgk58Vt01uybvhG3M0Cl5AL1RlgwSnWO9BH/iaYnwYeQZawkW4X7NigVAP kcbxtKWhED6x4PnyCo8mBMmfVwKsYamauScB6Y+xOg1JZlqq44GWWbHtwHwA46GTsWr5hdVELXc lP9+AljNriYXjxS2edvy2i4mZtFZAv7eb0ynPaUz3OCIidw9/jxVPqO2HjO+VfL52AysCbI1JfW 8kIADTKmtfXvtZJv41V6ch6vh7rVvEfqtv8T9AkDBdK5kixG/cm87/Q= X-Google-Smtp-Source: AGHT+IGFZj5G1G7xsCIJHl/I81lAboacRl2MLj8b5PC3HNbblZmf+n27mr5h06Xplgm4QJuoghdwBg== X-Received: by 2002:a17:902:d487:b0:220:efc8:60b1 with SMTP id d9443c01a7336-22a8a0a38c6mr7123775ad.39.1743715010984; Thu, 03 Apr 2025 14:16:50 -0700 (PDT) Received: from pop-os.scu.edu ([129.210.115.104]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2297866e1b4sm19332145ad.181.2025.04.03.14.16.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Apr 2025 14:16:50 -0700 (PDT) From: Cong Wang To: netdev@vger.kernel.org Cc: jhs@mojatatu.com, jiri@resnulli.us, victor@mojatatu.com, Cong Wang , Gerrard Tai Subject: [Patch net v2 06/11] codel: remove sch->q.qlen check before qdisc_tree_reduce_backlog() Date: Thu, 3 Apr 2025 14:16:31 -0700 Message-Id: <20250403211636.166257-1-xiyou.wangcong@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250403211033.166059-1-xiyou.wangcong@gmail.com> References: <20250403211033.166059-1-xiyou.wangcong@gmail.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org After making all ->qlen_notify() callbacks idempotent, now it is safe to remove the check of qlen!=0 from both fq_codel_dequeue() and codel_qdisc_dequeue(). Reported-by: Gerrard Tai Signed-off-by: Cong Wang Reviewed-by: Simon Horman --- net/sched/sch_codel.c | 5 +---- net/sched/sch_fq_codel.c | 6 ++---- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/net/sched/sch_codel.c b/net/sched/sch_codel.c index 81189d02fee7..12dd71139da3 100644 --- a/net/sched/sch_codel.c +++ b/net/sched/sch_codel.c @@ -65,10 +65,7 @@ static struct sk_buff *codel_qdisc_dequeue(struct Qdisc *sch) &q->stats, qdisc_pkt_len, codel_get_enqueue_time, drop_func, dequeue_func); - /* We cant call qdisc_tree_reduce_backlog() if our qlen is 0, - * or HTB crashes. Defer it for next round. - */ - if (q->stats.drop_count && sch->q.qlen) { + if (q->stats.drop_count) { qdisc_tree_reduce_backlog(sch, q->stats.drop_count, q->stats.drop_len); q->stats.drop_count = 0; q->stats.drop_len = 0; diff --git a/net/sched/sch_fq_codel.c b/net/sched/sch_fq_codel.c index 799f5397ad4c..6c9029f71e88 100644 --- a/net/sched/sch_fq_codel.c +++ b/net/sched/sch_fq_codel.c @@ -315,10 +315,8 @@ static struct sk_buff *fq_codel_dequeue(struct Qdisc *sch) } qdisc_bstats_update(sch, skb); flow->deficit -= qdisc_pkt_len(skb); - /* We cant call qdisc_tree_reduce_backlog() if our qlen is 0, - * or HTB crashes. Defer it for next round. - */ - if (q->cstats.drop_count && sch->q.qlen) { + + if (q->cstats.drop_count) { qdisc_tree_reduce_backlog(sch, q->cstats.drop_count, q->cstats.drop_len); q->cstats.drop_count = 0; From patchwork Thu Apr 3 21:16:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cong Wang X-Patchwork-Id: 14037616 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) (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 5F83E2E62CF for ; Thu, 3 Apr 2025 21:16:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743715014; cv=none; b=HkOhjNd50vNCIQN8T7RLXxZOHLujTDHektKFCK8BqbNaURZpBM+khaGzm3jdum7Vf/CSV49b88hD1DBF7lkCpPxbkV2Lo6N0rgkiPnK9LABeMa8t7UVO7XFyBkI8/nL5YuqVyT3i5L8AirSEXvtS9wAL5j2r1tV/bV+S/jyT2rA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743715014; c=relaxed/simple; bh=0fPd0Q4/U3z0jrlXytLXpdD/TkEGbEZWkfewqfRVAOk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=WVCbModQWg+WGHeCmvvRQ7MoTRxMaY0nmhnFbg2GwLHhw+qg51Oa3oUzXaq4pzFvMPGnBcXBsvXa+LaMESCrNaqqZUT/pcqT3izXWnsy6mX+64z3hc/iV/bcgrLVFNx6nUJvaIXmN6pn7TWjPUs2LZqWQZhvKInC57IoOs9lZVc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=lcsNE8+r; arc=none smtp.client-ip=209.85.214.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="lcsNE8+r" Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-224191d92e4so13779445ad.3 for ; Thu, 03 Apr 2025 14:16:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743715012; x=1744319812; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=J8WXVB53LP5Ujulj9nHrc2HMXPJEHmx29rYa03EXBBo=; b=lcsNE8+rbdWmirquIC1FgPzPUu/66n8tTHqnGLKd0TlFBTIO/hC02TAT7uF12+R3gK 63i6hKdotOamRBokHOpfvWWrNPVpkftizxwQ+s0kgWQDtnXxdzglaHXZzz5z+7k/YnZu kdREtWeJ8S6iLtNF74TBoQu2sjhsJgPjgzQ7ftAgEfpXWoWGOYfp0KJWXG/CUvSSI7kO d0piNVAmtAAgcMeX69EQPGeGBEXbrioCaONayJpWPNST+y8TTjYem/aYCXoRW2/LrMHd 6rh/XnhFJvIBeQdd5ivqWYn9EN8KOUvTh7z9qfNqmLw2A6R6BC0Pz1vr1vdF6p2CUA7+ uTPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743715012; x=1744319812; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=J8WXVB53LP5Ujulj9nHrc2HMXPJEHmx29rYa03EXBBo=; b=HYXOmJJOZzhlC68DuyEIDjBHz5RMCivy4t9WQZDTVSmpFFldCd5DcqZTYZk6a+Lnmi oPgnj93GpvkUJQI90J8mTo+IdN43SvKh/+xwl+KaigdCtevqsd1hMFuWi03bYSXt96bn Tt6T9bEdekvGujLiBKZdJNz65Ai4wTLdDz15DIKbxZGjs3I3VNRYPYvdA0+e/0oUjGiU c5WA8eU5Y6azJmdYA2TRrVGBW+pgu1MgKGIazGzKYzhizJehBawbUggZUlnnb0IAyDc0 1kHTkB0Ll4x2oZB4E+OBo3XtNi9CqVexkxlXYjkEy22XCwOhjaOUlvoMdeEoNXSyPOaV eG3Q== X-Gm-Message-State: AOJu0Ywyvs+vfJTVVoHK63r+JMuPs5MYQtIY9aeNY3t3KxCXbPgl+aAL b/j4zkPqA0hTBuNWWBsO/DbAOnJ0ysA/pTG+uHxAqFbRUT+3Rj5nF3c/6A== X-Gm-Gg: ASbGncv8Im3ackyhLTLtqd4eQDve+0P/T2LgtdWwCWhtd80AYbAv6AUNQWuXgMT0y8A 6K29imHWhQ+VHCuSNc3J2QPoi+jT+pzaSYO/0x/w2D06Hooda55qTULRoqMyYFC1LtamleHBigF V397aaFOMF2ZXSvnBVsu1PdkjfbqJJnqaAZT8GsZO/7tngCEio2r6PJaPscvTuS51MMC3mH9hKB 7MQn/Thv5NsRNWaUal8KG803BnflxG0ZD+7+KXY1sW1WjYF3PIDmMAz4wVKO9O1Q7QvfN+UFfae Ax8Fh9ZZHvI2W0rQ8PSgnKuvq+b625Om6kVbGyzG+X0k5yB9sN/TZAI= X-Google-Smtp-Source: AGHT+IGS5bjDHw09VQDO7kmnA2RwNdvZ9uMgmHMNULOgWbRhMmt0TeuBa4hFzZIbUbp3V8nd+S58bw== X-Received: by 2002:a17:903:120b:b0:216:6901:d588 with SMTP id d9443c01a7336-22a8a0579b1mr8225495ad.15.1743715012290; Thu, 03 Apr 2025 14:16:52 -0700 (PDT) Received: from pop-os.scu.edu ([129.210.115.104]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2297866e1b4sm19332145ad.181.2025.04.03.14.16.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Apr 2025 14:16:51 -0700 (PDT) From: Cong Wang To: netdev@vger.kernel.org Cc: jhs@mojatatu.com, jiri@resnulli.us, victor@mojatatu.com, Cong Wang , Pedro Tammela Subject: [Patch net v2 07/11] selftests/tc-testing: Add a test case for FQ_CODEL with HTB parent Date: Thu, 3 Apr 2025 14:16:32 -0700 Message-Id: <20250403211636.166257-2-xiyou.wangcong@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250403211636.166257-1-xiyou.wangcong@gmail.com> References: <20250403211033.166059-1-xiyou.wangcong@gmail.com> <20250403211636.166257-1-xiyou.wangcong@gmail.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org Add a test case for FQ_CODEL with HTB parent to verify packet drop behavior when the queue becomes empty. This helps ensure proper notification mechanisms between qdiscs. Note this is best-effort, it is hard to play with those parameters perfectly to always trigger ->qlen_notify(). Cc: Pedro Tammela Signed-off-by: Cong Wang Reviewed-by: Victor Nogueira --- .../tc-testing/tc-tests/infra/qdiscs.json | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json b/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json index 25454fd95537..545966b6adc6 100644 --- a/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json +++ b/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json @@ -158,5 +158,36 @@ "$TC qdisc del dev $DUMMY handle 1: root", "$IP addr del 10.10.10.10/24 dev $DUMMY || true" ] + }, + { + "id": "a4bb", + "name": "Test FQ_CODEL with HTB parent - force packet drop with empty queue", + "category": [ + "qdisc", + "fq_codel", + "htb" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "$IP link set dev $DUMMY up || true", + "$IP addr add 10.10.10.10/24 dev $DUMMY || true", + "$TC qdisc add dev $DUMMY handle 1: root htb default 10", + "$TC class add dev $DUMMY parent 1: classid 1:10 htb rate 1kbit", + "$TC qdisc add dev $DUMMY parent 1:10 handle 10: fq_codel memory_limit 1 flows 1 target 0.1ms interval 1ms", + "$TC filter add dev $DUMMY parent 1: protocol ip prio 1 u32 match ip protocol 1 0xff flowid 1:10", + "ping -c 5 -f -I $DUMMY 10.10.10.1 > /dev/null || true", + "sleep 0.1" + ], + "cmdUnderTest": "$TC -s qdisc show dev $DUMMY", + "expExitCode": "0", + "verifyCmd": "$TC -s qdisc show dev $DUMMY | grep -A 5 'qdisc fq_codel'", + "matchPattern": "dropped [1-9][0-9]*", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $DUMMY handle 1: root", + "$IP addr del 10.10.10.10/24 dev $DUMMY || true" + ] } ] From patchwork Thu Apr 3 21:16:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cong Wang X-Patchwork-Id: 14037617 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (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 B59401C861E for ; Thu, 3 Apr 2025 21:16:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743715016; cv=none; b=mODX5hJJecdn6GKUZpdrw25UUN3EY9fMT6slsuxT+YTmZ6W/NuQmJ1m60Ui8knnSge2HKHrKknoFicaJFfilhqgb0Lu1QyQtia+BixvCnPVcvHsqOFE4+hhSHeLL/amY4JgzXK2gsuyb2d8hvi0G0pBETF0dx2j6hw5BBdRXkkM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743715016; c=relaxed/simple; bh=fTBYVnx6Li7nygbAximIqXeQ7rXpeg2cajolWat3350=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=K4ZFtZkRs8V79L+zxt8q7LRef79AxTBlZgoLA0kCVVFikZicEAf6wQS6oSGPVT2Uk4dPa1EjjAX60dFNzC4nEYeS1QfQGs4yGdvJv5Nvy4fBL7hje77+cLJcgAHvsVzllx+z1V0jSPlL4myGbtzyIPLm7AO0ggMpy4oYz/54UBk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ERnGtS98; arc=none smtp.client-ip=209.85.214.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ERnGtS98" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-22928d629faso14925005ad.3 for ; Thu, 03 Apr 2025 14:16:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743715013; x=1744319813; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=xY9jykK8zgH9KflXIKMEbJH2Pg7GebVRfiiEHZ9El20=; b=ERnGtS9842bBxkWZFliYU6R5ZKyF+QGdGDswfnxsoV0wyqBqw4ZBUio+71jcdL+vqT HD9/6GdFV0xiccx/AtqLMVlhZD+DU94KaEL48vdkzVUSaRs32QQRbB5d9mpfDJk2kRjB 0tgn6hQE8jnQnPxt1FIw1hbJgq42P/JL5X2pPVZ8Rarx9SWp4kKQZ0tUl298UuKzU3fl PQBJbl3Zfv0yWN3RzKLmbTktCj7wvAzokmoyvgeOzAn0kQHWqDgm9fjXpr5F4tP+cANx 7927oLnif8TTKK/9lxzJ5hzyP081XBjWvR0YjRAf8WLUct6OIOOFNtDBPMgJX803NIpc oU6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743715013; x=1744319813; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xY9jykK8zgH9KflXIKMEbJH2Pg7GebVRfiiEHZ9El20=; b=nGtbJ4L7/h2MvFXmMi7NLRtbdNYMa6FldvxAK9i86xkc3kefXCqckrnON/TmLUQXPq YHwkG7pXFlBLEY2DkZxCOiG4w03kE9F8f+57wcYohnVogzlbGGUWUTcJ3Cb2mIubAYG4 tkluZPaQ3gLNCCDY/ulJq96NH4Vdd+Ksua/+nV5rw1CY9AUzX2wJwh0lBiLLhojLW2SN AU37eKLWGusPj4Jwnb239u8VqAPOd3ESPxijYunauEuqc1bv2Cx8O5uCKJ6HZHbXcShr gBLekooFC/QexTEFAQFX4/AO74m/lNa3iWa7MA1JX2ZX5tbfZ2d6GfaNDGqInYgiZ/EN xwqg== X-Gm-Message-State: AOJu0YwhDWheWzvfdj2cktfr4hn11EiuP/WZp4KIXKxfReNllw2ziINo Jy0Iv8p8pfsx2Le3cUlEshXZrfgLvSEnro90ighScx/4JTOO6rJsW4H2kg== X-Gm-Gg: ASbGnctlmfWXn9ASpWJuNN44Asw4LxyIax8YNDtoTw5NiWidFTRQ+7GY6olA77R87lk siDtkoKM4Ke58qJehpySgDTArtPdCf1ymTsD92EIA3VkKzNE4hFRkpAb3IJRnZSNc/cp+vxg6a8 PCG2yLXdQZhaXcyAHxSNsRk1gc6tM7H2KV+fUng4LS7yoyazSt9W58QjRLLDGeMFdOuB8C25mKo J0AZIuz+gaL9aMpJBPQdz2/5jrQAX4HSSHqvY3Cp6y8wkwvr0g/tAhSZTFcovGtWZ0MQOBGK85A IVwV7Ylz7YlCwM2CqSir6tExD1GyfHbCBdN4pisZD2wCbIpvaQ5ygDg= X-Google-Smtp-Source: AGHT+IHITHENy7Fhf0xA0OUBN0kVlts5v3efPSPPhA/lhOLVhWjI+/tOCNdRTlxsH1eCIsz8nTk0lg== X-Received: by 2002:a17:902:d507:b0:220:da88:2009 with SMTP id d9443c01a7336-22a8a8e400cmr5408565ad.45.1743715013550; Thu, 03 Apr 2025 14:16:53 -0700 (PDT) Received: from pop-os.scu.edu ([129.210.115.104]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2297866e1b4sm19332145ad.181.2025.04.03.14.16.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Apr 2025 14:16:53 -0700 (PDT) From: Cong Wang To: netdev@vger.kernel.org Cc: jhs@mojatatu.com, jiri@resnulli.us, victor@mojatatu.com, Cong Wang , Pedro Tammela Subject: [Patch net v2 08/11] selftests/tc-testing: Add a test case for FQ_CODEL with QFQ parent Date: Thu, 3 Apr 2025 14:16:33 -0700 Message-Id: <20250403211636.166257-3-xiyou.wangcong@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250403211636.166257-1-xiyou.wangcong@gmail.com> References: <20250403211033.166059-1-xiyou.wangcong@gmail.com> <20250403211636.166257-1-xiyou.wangcong@gmail.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org Add a test case for FQ_CODEL with QFQ parent to verify packet drop behavior when the queue becomes empty. This helps ensure proper notification mechanisms between qdiscs. Note this is best-effort, it is hard to play with those parameters perfectly to always trigger ->qlen_notify(). Cc: Pedro Tammela Signed-off-by: Cong Wang Reviewed-by: Victor Nogueira --- .../tc-testing/tc-tests/infra/qdiscs.json | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json b/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json index 545966b6adc6..695522b00a3c 100644 --- a/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json +++ b/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json @@ -189,5 +189,36 @@ "$TC qdisc del dev $DUMMY handle 1: root", "$IP addr del 10.10.10.10/24 dev $DUMMY || true" ] + }, + { + "id": "a4be", + "name": "Test FQ_CODEL with QFQ parent - force packet drop with empty queue", + "category": [ + "qdisc", + "fq_codel", + "qfq" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "$IP link set dev $DUMMY up || true", + "$IP addr add 10.10.10.10/24 dev $DUMMY || true", + "$TC qdisc add dev $DUMMY handle 1: root qfq", + "$TC class add dev $DUMMY parent 1: classid 1:10 qfq weight 1 maxpkt 1000", + "$TC qdisc add dev $DUMMY parent 1:10 handle 10: fq_codel memory_limit 1 flows 1 target 0.1ms interval 1ms", + "$TC filter add dev $DUMMY parent 1: protocol ip prio 1 u32 match ip protocol 1 0xff flowid 1:10", + "ping -c 10 -s 1000 -f -I $DUMMY 10.10.10.1 > /dev/null || true", + "sleep 0.1" + ], + "cmdUnderTest": "$TC -s qdisc show dev $DUMMY", + "expExitCode": "0", + "verifyCmd": "$TC -s qdisc show dev $DUMMY | grep -A 5 'qdisc fq_codel'", + "matchPattern": "dropped [1-9][0-9]*", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $DUMMY handle 1: root", + "$IP addr del 10.10.10.10/24 dev $DUMMY || true" + ] } ] From patchwork Thu Apr 3 21:16:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cong Wang X-Patchwork-Id: 14037618 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) (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 EAB4A1F6699 for ; Thu, 3 Apr 2025 21:16:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743715018; cv=none; b=tlRkC3SEuSqVVLSp9xeuytijGKsdVN6q/Hf8piHe4Tee0R56PmG7EX6ih3DYMbj7Ev9GLw0gwoARp5kW4X51HhrC1nYMycDQyXgGLcyxZC5BQR3mUgfdmcgtZKsRLRktX/aHtcykIm+dn0+nrvWClhaYUFVwNtyiYxfBrFNzixU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743715018; c=relaxed/simple; bh=LGjeBM0lp+r8uucmD69yoYSz8ozS3AIUPP9Uzea7nZk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=rb/M3fjUSkRWCirjYX5cIYA1JGwTBCDQIrowU1jKiikZbqQ/80XlCKyKwk5cnYiun2W5nk8VaIwU/BhzB7eHCW0MkdPJAncymGc/Szs+y5/+pmq9KIOm8W+HhWrkQUVlcYan1lS2QfPVsiN71Rf0kaA5ldLeZtxa8eIaewkAh1g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=cbyYB8tf; arc=none smtp.client-ip=209.85.214.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="cbyYB8tf" Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-2260c91576aso12088845ad.3 for ; Thu, 03 Apr 2025 14:16:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743715015; x=1744319815; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=KNOc8va7wTxII5LNMOLlfeqMVireqcYd4i2TSLflfdU=; b=cbyYB8tfDE1KAm0doG1J6aLklstrLom8h6fnzTrgBinfpE+e91KcO2AZX/TVCBcDBe ODiNmPmIIZfJfr5jPt46W1lPjFG3S6Uykbk5+03RSD9TEjQodQikHHvdB4Ai++p/SsCe 3/JHCngyFh14AKMT7Wlt12zfpgQGLK7obKYkQv5M1wXcU0zRuMdjtEAfK/P14SPdyf76 pbj3KA1TDtFoTTK5NEfdyS2B7aiTt6AwU1rHXGJSkVEiLRmut0qpsL3SDDXO+Tfecucq 2LnVgRJFNUK8x+Cnpi6HFPTEFPXZJwh+QZKH4ZqKplXZkRx6287xBKFpkXnD54j1tZQx VfVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743715015; x=1744319815; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KNOc8va7wTxII5LNMOLlfeqMVireqcYd4i2TSLflfdU=; b=RWhJrT7G5eFWug57iEULWOddAzmtOqO3iIp8+/0KQHd/8t28TODbhjKwzsYZZUViDb 0EJYfSIQHn4zD68OwoieV0MvVsLYlGfthujQmRS0Q5kDh03qwtT8Jhv7QCVuyyaqIleP oes78SC3E7OR40dSp++R3sF2yPSEH1ghZUr1kf+bgmRajtwqvAE5YnKjBoj8cw+TrY13 Qd4cYTrHKfwEpBPKLsMcFVhr9fEViZ00a/zseViN3/ef/DGTgOZPUCCF+KMjfObB0TNB vuqXVml74Bw2la9dLfMkdTmroDIFXE7Z5FtFgCQTzyveh6WEUwZ+725Kb8DZYLY7yASC ZRDA== X-Gm-Message-State: AOJu0YyWXTspdB78F/7Q6M1hxD/DQMDT8cdWDNRIjeDSANlkxMc2crLd TKrp4SomH/n94fp0mP5xWCQ4xp60k1FiNizryvT4rIXviSDyKsni9oK+NQ== X-Gm-Gg: ASbGncvqONkohMCaPs6v+acAO+iadvBSkhJ48NDec7XN8CADScZG9runM1H5xN9sbOE EjrxsS4g39dXfdtet9o0Ka11xP3AqWvExCJeI/M9+vNCmaXNLDZJ+tH66tzykEsId3ecoTB1Tp9 SECo45fA881d2DlDvtxfn+J6w5UQ+m4BwGH9Y5oWt1XVu0kQunWqoZymHx29GMWtpJzMzn+oX/R m+S6ZdywY3xcCelZeT8H3R4XtLr0s4BC8Gt4QkQXibU4Jk01KTmF7MxeQWYMpYjpNpNfn2XkBKE z5psR542dE1p7WgEEawzECFfq+rSxjps/NLgexJIfLG0pLB44s2muBxVA+37UAEq4w== X-Google-Smtp-Source: AGHT+IH0oZDP+LM3uRn/ZcxwbtPZYmv6jg2F9BMRZJFgXV8dYSq8KO6LT/TXHb9pPiljm5RgQrDiEg== X-Received: by 2002:a17:902:ebc9:b0:21f:ba77:c45e with SMTP id d9443c01a7336-22a8a1d230bmr8068325ad.45.1743715014834; Thu, 03 Apr 2025 14:16:54 -0700 (PDT) Received: from pop-os.scu.edu ([129.210.115.104]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2297866e1b4sm19332145ad.181.2025.04.03.14.16.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Apr 2025 14:16:54 -0700 (PDT) From: Cong Wang To: netdev@vger.kernel.org Cc: jhs@mojatatu.com, jiri@resnulli.us, victor@mojatatu.com, Cong Wang , Pedro Tammela Subject: [Patch net v2 09/11] selftests/tc-testing: Add a test case for FQ_CODEL with HFSC parent Date: Thu, 3 Apr 2025 14:16:34 -0700 Message-Id: <20250403211636.166257-4-xiyou.wangcong@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250403211636.166257-1-xiyou.wangcong@gmail.com> References: <20250403211033.166059-1-xiyou.wangcong@gmail.com> <20250403211636.166257-1-xiyou.wangcong@gmail.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org Add a test case for FQ_CODEL with HFSC parent to verify packet drop behavior when the queue becomes empty. This helps ensure proper notification mechanisms between qdiscs. Note this is best-effort, it is hard to play with those parameters perfectly to always trigger ->qlen_notify(). Cc: Pedro Tammela Signed-off-by: Cong Wang Reviewed-by: Victor Nogueira --- .../tc-testing/tc-tests/infra/qdiscs.json | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json b/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json index 695522b00a3c..0347b207fe6d 100644 --- a/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json +++ b/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json @@ -220,5 +220,36 @@ "$TC qdisc del dev $DUMMY handle 1: root", "$IP addr del 10.10.10.10/24 dev $DUMMY || true" ] + }, + { + "id": "a4bf", + "name": "Test FQ_CODEL with HFSC parent - force packet drop with empty queue", + "category": [ + "qdisc", + "fq_codel", + "hfsc" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "$IP link set dev $DUMMY up || true", + "$IP addr add 10.10.10.10/24 dev $DUMMY || true", + "$TC qdisc add dev $DUMMY handle 1: root hfsc default 10", + "$TC class add dev $DUMMY parent 1: classid 1:10 hfsc sc rate 1kbit ul rate 1kbit", + "$TC qdisc add dev $DUMMY parent 1:10 handle 10: fq_codel memory_limit 1 flows 1 target 0.1ms interval 1ms", + "$TC filter add dev $DUMMY parent 1: protocol ip prio 1 u32 match ip protocol 1 0xff flowid 1:10", + "ping -c 5 -f -I $DUMMY 10.10.10.1 > /dev/null || true", + "sleep 0.1" + ], + "cmdUnderTest": "$TC -s qdisc show dev $DUMMY", + "expExitCode": "0", + "verifyCmd": "$TC -s qdisc show dev $DUMMY | grep -A 5 'qdisc fq_codel'", + "matchPattern": "dropped [1-9][0-9]*", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $DUMMY handle 1: root", + "$IP addr del 10.10.10.10/24 dev $DUMMY || true" + ] } ] From patchwork Thu Apr 3 21:16:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cong Wang X-Patchwork-Id: 14037619 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (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 4BDDA1F7545 for ; Thu, 3 Apr 2025 21:16:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743715018; cv=none; b=JzA+AGzpJ1NTjSQDXmK7351X8nm5GelPx8hMIzScvOIpFWLup2T+Xb/KUySm0h5+M8vsLrt66otWVy8NkO+lgYDg67HjpWXBaVpVlliNDSWFRBVkoA0BAoBnKZRnuUqi2ELSuM57MC32hBQyCo8PDO9hfPCzx81WjUhGuTYqFdQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743715018; c=relaxed/simple; bh=anpFHzCE/5nYXAam0BvZW+WsDhGSuUA8dJl6AuCURkY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=t/FOD0mXOTmg2+Sl4m7PDZRm7htQKdjpMuX1bhj+I2Ohpa53XRVXNsMeTyd4A7C7x9aPiNafnQBCL7Y9PbYni+iaVaat7/cPHKkYZVBA5vFaDThRivtKducAi2Cz478CzuzrsTdpmFEbLmSr0Spus3DvLXRfQhhLySpUTEWkp+k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=K+jIMDoy; arc=none smtp.client-ip=209.85.214.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="K+jIMDoy" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-22928d629faso14925345ad.3 for ; Thu, 03 Apr 2025 14:16:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743715016; x=1744319816; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=afiImfPhKRRFOtoQm9EQeUQg7/8clNxSCBdEgpV2A/U=; b=K+jIMDoy5dsBGSYnt6CIBxL/QP205LNEUOnCxX11zILoj4EEw4qhYc6EOz80cRa6CN anfm3jopu0QkuD0tW1yre4IVSwSNfHFOq6iG6CRkAmBE/8B80KW3O+zSAwUwHByEbhj1 cd7bgtaOQLQCI87q4uDs5FsTQW+fpbVCWdh2Yg6Kq4N5sSTvyCg9CTXeUfeDIXasKe/l IVH5gktyPT5D4CTyrBwWRk5J0Hb/ELg3Ts0IZXeFYm22d5mvXkWBYrQBop6Kq5m4bsyH uXhZYZPiqVuJehxTvjXsbliTLW1KiVv2yrEMpQb30+CCPf2231EP8Ml78sKNAZSOFew8 CICQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743715016; x=1744319816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=afiImfPhKRRFOtoQm9EQeUQg7/8clNxSCBdEgpV2A/U=; b=BoAdKANZOzpNAXClV1pw58M4LP7R4iaxjUhuGLKyU8l/YQUTOTMGYEqcM3w6QsrLp4 CTmhafVFV4kjYrmiu0Go3+7KYHS4TtpJYiqVBV3jMTm5+a8B9WniZOqndSzpIyLpZfkO HtLqUgyi0N8LUW3MmajJcxLN8rLr6KfvypGYDurY0YgwDlK7KERiXquX4HSb1kmx4YEX dthxbUpXQESps286mAQxCI/PcSMKwUOj66P6F4ve+3dLiXlPZYbeMWYVv1XtdqKjKjUo 4v88/Ndpuz/Y+p1otdfB6zSaqqD6E6c6ZpOzW1000f6+QJVVOXIoVN3prtvLNNmqFTGK Iwhg== X-Gm-Message-State: AOJu0YzSxUMFJ+LeBD40xtdRLGfhKv4wBeaEbxVCutbPeSgJf2jDGJ8F p2JubfJBla88mTIVkXJqMcBnu69+7e2pUnSqZddaLhcGMYbVz6XSPVFyaQ== X-Gm-Gg: ASbGnctUpcR5JlGi1bT7ChXpOzaLVxJNOp+SBK0JPYzb+b22hROvh+lmgsWsjxI2fgi Eaq2COF3+eEOVAFOulqQdXCW3IoVGqqwhsPF/eqQMDAQxlHIHLAUvWh2ltoTSWv86tU0txFXGAi lfQCt8pAVsKjC5U2lm3b2/HjvCAERVlCvyHWbbDFrtfgqnB5XWjTIxtkwrYlWrtvdvZXOKml7hM nHFTZ7G7Jc7MEAZJoiU5nm4XvuGarYR7LWer3UCYaz62nqn05OzP1xgxlY5B37Q9ZcNCHvK/lpj vXVy4AvNakZ9ZG14cC7OTM4ZPXv0phQ5Pf8In+IgVzg3qpLfKwlldVo= X-Google-Smtp-Source: AGHT+IFnZ8OhF6P0tA5yy41KwBPcfdKptKDUvlepEmOdTvs9LqBs4Q+T2B5+xHivrKKHrg+jBK/ZRA== X-Received: by 2002:a17:902:e807:b0:220:d601:a704 with SMTP id d9443c01a7336-22a8a865faemr5455885ad.18.1743715016177; Thu, 03 Apr 2025 14:16:56 -0700 (PDT) Received: from pop-os.scu.edu ([129.210.115.104]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2297866e1b4sm19332145ad.181.2025.04.03.14.16.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Apr 2025 14:16:55 -0700 (PDT) From: Cong Wang To: netdev@vger.kernel.org Cc: jhs@mojatatu.com, jiri@resnulli.us, victor@mojatatu.com, Cong Wang , Pedro Tammela Subject: [Patch net v2 10/11] selftests/tc-testing: Add a test case for FQ_CODEL with DRR parent Date: Thu, 3 Apr 2025 14:16:35 -0700 Message-Id: <20250403211636.166257-5-xiyou.wangcong@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250403211636.166257-1-xiyou.wangcong@gmail.com> References: <20250403211033.166059-1-xiyou.wangcong@gmail.com> <20250403211636.166257-1-xiyou.wangcong@gmail.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org Add a test case for FQ_CODEL with DRR parent to verify packet drop behavior when the queue becomes empty. This helps ensure proper notification mechanisms between qdiscs. Note this is best-effort, it is hard to play with those parameters perfectly to always trigger ->qlen_notify(). Cc: Pedro Tammela Signed-off-by: Cong Wang Reviewed-by: Victor Nogueira --- .../tc-testing/tc-tests/infra/qdiscs.json | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json b/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json index 0347b207fe6d..4a45fedad876 100644 --- a/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json +++ b/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json @@ -251,5 +251,36 @@ "$TC qdisc del dev $DUMMY handle 1: root", "$IP addr del 10.10.10.10/24 dev $DUMMY || true" ] + }, + { + "id": "a4c0", + "name": "Test FQ_CODEL with DRR parent - force packet drop with empty queue", + "category": [ + "qdisc", + "fq_codel", + "drr" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "$IP link set dev $DUMMY up || true", + "$IP addr add 10.10.10.10/24 dev $DUMMY || true", + "$TC qdisc add dev $DUMMY handle 1: root drr", + "$TC class add dev $DUMMY parent 1: classid 1:10 drr quantum 1500", + "$TC qdisc add dev $DUMMY parent 1:10 handle 10: fq_codel memory_limit 1 flows 1 target 0.1ms interval 1ms", + "$TC filter add dev $DUMMY parent 1: protocol ip prio 1 u32 match ip protocol 1 0xff flowid 1:10", + "ping -c 5 -f -I $DUMMY 10.10.10.1 > /dev/null || true", + "sleep 0.1" + ], + "cmdUnderTest": "$TC -s qdisc show dev $DUMMY", + "expExitCode": "0", + "verifyCmd": "$TC -s qdisc show dev $DUMMY | grep -A 5 'qdisc fq_codel'", + "matchPattern": "dropped [1-9][0-9]*", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $DUMMY handle 1: root", + "$IP addr del 10.10.10.10/24 dev $DUMMY || true" + ] } ] From patchwork Thu Apr 3 21:16:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cong Wang X-Patchwork-Id: 14037620 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (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 9A7041F8729 for ; Thu, 3 Apr 2025 21:16:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743715021; cv=none; b=kutHfujlQetqoFEdagv962Xo5D5mvpWBnIjYUofAV3PhHq1cdPCSQTE55s4Drff6oR4FL1iNk4i0qoRqTGqWQM61mJIIXt+u6ovNi/GPamiVQJg6bgbu/yYdZZckofcN6tu19IF7fgHyaIlXRoTpq9GXW2t1eHq6AsU+QXi/tys= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743715021; c=relaxed/simple; bh=c4b5bTsli5wxRR/vhR5X7nGQ6zwor8qczbcsuLWrfvw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=s7N5pUnugG2Gg7yE7Evi8vPjmOXe2UUThTT0oWQMACt6uxnFEpZdr99ySilxQDieITR4GLGSOO6k2LcXBvYaD5Xp0V7oSb3IncjKY+q1mr9ZZx+8SfS2YQmP5Dsx5RVfj2XhkM1Rd6w7+uVMLe7k0mbkAjI785HFwSe13xEIY0o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=YjBXjB9T; arc=none smtp.client-ip=209.85.214.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="YjBXjB9T" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-227b828de00so15028445ad.1 for ; Thu, 03 Apr 2025 14:16:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743715017; x=1744319817; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4QxMruQONZAp7zKVfCZlsSbmanJdypIkEhyAefdjRm4=; b=YjBXjB9T22HkDhBHj4iWtROrASx4jJZ1HCqjpGp5Lpn61DovFVj8M6Q1LvmcA3q8J9 71+ViP3XDcuXkhZNE0TtyBnb4XEsj3GPOnt/e5LQKpW6uaylM8vQS2tJr+r/402CFZLo k+RI+oCrHiI0V07f5vfpQH5npgDq43SH31Yb/st3Go93PXbsRK/mNgiP9KOSw27ISisi oBz3ZRM8E1UgiMyGKAd4z3u0CktGkSag6PVOwIz9iSLt6qXR6V+zrdqjZ6KOYJOQY/p4 WVaGECkTlUpNFTwYw9Ooa9XO5lYhmlqBxWXukA1qAMY5WO30tPwYxXidcue1mF3XyhX/ 20pA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743715017; x=1744319817; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4QxMruQONZAp7zKVfCZlsSbmanJdypIkEhyAefdjRm4=; b=t78KJCQg019sx16fdYRH/pwSNHjzF2uA9v8fRJM7oZXXFZHjYWXSIwyT8c+siHuypM VDGonQH74RvZ0dePuafJDBiuUGY8aUHoeSjxpQoMXYJaduhLMFm3xRGISQ1q5Mo9xt64 NhqypmDQQ2veu705loEsnlfWBcKahW9esdmL+zQ7ZMljtvNkobjYg5yiixiog8RfIrwY PR3qxvWYEAHK4jrc3lwOIRGIv1NplxW/Is9yRMgsooyjuarAlqmVOztQxyHH8JOTtPu3 7G7x7n6r6KgvGstgNeGjTn22PE+dammy8jJsm1n15V9ZAKqjPA9OFXLSeCYOMcYNow4W RVXQ== X-Gm-Message-State: AOJu0YwdWtMcY8WwMfrL+Hhvb/VvowHCcsZmeh0DwOv+HwGr8RLlFw27 I8Lv/8WvFS2RiRw3oPku83nx6EwT/HfV2aUUbNyOJeSe3vkkB7eOsICTUg== X-Gm-Gg: ASbGncuKm3ehQ1cRcoIP5uiwNR9L/3oQqGyv99Yna6cLCKO1lhTgcCBwd5ENZ1KC4PX IEQQhfgWO0suYTbOMf0vR0dfaJsC6KUoYSRv1P4OXHPdOvbatjb7qwx5O/TU2HJm3ELqWuk5A7n 0A1udSqKm68u3lUVmj9g67kSwIcPvjhp0cgqo64BtzqdHvQUcGpxA9vlady375PPqKTZBGgLgvB eklBsNCYLL2cxEu5c1tI3BkemnTxfE2MNs7oNzPU86lg0j2FuX2jsOtI+yvmfrbSx00zHiizabB NTl9fJIQBaO5AfQdmNOTcO14wcE1ltohDAgioBBi9KO1sUG58dr0e+UcNGVC5B3cVA== X-Google-Smtp-Source: AGHT+IF0sm8lmYxqPhAKzZ2fbe5xPmHEw5ps3HLnwdjg9KL/epaqFYVv0UmyshyAwTZ/vF7jFHco4A== X-Received: by 2002:a17:903:2309:b0:223:5e76:637a with SMTP id d9443c01a7336-22a8a05f554mr6921805ad.23.1743715017495; Thu, 03 Apr 2025 14:16:57 -0700 (PDT) Received: from pop-os.scu.edu ([129.210.115.104]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2297866e1b4sm19332145ad.181.2025.04.03.14.16.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Apr 2025 14:16:56 -0700 (PDT) From: Cong Wang To: netdev@vger.kernel.org Cc: jhs@mojatatu.com, jiri@resnulli.us, victor@mojatatu.com, Cong Wang , Pedro Tammela Subject: [Patch net v2 11/11] selftests/tc-testing: Add a test case for FQ_CODEL with ETS parent Date: Thu, 3 Apr 2025 14:16:36 -0700 Message-Id: <20250403211636.166257-6-xiyou.wangcong@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250403211636.166257-1-xiyou.wangcong@gmail.com> References: <20250403211033.166059-1-xiyou.wangcong@gmail.com> <20250403211636.166257-1-xiyou.wangcong@gmail.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org Add a test case for FQ_CODEL with ETS parent to verify packet drop behavior when the queue becomes empty. This helps ensure proper notification mechanisms between qdiscs. Note this is best-effort, it is hard to play with those parameters perfectly to always trigger ->qlen_notify(). Cc: Pedro Tammela Signed-off-by: Cong Wang Reviewed-by: Victor Nogueira --- .../tc-testing/tc-tests/infra/qdiscs.json | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json b/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json index 4a45fedad876..d4ea9cd845a3 100644 --- a/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json +++ b/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json @@ -282,5 +282,36 @@ "$TC qdisc del dev $DUMMY handle 1: root", "$IP addr del 10.10.10.10/24 dev $DUMMY || true" ] + }, + { + "id": "a4c1", + "name": "Test FQ_CODEL with ETS parent - force packet drop with empty queue", + "category": [ + "qdisc", + "fq_codel", + "ets" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "$IP link set dev $DUMMY up || true", + "$IP addr add 10.10.10.10/24 dev $DUMMY || true", + "$TC qdisc add dev $DUMMY handle 1: root ets bands 2 strict 1", + "$TC class change dev $DUMMY parent 1: classid 1:1 ets", + "$TC qdisc add dev $DUMMY parent 1:1 handle 10: fq_codel memory_limit 1 flows 1 target 0.1ms interval 1ms", + "$TC filter add dev $DUMMY parent 1: protocol ip prio 1 u32 match ip protocol 1 0xff flowid 1:1", + "ping -c 5 -f -I $DUMMY 10.10.10.1 > /dev/null || true", + "sleep 0.1" + ], + "cmdUnderTest": "$TC -s qdisc show dev $DUMMY", + "expExitCode": "0", + "verifyCmd": "$TC -s qdisc show dev $DUMMY | grep -A 5 'qdisc fq_codel'", + "matchPattern": "dropped [1-9][0-9]*", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $DUMMY handle 1: root", + "$IP addr del 10.10.10.10/24 dev $DUMMY || true" + ] } ]