From patchwork Thu Mar 20 23:25:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cong Wang X-Patchwork-Id: 14024674 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (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 7E11D22A4E5 for ; Thu, 20 Mar 2025 23:25:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742513153; cv=none; b=QkyqHAA78qiV/qAB6EbpPXW1NueYY/9wTlnqo9TIGlsvQRCd2JoOLtq5Q1h5ii6XnNlVZV744n41LOent4abLsmHGF63+RnRgDPtGkjX8dMq6gXCzLvrwrH6q9jzubHD1TunkoT7P6TO2kTH3fug0gmI9TW97z5xwSTm+KrVTmo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742513153; c=relaxed/simple; bh=6xAT4FZ8Ia/GP5RFqG5qSyy+IR7iqZyT79R9PR8fpLY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=uM0fsVkeIcR5wYbJaqkyzwziPz1rl2aS6EsDANyAFJmZkiGvv0ck4ddGLufz3NEDyLD6jQJl/3Fe87u1gG2WMuL2ZISVkZ8W4wPXbA9mWlVgL1pG/LtDj4ms3E/t3KrOE2+NWgjNhmogVtgrbwcc36zzEim2lckYlosluYKW27E= 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=e9dwpLZv; arc=none smtp.client-ip=209.85.214.176 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="e9dwpLZv" Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-225477548e1so25693315ad.0 for ; Thu, 20 Mar 2025 16:25:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742513148; x=1743117948; 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=e9dwpLZvgKEe8UzPJpF8SfW6qBWKCLNfQUzTgMnlAZCydkxy4qrNy/A50dzgXO0BVF O7d1Xe/4U594kB0T9JkYhVWHxM4XoDI5npiYdOWMvveH69vA8fmUbgmVFM8QywgqyBis UnKhxcloO/6uI66FNVwia/EjQU+PLahsR5KmrKzaaADynPZjbYHc9Y1u8vZfvakqsRpN UUAyVdgNJQz0SDnLOi/kASl89DELhnuEa4LBuxi8wsnvgPgJd4HoQ0IymSIUJT4t1qhf f0InNC4WKD5es44P0h5eiCwOkuuCPtetuAPm2r0H+dSkFm8GzwBoy81CpvgSrVefDiSX rDww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742513148; x=1743117948; 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=wXMZhnODaTjEIvXToD0YIGrqQnGC3WhLPrmD+UOlhuDeVLPeRx2Br9+wCNt2P/uF6s zpVJ1ddqoGXGOYTae5xOH1jQBWqv1cjMVrrY/kUZmIbXLuplapeX0gomZRnaD7aJKW7y RPcs+HJTHfpKg1Gh0hGe3bgel8lgtLiWdKnUj2LdNl8LDDnaF1Gd/SrTb+i6s69dUEJS 0+FEFUNxdIxHjP6hjjWsqhVSavPtnBnmHah434LjzvTZlIkObc/uWOuUYoU/J08QYjyl mGL+7TdfWIWnA6ZF+mjx+l9MPz5pQnr57AnjQVtbR2z9rnmwojsfE3zEvH+Mp/W+i2KQ W03g== X-Gm-Message-State: AOJu0YwvWhSae0VoZ/kzXwwE8iMmqQZ8dI8a5BA23Xv/Hebw8TAzzj1e StnEf+sqrX4Ik69ksrqP9xhmKwF/c/cSqThnfyUEWbfDWd7FVlqhPNGsog== X-Gm-Gg: ASbGncsdvRCCFNmzFUypqOC64NXOHlUgfLjGbkVFgsHHQtvC620r5O14y1usGuCmKu1 ObbjkNlNOlaN2jHV7IS1mERgP73gnwBR5iqZrfVoLSpiocKzvhAg/vpQZYNkCHp8/zNAPcz0qrS rgPR+ylsYHQo6bRVecd2Ka6cTqSFzpOXCZiKa4EkZ+lc1aKrt3QF9rqL0W8klqy5n3+xYqAFmZR crJYEkUbFVoOw5tVZo2JvhvLClxkaos+wAJMufyYY1HGfEVExP5b/dzdUJx4aD2Zpnu8so32yUH jf44PBxOmivQBHc2xXO2zB9EJwIgJWISN4IvK7Wz1PMdV517nOQ+UWo= X-Google-Smtp-Source: AGHT+IGM+oMl4mpfria+dnEEXmH6anHDUzgFlX0MxPbBuUSbJ8wwy9dwDt5WxMgHXo0MNBW4FtZvaw== X-Received: by 2002:a05:6a00:1812:b0:736:6151:c6ca with SMTP id d2e1a72fcca58-7390598df4emr1836090b3a.4.1742513148129; Thu, 20 Mar 2025 16:25:48 -0700 (PDT) Received: from pop-os.scu.edu ([129.210.115.104]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7390611ccf8sm416306b3a.120.2025.03.20.16.25.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Mar 2025 16:25:47 -0700 (PDT) From: Cong Wang To: netdev@vger.kernel.org Cc: jhs@mojatatu.com, jiri@resnulli.us, edumazet@google.com, gerrard.tai@starlabs.sg, Cong Wang Subject: [Patch net 01/12] sch_htb: make htb_qlen_notify() idempotent Date: Thu, 20 Mar 2025 16:25:28 -0700 Message-Id: <20250320232539.486091-1-xiyou.wangcong@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250320232211.485785-1-xiyou.wangcong@gmail.com> References: <20250320232211.485785-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 --- 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 Mar 20 23:25:29 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cong Wang X-Patchwork-Id: 14024675 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) (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 A2FE322A7FD for ; Thu, 20 Mar 2025 23:25:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742513154; cv=none; b=pMZNgP3OMPwtYyOgzCLObG6ziqbK2mBMZ3hzGaEeCIEVM5KmEv/iWFq2OfvoaudYwKfOGhMY9Z62W1I4zMUZaGOFojSq0kzqGyzlJIs54c0FHRFn4lm3c+hWzL+GzzDy8+5o75elcU2JyE+IBI3JBaDhoXPtzn9t4udjuxjOlko= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742513154; c=relaxed/simple; bh=ISaSMzrWByvy0aKtLbM0WfTd5Z2PAmIJUgiNxzgXeIk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=DkuYJDjxfrjPmxYcSRx/eFozVKIx/b36+3iP2Yk+h+50PheVxudqw7FM1/QWL5uJrrfyFVc/yaLWYtHNo97Kd4p3+nTNL9dNoqJh0teJfQ+QwbKh8yxOPTqx5ID2bVV1o1wLvEVIXNUelJamCMo2heSWZJ6HYIz6X/3u3L61nBU= 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=hOAzoTn1; arc=none smtp.client-ip=209.85.214.182 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="hOAzoTn1" Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-2239c066347so31276475ad.2 for ; Thu, 20 Mar 2025 16:25:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742513150; x=1743117950; 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=hOAzoTn1TaqpHl9yXuzkL9BcrHj/0cpqT17WLb80/syU1P5d1PnjrUI1Q8TkZMzed6 M9OrHEcZhstZLYuPwtP5vjAzoDfDoecZkNl6Npz/uj1L42R5yeVTMCRjUumqwK+0+8If e269eWPl/b80s4ZvNlwhbjl9qAmu5GkEyLnyx/amv19QjB07mK+7xFlNSGhdrCj+cUxB 0GenmJJicGfB/XkK/ZY8d6/RgqJhKouyVHvDiCK5XgIR/BKbPRrBN3OILlmTco/lcPYP mOWvbQ5MKv1mKjP8iQ5tF2LoDXjy09Y//D7j2RSUdd2mxNVvTbN7lQdiOWMpd1NK/DSs ONHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742513150; x=1743117950; 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=WfCfg9Lnc9VeU0aDqc/BSZ8yzAkdKrsyqEhJoWWBATH4qJHKO0Yd/tqr1qqvxkBVw2 Np0XC9YJFjUBwa10lzTCLoffgP4oYOsl1Y8/A+7NorIEPJOT/quMf7nVcXiUjOnnWuL7 9bIPv//a/obWlLI0R9DYG1TCbBtXyXJmTUxNWV3hHlfzfcOJL6oUitYI2S/n8oOnm6ld 0oPutA9LXp8ma7cZlfc+bwunbmeBI2o0sLZRXefbSGPnUMTHu3PGHsXBP86/twU7BvHH 9PIMTIJxaW0GVJNZf+4YK8+Ixsc0qB2uBHX73YM3j3KgunLxekeqnTc2FA5VKN4AzvU2 V37Q== X-Gm-Message-State: AOJu0Yx6TG4yV4ls5fDpcLSA0NsYhBUofumYf0So1RF+vp5Uo/NY/ape i8XjmozQqT3v6c9IAShhKxVuP9nhNF8U5IEbEiFDrj8eHMmE66Eu2hPGAg== X-Gm-Gg: ASbGncvt8SP8xx7GEF/mTRrb02swXFhr9z1QItElIcJOb7jvlf8BnL0a7SP1dfooTex sMxrkG7ih4cnUC5+LnzwkancNGwMu0NOAYCNjZEgfnrzJBlmRtVeANcv4LSG6hptSQTVbIbiBk1 zsFwGqt1HuO8sAW1jq7Sunnql6y4cv2PK71BcuoK9OmIZuO2MRIbE1MUaEd5a/p1G7JBvPl6Vgq /OwNyyZPOa0gu9pKXrMuK/ZHwGc+gDlpL3mxUwI/lVv3WdDBLgQK0TvN7W8Xx3JUvviWAbmy0gw EUfh0l0F9Q34A0+GqXnhcg+fzVyhdf4LmRTSd9jcVt+Zfx/tb78xbYc= X-Google-Smtp-Source: AGHT+IE/RjRC7a53JAlbtIjqcwkXulNwIVT6UIF9zX2BSTOMo6UNP3gVjWrs15Gh8AFjisKQMt9E7Q== X-Received: by 2002:a05:6a00:3d0a:b0:736:4d05:2e2e with SMTP id d2e1a72fcca58-739059667damr2258477b3a.6.1742513149544; Thu, 20 Mar 2025 16:25:49 -0700 (PDT) Received: from pop-os.scu.edu ([129.210.115.104]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7390611ccf8sm416306b3a.120.2025.03.20.16.25.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Mar 2025 16:25:48 -0700 (PDT) From: Cong Wang To: netdev@vger.kernel.org Cc: jhs@mojatatu.com, jiri@resnulli.us, edumazet@google.com, gerrard.tai@starlabs.sg, Cong Wang Subject: [Patch net 02/12] sch_drr: make drr_qlen_notify() idempotent Date: Thu, 20 Mar 2025 16:25:29 -0700 Message-Id: <20250320232539.486091-2-xiyou.wangcong@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250320232539.486091-1-xiyou.wangcong@gmail.com> References: <20250320232211.485785-1-xiyou.wangcong@gmail.com> <20250320232539.486091-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 --- 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 Mar 20 23:25:30 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cong Wang X-Patchwork-Id: 14024676 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 0BF3722A80A for ; Thu, 20 Mar 2025 23:25:51 +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=1742513154; cv=none; b=G7pXsIpEjb8UoO6HOtLLMeyXL3O449nBsUiRrjam+Df6tVPI+Kc9qjXQR6JxTmt0gYN1aH/mc8Qmeoac+QHhPRAbnW9fW4XYmY5r8zooZ35ngftv3Lgf60TPYcz6JJOSi0ztRCeNwU+3E5CDcXNZyhs3f1Jxim+Tq67wdSp7nOU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742513154; c=relaxed/simple; bh=hHIYHezDOoxCNpJNOVopdAZG9dE34xIK63RE3y96P7M=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Ec82+slcy6FwCC9TKr4mDwWrwc5G+tFK7nw8DDFVXY/qOBDz6L83207vNqkNPLK9CwOINmvLL6TYYfbpeDLAfO1eP3tHYsBGnzT+CdQquThlfZPTmSKKA7yez/cFFowa1+I8Zi7KRIpxgICIM7A0yYD3sQmKzlFYbtTJ891y5TY= 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=NwX6qItL; 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="NwX6qItL" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-22622ddcc35so34797965ad.2 for ; Thu, 20 Mar 2025 16:25:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742513151; x=1743117951; 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=NwX6qItLiZBF4qQJQuHDpQCtYW7s/eiZoon1hVtxtSwuAdFOd5exz1QNjIKHb7nz09 Zq4ueLxRCYh2MtXOy2EmXiFLahRcvOdtIUrLvHbUY7Kjb4YorU3A+2CkHoK8WumSwnLQ i9ewzeIIBYQHykAZ6Ti0I3djQ/4yDP2qsnqKfNuquUW2y5Wkelql2DKUhjPW2gwB0Joy e2q4alJD07Efg45h8rK6Cp5GL0sYrgw2a6f5ezxt1Lfm/6yoSa8MmVq70nrQTniGaF0j uwW//L09AJ66XxvJ1lQCmmDIGdkIEMDMayj+NmAE7Guw7b95Kwe4QfrD2b5NObvv3d+I EVTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742513151; x=1743117951; 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=rCIUZLVNNKaqVh3r6pURpmIN3OV60beJptMoUAICJJgudbbKuY8Om1A7qE9rQwuURW ep4/dKemmed0pV7ybyV8zV9zlOaDbNb/94d+t2cvJ7byq6T6hsecuka9cvD2l0Z3MmQU EPE51X49pNPRvzitfH9KeC3rwe6byXcFkEpwS3R75fQ2tYOlj5G3RpRJc8sWjQs7p1Z9 OZ+NT9jCsv/jt9imfdnp11q2kskDysw6UGYaZzLaNy6M0HexPUSRH53eErRhHuPROaic mzVlnQT4YdkkXZB1nVQbmZ3/u0zWmYxr1ohT2UFD3zu0qcHOtEalQPeALhRshPAiMbiy QARw== X-Gm-Message-State: AOJu0YzzEzgisUZK0N/xX/53dRoYJzwlN2J6B+rDodrGsJW2xbQodoWx X3kBkkfYm8ZwxPbWXxq5H3hMwtyHZpHGMXLHT1HScASG2liZQKwqCMSWlA== X-Gm-Gg: ASbGncsy3kl7fI52KXbDDSCemU0pUHXoGS8x4BNNqCirVGY3HT82AeE/zJ0k0qjtYbJ WYOEfYoWafiVz1WDTA3h7ZZVZrHShz0t6FLXHbgjvFrlHXszbpTP0kH0pvFJrKTlDvYoHShu0jL WTvT7tipIBXtbdHD0zJA2nmnbpRX9dPcv6rcR7YdTZ9LHHjuk6sJFZXE9ekVyGZLvLMOL70a7sg TpUQRmtv04nyn4xObe4dcXnnY2mYYtBqO3T+bGZVFpWwfVO9yp7wpJYCzGbkSC2Uxgeyv7IGYUF rc/627xx/k6qb7d9V9VT05iRgAk4kEFG594H0jULQWp5HMFIx9jLijk= X-Google-Smtp-Source: AGHT+IGyd300sXs8kHITPgTm8Jy5EFi8V1/6XJZOy8npHfYxNizoLBzkjCHV2uhDqc1dbf3m0A6T7w== X-Received: by 2002:a17:902:e844:b0:220:e896:54e1 with SMTP id d9443c01a7336-22780d8c42emr17726075ad.26.1742513150959; Thu, 20 Mar 2025 16:25:50 -0700 (PDT) Received: from pop-os.scu.edu ([129.210.115.104]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7390611ccf8sm416306b3a.120.2025.03.20.16.25.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Mar 2025 16:25:50 -0700 (PDT) From: Cong Wang To: netdev@vger.kernel.org Cc: jhs@mojatatu.com, jiri@resnulli.us, edumazet@google.com, gerrard.tai@starlabs.sg, Cong Wang Subject: [Patch net 03/12] sch_hfsc: make hfsc_qlen_notify() idempotent Date: Thu, 20 Mar 2025 16:25:30 -0700 Message-Id: <20250320232539.486091-3-xiyou.wangcong@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250320232539.486091-1-xiyou.wangcong@gmail.com> References: <20250320232211.485785-1-xiyou.wangcong@gmail.com> <20250320232539.486091-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 --- 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 Mar 20 23:25: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: 14024679 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 9907A22A817 for ; Thu, 20 Mar 2025 23:25:53 +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=1742513158; cv=none; b=gh2Ekgzt2XSvclZljf4csUTsB+wG/PkqKxFAuRcJ6anctrq4sVcKc/KVBGMEfPedtHGBH/M+p+95HDVS8LB66vfO3/SD5EpKh0lKVLl2Lwa1lZ33BTU0hHUBciqIIWiLwEl3aSVaiUJnAIM8uouvXQKRCXMnOnxXLrdgk+JPLgI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742513158; c=relaxed/simple; bh=rHX1QWU5eiWuX+n9VOOkmnkpZeMnmrL3na+ia443Bow=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=VU5t25GLyewaZCBvA9B7Qm/JhEI7zgerA0p7obaMu1PTa3x8LBDgDiJhH0whTz5pD3qnH1714kXhlGX/PhBID+PVhK/NjQyasPQMfLAjRyFlmmuQb25IbvbRbjaTagV5DsrQq8Ti7XQhGwjTcpcJ8VXUfg55USPfMce+eV2O8g4= 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=XwuV0x8D; 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="XwuV0x8D" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-225a28a511eso30035745ad.1 for ; Thu, 20 Mar 2025 16:25:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742513152; x=1743117952; 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=fImpDEeSKh+sUQxlOk8pcKlX1iFw4vWLG+z9axE+4/U=; b=XwuV0x8DotRDaQSBMNKPqROGfa2SFS1FhdscKWC6sCCuohUXhDR29JJOwgFs8tgnLt XooneweTZ1CfMne+nOWSPE5HI9acW1mAfxIT5BhMxLdSJPG+fxKqEEPw/0vxQz/vckks wh2vL8pmedR4J+LqTGIZxOB0QIsmUjL07/77p6/tihY9U2kxIr+OL3+tpMB6Hsaw4mlY 9O5HOHOgl1ob3lBE+8gFycO6rkuIr6PqdYuf0lV74YEiH2mxh5qxcFApGB2U3B8RXm8x kaAJiqiE5rUO1Dz1nXClfBP2zW9qd9j7AVtJ5qqH0UaH8otC13T1JELJ9x7KWVDlF5tp ClcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742513152; x=1743117952; 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=fImpDEeSKh+sUQxlOk8pcKlX1iFw4vWLG+z9axE+4/U=; b=In20XOtY0cRlGio5i3n+YdrvrxdFSYUZBKv4FY6BYB/UQQv6dtYnlXpbhP9rLVvwem Ai828Sv/FtxhLOZOu0ue4ax91Dtm4/RDBFvkPvPolOwL484/v+UOaM2se0G91GVyi+7c ZcLO028DE3dkrVyrjO9W4iR5nCq9dUykhD5bwrQ+rpBKmztE/4BsdQ05nJCbekNGB5P4 wQAOiyvk8SOz/eJNwRnytXAx2ykjlzc3ciqMBFtYFFnjtMcdavFzOCFmxqkZsXGjyJyL /J89VDgc+rK+XrlxB3hrRsUcOGPY8Q4cY50v4rlKuMu9Gbh7RXD1PuCvK94CLDFUVi6t BiGA== X-Gm-Message-State: AOJu0Yza4XLCeViun9NiarX/hnm/B1X5Wo1cX57I4tiWKUmD4wMIT5Yz gV/TqmRJyTGBYia5pYnDKTra6eNjOrRrXO6HMBa6/YGuIOHJgLNyX1sxPA== X-Gm-Gg: ASbGncup7J5GsHmC0ce6BHyyEfOJzeQ6ej93YmbqMB6CL+hAD4GlHhgDONsDBcQN+7U bLy00Bf/fMGTPhOYWSTs2eeTEtyTqkDqZyuMyMpyovwtMJy7vdoyA6S2oQfVBh0fEvYLTSI/1oI PdI3iHP70TIaSOKI4zZZ8u/AVEx+/XhGXPEkh1tRwbiG3xhfWfKIuprrafoW3vEB3kxCZJ/Rl0K qt7D+Drjqcl7Dnwi4NRMGAk8Ss3T4J9igSY+b4sn1U2kFDcBRNgBzW/4vpslfDhuegvSs8uqiyj VP3cPLWOweTuAAc0i5VfgBfIGfPCAee8ieF6Np09XE8C6j0g3pG18iM= X-Google-Smtp-Source: AGHT+IGgJQDI4IHylZFIDtQP5faPt/mYI2tYEjIFxLVTRhgUOHA5NHIKoLBA0dN/FOSBRHbYiflSaw== X-Received: by 2002:a05:6a20:3d89:b0:1f5:535c:82dc with SMTP id adf61e73a8af0-1fe4330dcf3mr2018511637.42.1742513152250; Thu, 20 Mar 2025 16:25:52 -0700 (PDT) Received: from pop-os.scu.edu ([129.210.115.104]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7390611ccf8sm416306b3a.120.2025.03.20.16.25.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Mar 2025 16:25:51 -0700 (PDT) From: Cong Wang To: netdev@vger.kernel.org Cc: jhs@mojatatu.com, jiri@resnulli.us, edumazet@google.com, gerrard.tai@starlabs.sg, Cong Wang Subject: [Patch net 04/12] sch_qfq: make qfq_qlen_notify() idempotent Date: Thu, 20 Mar 2025 16:25:31 -0700 Message-Id: <20250320232539.486091-4-xiyou.wangcong@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250320232539.486091-1-xiyou.wangcong@gmail.com> References: <20250320232211.485785-1-xiyou.wangcong@gmail.com> <20250320232539.486091-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 --- 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 6a07cdbdb9e1..9f8e1ada058c 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 Mar 20 23:25: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: 14024677 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 E9B0F22AE68 for ; Thu, 20 Mar 2025 23:25: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=1742513157; cv=none; b=ERC+v4SfuRBQE0a/Wi5qQv15HMvTagvaNVBuMAiOpN2gd3qIb0K06cTZd4uEr+DnGhNsoKVdADKge6yckQrL9pXhXkjyJJSQ+2B+VFiMGBjQT6EAfpncmuiAGqK1lUsRcv297G6DlkEMk57Li3UbGVys+rCLkAgbieilxkc/eDI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742513157; c=relaxed/simple; bh=pQeK2BrF55u/0EXsKN0Qf4SQL6dnj2ecn8e7A3L1A0s=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=jPhl0XzVxYZg3OeHiHlC3c5zKshIabqbyUN83mWq55qZ80jotbBzeKg4PTNUE1mYYa4ewTi8dIYOI3IKLdJy4q2MPTeQTZ1ScnPjWGVaeHqBz/2nIbGMulADt2UvxpWSq6svbE0TtyhVgxVxbNLveINNGP78Eqz6kyH9ZVDkikk= 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=ncSKF2i1; 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="ncSKF2i1" Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-224100e9a5cso26647705ad.2 for ; Thu, 20 Mar 2025 16:25:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742513154; x=1743117954; 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=ncSKF2i1W4/YUVaaI9Xm2b/Nz5KXm/+A/UNhKyOj0+//PoxwlZiUZtGHN2YufRqfWl QbTXLIFjvqFCUBsRvm1m328XTAX1Eniph4jxuW/uzTcVBmLMAc9FQxZ9JECBIVa7eDvr qTc6SpHDDPiuICnfNNrQexZ0wgIJKmPd+vyoF7nbq6WHPTNK1JNGib2F9/N6BB/4mbZO x+4OjOEnAb/hFw6Imw6fOuhJLseUNEUsK296r163D+X7pV3SNwH5KNV8qy2vM8Y5UEBY Np2L4Eror17mvHdHYBmWCBPUynCOLZOfHr9DCdhoiLgUu3ro0RqWvIY+ppVS/tY7X4I8 Utvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742513154; x=1743117954; 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=EmYAQQBE6A1vO5ww6340xkReZRnEbBnEVbXl6b8adDdtEcxJ0fqKnJLgewkfDT1Fqf WPnn5hJXdWKKOl0WgxeQTPjXDKNRXksocg1s6C/mivKS44tgk+C/wgclb1Uj7RssS5xQ leObXki7Gs3A21cqjnPLefN7ayWVL3rbJlcphMg8pGW5CVtwOddLVFH4hdFBEqLRd9m0 Jac6cXJ+cRv2awB+77Da19P/VRqwxqs8808csb6S8TiEslZ16pGfUDpm6L+jzqeDbq09 nrBaozUF257dwROt0XFu/XPyKkuKOgy09gj5jX7Dh7JGL0ynIayaAixhwDPDoSZh96Da I5VA== X-Gm-Message-State: AOJu0YzWMZloHGxHrbixoZKYayH5rn9Dbpztg0Rl4mBisZjLyr29l3gC VUKyaOGqZ011hTybnY+PuomTq3GoViv0E9Qb+haOo54mZDskoDh2C0yiHg== X-Gm-Gg: ASbGncsExQq+Cjg0tgmHBNr4zNQLfxg0Lx4GJHb2uYlJT0SaHJE+16pzRISxwheURle J0PeSrrPOJwox5mz1U0eY7d9u6wF0FrTbcF2lgwSwPGBAFuyxUVjqATZ0UR8xYbqWHF/kWmwT5v DcHXiunMZKTSGeEUzZrG6Jj0hPbKPzYrMU2hWBA1Ri2+rU5rTQr8rYzCebOl/cHh26H0fT5yeCU 4gVwI3KMJ1GuaCq/AtR4Ksh8BfvLLm2N9y/t/XaxZ4HYBs6QAEG7A14Qma+qu0y4pd4Lhu/OCI1 08tEk5Yi3yOVI/6zP2sY9E6jzxzPnvIhgiHDwjJBJ83mNN5zJZHX4YKEgaC5CDiGeQ== X-Google-Smtp-Source: AGHT+IFf87YePQ0f09foI9ljWfF+G9xS6y+YMbqxzOetLb/fAEoUbSK5ZvCaJL7A+WBdb2gZLaG7kA== X-Received: by 2002:a17:903:40cb:b0:224:e33:8896 with SMTP id d9443c01a7336-22780c536c7mr18302565ad.11.1742513153656; Thu, 20 Mar 2025 16:25:53 -0700 (PDT) Received: from pop-os.scu.edu ([129.210.115.104]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7390611ccf8sm416306b3a.120.2025.03.20.16.25.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Mar 2025 16:25:52 -0700 (PDT) From: Cong Wang To: netdev@vger.kernel.org Cc: jhs@mojatatu.com, jiri@resnulli.us, edumazet@google.com, gerrard.tai@starlabs.sg, Cong Wang Subject: [Patch net 05/12] sch_ets: make est_qlen_notify() idempotent Date: Thu, 20 Mar 2025 16:25:32 -0700 Message-Id: <20250320232539.486091-5-xiyou.wangcong@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250320232539.486091-1-xiyou.wangcong@gmail.com> References: <20250320232211.485785-1-xiyou.wangcong@gmail.com> <20250320232539.486091-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 Mar 20 23:25: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: 14024678 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) (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 5D7B722A80A for ; Thu, 20 Mar 2025 23:25:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742513158; cv=none; b=D+kLJvlgaIXgZ9Gt2+J7G7wifQ+JcE57jKV4uW5MzPkQSJamF1pKggCxZysWXSviaXqwRLWYZXsahFEzvDFmChvKWccqmUVem8IARXivZ7/Wt0M6i2oWU7QKMG5F+eeOuULRYo03H6Gc9T4P5u8cbgkjLy5o3fbxWdzDRBQupUM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742513158; c=relaxed/simple; bh=t6tu05ly9QjPCEx8sdlAFw0widD9kgarU7JHERAbJmc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=PhBZzv5M8zGyGB8HCkRMrk+nXgXgKHSmpxFQhznfyV7m1uJ7iL4TyHuKSJTi4zfP3j1hZOSnxqnk22EIb6JN3CTVTdDLYj3c1Wfy0YIjk5/fpWDqtUBfXjNCkePZNs3sUJeYbQFkKHGWiI1N7iaCBIERdwl84wuLRR3kozr1o64= 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=LnQk+wRn; arc=none smtp.client-ip=209.85.214.182 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="LnQk+wRn" Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-224341bbc1dso27340935ad.3 for ; Thu, 20 Mar 2025 16:25:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742513155; x=1743117955; 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=LnQk+wRnEfhf9T31+9Ktu8hAsfcwzcq/amNiwEvW1Tmg6siCIIOzmL+Xva0euafei/ OFHiLnZ570ZudVOrhPu+XN8tH7/neuAyE35rll1Xm3ByCelRPNfFqNGC0GEQNSS9QzkA 5OTp8CHdznIjQEEAiXC3RH+e2K2hv+Sxm///NSImziQ+QLfWWf/9ncnvw5gobyhoc6Sd XGzKZQKAFAWx1JRYvFUTHy9KCmWF8So4MzYIjfTj0AAc8Sq1op6NjJHALMvKv4GowB9H TWlbDydxLrq2Mf4sIncyUc0jmpC0qmX7Yh45xgh0F0I4JHoFUr6ZCk7hM0jP88kuL2Se wkWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742513155; x=1743117955; 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=ZihGXLHfR4rHxK+RzWrJpTDE3eQWFpiv+9nPh8v6P9/EJoDDhQJzrL8q1EJuCNwTYm nzM+TN/H7BpvAYzna0TGj21AncFkdmJ9S+TbDwi1J5evqJVeIPAcX1Nc/fVVHNUQ4zpI 3pyJ73LtrrW90hAyVOMOdlZjWj2jeEQPsZAoG/2OMCbZGxGcWngbID8g8T24oyi3tIHK Py9zilwtjnIlHXN/CLVxvUEiYDyDuQ4nV1VvoZvlisHEV6ybogJShroV6Jc7kaUBPu// fF/dqYLn/dljE0ilJDCv/HBFB6GpWEGj2IxY4OiTn6IyB1XyvUF7Qm2/X4tYIsjxUS0B zVdQ== X-Gm-Message-State: AOJu0YzwEtloMmgcAsomhnwouzE+8bIXLJNJQbtZqIzP1+TcjBsCLcKM ZQ/1OUaGl5kM8qAxsG1rcGP8bzukfyZHI3du3utXTIgRPjeEwMyAgkr93g== X-Gm-Gg: ASbGncs5CD5491xJksHSpshqOrbK2tOqhwq7yM0TQHBXUcb9NGy2OtDgML3WJu1x/+s izIIwpFutclOScsYkfC1f3gpCh/Zcqq0pRpW9vXMrbm+7cg6Scla2ORhUIAG/SmlFu7g2uaVLKL 08/wNJ4EQZVwKiVoGB+guRAY7kD96jEONPT5N0fPiZc5fmht3GZ/iWsYc0XdSwTBHATLgKUj8Pd j35X5vHL4EWTd2ouQdB0k8RvBkfJgxy76JX+e1wyVts+eLalGG64+15TihdtcVpViQ5whIb40SP KSvodGpePXqnlgJQdGKxcjZE8WkGaj8/pT2rXx6U/+AzyRQg5gHDDto= X-Google-Smtp-Source: AGHT+IH9OJmEgMKEdQnlc8d/v29kXNmX4hHSwvtHRnS4bj9aNUyQq4s1RIHNpd9w7S/zJFL6pXbcaQ== X-Received: by 2002:a05:6a00:1886:b0:736:ab48:5b0 with SMTP id d2e1a72fcca58-7390596681fmr1699027b3a.2.1742513155107; Thu, 20 Mar 2025 16:25:55 -0700 (PDT) Received: from pop-os.scu.edu ([129.210.115.104]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7390611ccf8sm416306b3a.120.2025.03.20.16.25.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Mar 2025 16:25:54 -0700 (PDT) From: Cong Wang To: netdev@vger.kernel.org Cc: jhs@mojatatu.com, jiri@resnulli.us, edumazet@google.com, gerrard.tai@starlabs.sg, Cong Wang Subject: [Patch net 06/12] codel: remove sch->q.qlen check before qdisc_tree_reduce_backlog() Date: Thu, 20 Mar 2025 16:25:33 -0700 Message-Id: <20250320232539.486091-6-xiyou.wangcong@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250320232539.486091-1-xiyou.wangcong@gmail.com> References: <20250320232211.485785-1-xiyou.wangcong@gmail.com> <20250320232539.486091-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 --- 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 Mar 20 23:25: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: 14024680 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 C2BE9218ADD for ; Thu, 20 Mar 2025 23:25:57 +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=1742513162; cv=none; b=hJ8z2BuSEYSSGzFy4tjimxhIcPwK3MoLTeoeUoMCbh6r+sCSkBZbU7IK0t82QHu8AHIZhNU2g+STGKjhBkx2L0D5b+Vg0InfQWM2sK2UHvBcMwuVJOlxNcZ0w+7ps3VQ9egLNApFMMZ//8hR2w1v161d/3lYHaG6c7UAHt8Or1I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742513162; c=relaxed/simple; bh=dApKGmJ/IF/wGEWe4n8B5OuVLv2uAAZs/hIwWmymfaU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=P4hgxdLFv/hEQUQmc/s8T88KmXMpOCo84A3Ao67eC5jUsjy/MYth/fDhH+NEaVSWwv3t3QYrHEAkTRuwAsveKwgUnN5ZIr8BdUm6GEbZ1WRpz6MdU3LuVfzFAcR0cI7DFHPpsIYOX1fSMCPrXTjH4+Yn938vu1bqnDhyyCDJJHQ= 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=Rnx4gX+M; 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="Rnx4gX+M" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-2241053582dso33592045ad.1 for ; Thu, 20 Mar 2025 16:25:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742513156; x=1743117956; 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=c2RGUSJ1w4xWHYvp/jlzn59SSKnfWw+9Twnn1Z1lsAU=; b=Rnx4gX+MFs3SFPq4nPuYflC61yd6WoK/UG/35Zkom8tOxAPcbsWFlljp1jdPbtwZkt 1Wt/Cpl/slOw7n0EkK4eENoOeDx+nNX/J0ygF1x2sWcniI+Yuu6/R9ZvHdGuDBTFZ3HC 4Hp+ect88mBOQbeK6tsT4Pp8zfOTFgmvmMN3mDvO0bBAqLbXOqfRXDCWEjswD/g8RK+j 4txACw+lqUpH2M/L8g/NeJZ2teYLw3eruzD0GyKkz64As+5DQKsbHICxAc+1DJ9n4ccL KMq9bxgvnEZmjizVimzjpF45D4ylzgr2GHg7jrhrSnVnAdFcVr536bJfTdYU4+BUDkeD hRCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742513156; x=1743117956; 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=c2RGUSJ1w4xWHYvp/jlzn59SSKnfWw+9Twnn1Z1lsAU=; b=ImZtVfBpMecn7rAvAC4uQ5Z745aSLL4mNlnxgcFCcLAwKdPXvnYhhgsCDbuBoRxI9q DfqyJVaUvDXwHD3o4ufUkeANhZyqKfLSeDIaR4oPBNIdA8j8T8JtBXF0fSq68JiJD2VZ GHyEz0NIH+668wmQXm60BaIcWXL41gqK0e67LQAaOJjKWrf8d3eQlhb6HNv6PUlKwSqu mOmtROx3aJx8GlM1fN5E0vc+ApJ8s3boaeLd+LYikNII0+NtpIvaa5HJJBUKBArHSBAM mXsBzEr/zihipW3QSICOgBHeM5uWGkC9SLiM2CYU+uJr/zUVg47ZuoWI+jARgd5fj7BR 1dgA== X-Gm-Message-State: AOJu0YypCcuSRGJ03s1xxw3vc0k9o3mCfcce3mRiGs5Fco23EN7yPVBH udv0O4z6L5Mpurtj6k64rbW4WS0oJbCYZRUPi6Qq3A1CpMghMsPZql8vIDMg X-Gm-Gg: ASbGncvozpCyqtNSvNYZsAafWymrPTAFMkC4ozNEzg/4ggmnMElPv1tdb/YLe0PRAY2 n5CeL8aFk+tbpLlLlxDRxjQYKtTPmZMbGjZIfr0P7y0nlqusIRt5xfn3vXTkd/NSJwm/gIhfO2e m651uYM9qFiVHR1tE/j5KlsWUPstbSnJ3Y/06gCzghHwfo1TjHF3HtUcWeqQOSyJDkBL3D2Mvnc LiFdGBh6sR6so4ENtAL8tZTWZWD6+0i5J2lBc9DwnI6ttgjWjLFdodOjLDXr8xZupwYvBiZbg27 9peuQ4d64f60/7HeE25v1SD1s/MUhTfbA5FEQaZL3GDxYSxn45MtBCo= X-Google-Smtp-Source: AGHT+IENDqsMgAt7miux9jGTFme73My/jmhTSgpiWcIAAvj2ITkE5k0Q7qws6aApPTbuuAm+tBVM/w== X-Received: by 2002:a05:6a00:1409:b0:737:e73:f64b with SMTP id d2e1a72fcca58-7390593b7ffmr1775638b3a.1.1742513156528; Thu, 20 Mar 2025 16:25:56 -0700 (PDT) Received: from pop-os.scu.edu ([129.210.115.104]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7390611ccf8sm416306b3a.120.2025.03.20.16.25.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Mar 2025 16:25:55 -0700 (PDT) From: Cong Wang To: netdev@vger.kernel.org Cc: jhs@mojatatu.com, jiri@resnulli.us, edumazet@google.com, gerrard.tai@starlabs.sg, Cong Wang , Pedro Tammela Subject: [Patch net 07/12] selftests/tc-testing: Add a test case for FQ_CODEL with HTB parent Date: Thu, 20 Mar 2025 16:25:34 -0700 Message-Id: <20250320232539.486091-7-xiyou.wangcong@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250320232539.486091-1-xiyou.wangcong@gmail.com> References: <20250320232211.485785-1-xiyou.wangcong@gmail.com> <20250320232539.486091-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 --- .../tc-testing/tc-tests/infra/qdiscs.json | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) 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 9044ac054167..06cb2c3c577e 100644 --- a/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json +++ b/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json @@ -126,5 +126,36 @@ "$TC qdisc del dev $DUMMY root handle 1: drr", "$IP addr del 10.10.10.10/24 dev $DUMMY" ] - } + }, + { + "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 Mar 20 23:25: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: 14024682 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 25A2E22B8B8 for ; Thu, 20 Mar 2025 23:25:58 +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=1742513163; cv=none; b=L166zEBDIAnhWI2Hyxk+Uyur1HXS/BCotlTSmJQWsB0mMjv7AfNH5fei2oID0pRJhezlmiG2aIebTEiJEsmLKc4xTIuVcs9mf49i7nhPIFfSXSLbThdlen4MELfDMq0P2mf58oE7ZiyH779u88WArg25zzWAOXyvfa5kFQ+ntQc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742513163; c=relaxed/simple; bh=/1sqmZmhR34/BnGPvqdoNoupFMlj0CxTh/BwTtGaccY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=CPVOcgS5TmWGjZm9hDn9Rd6Lt7OhSae4YMGpPKpepfcxeraoxvyZIOHeVptJhd6Hl+9Ns3SmhIbUrHitkTFJw0tz1A58OLpTWkwcK759IgbSV8ARPwtb4Acq4x+2MfkX7SvRUOLYENa9Fmk+79dEZzM20fQ0XLSAIRY3X6mAxjs= 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=aHh8oKcQ; 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="aHh8oKcQ" Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-2264aefc45dso38574535ad.0 for ; Thu, 20 Mar 2025 16:25:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742513158; x=1743117958; 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=Kui4B9TaHJt0XTEqMqW6PZHu/E05QTdnvVauq7ZGjE0=; b=aHh8oKcQNRF+t7EZ+RzNPUMoEY1FcZ/o4X01dDCnvGo3yYlatSmV1WbBFetpQxuo25 4pUUKxm7DEKBewaHvehzfS4leiYRrmG685skrDQXedyksq4VR9s9WJsOC6ii9HlXrfwx UUnPChTjZ9L7Z+vg+c9hScSNs06ySjF4DBcPbx4MQI/A7Kg+CGoQOa3Msze6lU7XqEHU Bwcojn/N5bgRrPEqDhb3OtmYxZS6eOgOemjLlDzkWbGOO2nuQNKnvwafL6cpNQLZCxO0 f1BzG+N/5g2DaFH4x3LJxyMtmttfBQf9dPj4vmPkr0zPYw8+uMpcDVpSn+CrFz1/Uuj8 8j3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742513158; x=1743117958; 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=Kui4B9TaHJt0XTEqMqW6PZHu/E05QTdnvVauq7ZGjE0=; b=jMYqIrOe2UcFJXZGpXga0RJ/0MmIOgHrZc9AOYwB+XoPWJ/xm62zyW02kE0B9i5X9c IlTLHDkRL7KMizzdsfjZTT5kz9kLsyc831/dQkRikC2wniMFsSNrU6MQIDGbMia5SXmX PqjcVVtie1tBJ/G7/5oAZ1yBCnLeflzcPm6CR9m5ItC2AjM/JSTQB/TcAXdGtCQgw8kx vy9u1iGw2rZU3LgIxP6RaV3wgrcVpoNx8TNwz9lkFXSYISOaJbnCzkR7RaFLV70+6/Ng vPdnRUwmDPOsL7NHSM40+kFjvj+LkynO395zSCHM0tfYo2oqefwhNcxvcbc5O+os8UyF 3f3g== X-Gm-Message-State: AOJu0Yx7T9Q1U2zI519IQTbl6rcYYy6czHMXG5v76FBt2m0vHHZrph1n CQD/EIrqpaZ0/qV7JbaH3AIoSoplydIXuVf6mQuG5NmG9/FaPmIiMOnejbMf X-Gm-Gg: ASbGncuBbn0qOcr82xisv7QReeoHAjQCHYG2s4yv9X4rOrbwz7w8zyzGBOiUudNtjyL ASzgyQnVzYKfOx3k/3a3QqTMCdhKdcsFV0co8eatIMizGLCHXzTM3Y9mLeb4nwilnCIvc0I5wyF XSia+40k0QXdceq1gteKkBn2UnPCQ4p3+burQqP+8NU/yA0xqm7L9VPZ7oK6JGXPck9XuqnP2My oBbgFoQ+iIQu/FYrgX8tOwcbmq+EDij6FWPMY6LprW/IYB7R7V8ZA/5N4uvzJgSOcc+6rprKeUs RiEiglok9lua0EaS9H2hxp/g77pmFa3u/TmC8XYyjwn11jrfqNwcwVY= X-Google-Smtp-Source: AGHT+IF+D7ABl/mZ6+SktP9HayZ6ulS44gk4hE342AeUnQV9TL+78RXgnPmeuUJRaiS8iBmTEvjBNg== X-Received: by 2002:a05:6a21:6e47:b0:1f5:95a7:816e with SMTP id adf61e73a8af0-1fe42f9c4b3mr1988152637.23.1742513158060; Thu, 20 Mar 2025 16:25:58 -0700 (PDT) Received: from pop-os.scu.edu ([129.210.115.104]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7390611ccf8sm416306b3a.120.2025.03.20.16.25.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Mar 2025 16:25:57 -0700 (PDT) From: Cong Wang To: netdev@vger.kernel.org Cc: jhs@mojatatu.com, jiri@resnulli.us, edumazet@google.com, gerrard.tai@starlabs.sg, Cong Wang , Pedro Tammela Subject: [Patch net 08/12] selftests/tc-testing: Add a test case for CODEL with HTB parent Date: Thu, 20 Mar 2025 16:25:35 -0700 Message-Id: <20250320232539.486091-8-xiyou.wangcong@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250320232539.486091-1-xiyou.wangcong@gmail.com> References: <20250320232211.485785-1-xiyou.wangcong@gmail.com> <20250320232539.486091-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 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 --- .../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 06cb2c3c577e..3ee3197ec7d9 100644 --- a/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json +++ b/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json @@ -157,5 +157,36 @@ "$TC qdisc del dev $DUMMY handle 1: root", "$IP addr del 10.10.10.10/24 dev $DUMMY || true" ] + }, + { + "id": "a4bd", + "name": "Test CODEL with HTB parent - force packet drop with empty queue", + "category": [ + "qdisc", + "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 ceil 1kbit burst 1 prio 1", + "$TC qdisc add dev $DUMMY parent 1:10 handle 10: codel limit 1 target 0.01ms interval 1ms noecn", + "$TC filter add dev $DUMMY parent 1: protocol ip prio 1 u32 match ip protocol 1 0xff flowid 1:10", + "ping -c 2 -i 0 -s 1400 -I $DUMMY 10.10.10.1 > /dev/null || true", + "sleep 0.5" + ], + "cmdUnderTest": "$TC -s qdisc show dev $DUMMY", + "expExitCode": "0", + "verifyCmd": "$TC -s qdisc show dev $DUMMY | grep -A 5 'qdisc 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 Mar 20 23:25: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: 14024681 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) (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 927BE22A80A for ; Thu, 20 Mar 2025 23:26:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742513163; cv=none; b=ZhYMX6QhtchFa50TShBVX2sf/bTCS0InN4fFImBLSG3gjOZi2dy2/x7wqiXG6+4ugUV4COiGNC+eadMk4otU+ByVPjHhuM7QqKWbpal0TIkt4L57ue7HI0InmCYNrlYsptpAMHFMi/0NsSranuebWAxMi4UxP+168X//0bT8QtY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742513163; c=relaxed/simple; bh=N3gwU2aYFgLjz4sJd3sme4Kcax+yzrXCg3WN5uhLEVI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=crscLeQ9iyI3P/aR+YbkP3TYz7hDWBN7YNuSE1NzL5MXPHfTCldKWU6tVqoE4DAnA68oaw11b6HcE4dHFrzDxWa/WodqCoN5dFmYVmu+rzzOn1x8cp8oAE2Mdue+Kcvs0pwUyRaQnkymMZahs55RTjnwenIp489Ehe2HmzMJjVY= 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=R/tizkAk; arc=none smtp.client-ip=209.85.214.179 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="R/tizkAk" Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-2235189adaeso26374845ad.0 for ; Thu, 20 Mar 2025 16:26:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742513159; x=1743117959; 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=rHCFWdnmwqvUHW4PbNGpgV9QRjiKmpmsUuGO9NWPrKg=; b=R/tizkAkkf4VEsHpoVqLZxaJeJNHK+Uphbl5qfSxiRjO4WWQN7Va3z+5pp+A0o2xIk /UeiEBqgRg7oeQQKDUfcoADi+72JztP7027TxEZeQg8x+TIvlhJ8SqWUpn93NAN8nTXo xqMul9wGYdXG50muqwiMCClNj+KZUVq+eeh0642clK+CLxDjNGAuMIMI0xNG6YtdFGzB vfUJWDMDcu9Eq9zhwCmwjzx45bQSnhQPo0uGGc39ZeFDgkrgUewxNoSqTw5C2E6fJN/O lDBZ84lrGERLVAsDUCfcHb6RJCusIftbsvfWGua3zOgjVAgpWlZBSoAM1X4SbiB/Mo3D GJzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742513159; x=1743117959; 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=rHCFWdnmwqvUHW4PbNGpgV9QRjiKmpmsUuGO9NWPrKg=; b=o6RToHVoxSRvNUBXxRoTcuYU2H9i9m4jtFk/RWGRPoE2y7RoX6v9IKcm6HtM0qY8sY isFgYNsnFwCnntDLJ/vFinQ4BiP9DED+whZXCnoU2R1SyOfELI/6H2QrfA6V5hk9g4RD aDR02hHnUdjD0ZxsTAFdUMpDPK7eqUFL0m4nK/68hy9khMIUIJwguk+k22Boi3Kbts+p aHRTbgrpT0TH8DNX3+PG9k6/14JwvvCq4zgt464k+HoSBTxJiL4WgJLUGnJcJMbq9WyJ SOPNoeop6yarFsrQg8jsJI6XYhlYx6JWC9CQVWiV9IYaYKu+VtGwWc7vqzBZJiQ1kFW2 DliQ== X-Gm-Message-State: AOJu0Yzo1eK8KWfCW+ruz8R+jkareLOY0/kyxXbw9a1Y1jeL+HyHXaVB ij495XdgiyK+NbbFXHmlCoRjcvxBMn8p5dyamkrYFbqeSe1k3fSViAONeEMA X-Gm-Gg: ASbGncsHgkD2N5Ac+kbbIuM4T0SOtePzQwS3X/8My+mKpAfa6ZaOFiZKJQUKSpQV4Zt wGce4seLCrd9+MmWzV+8svJZ9iK9iTPIeWHG09bjG4Qp/c1qYkeU/g3wPkZ+VoUUQJtl6b3d7Sd DJ8tmzNZncDjxy6EI0/YonNR10urMIj8pRz3XiHBi1DNyv6DoKHmSCLqnUxoHFjxr1A/iGAaOMa ItB8dJqwv3Y7P4PVD6Wa5mxzZ3h0pBkLx7/l741F6I3MtE1LS+IHQFLOthaVqD3hZnPoRgsut+F n5Rz+X5aLkhFmncEv0hu8bs/LxWeYJ4NpcebgZrBx2WVcHeUqvsrNO+FygcVr8hduQ== X-Google-Smtp-Source: AGHT+IFHdQhvS1Rq1/sOY9zqhitAiwBZ8dRD9GN1xjxyWAGqCfZeeysDkA6bzQli/pVyR/0jL/jLnw== X-Received: by 2002:a17:902:ce84:b0:223:fb95:b019 with SMTP id d9443c01a7336-2265e7a1b2emr87029745ad.24.1742513159421; Thu, 20 Mar 2025 16:25:59 -0700 (PDT) Received: from pop-os.scu.edu ([129.210.115.104]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7390611ccf8sm416306b3a.120.2025.03.20.16.25.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Mar 2025 16:25:58 -0700 (PDT) From: Cong Wang To: netdev@vger.kernel.org Cc: jhs@mojatatu.com, jiri@resnulli.us, edumazet@google.com, gerrard.tai@starlabs.sg, Cong Wang , Pedro Tammela Subject: [Patch net 09/12] selftests/tc-testing: Add a test case for FQ_CODEL with QFQ parent Date: Thu, 20 Mar 2025 16:25:36 -0700 Message-Id: <20250320232539.486091-9-xiyou.wangcong@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250320232539.486091-1-xiyou.wangcong@gmail.com> References: <20250320232211.485785-1-xiyou.wangcong@gmail.com> <20250320232539.486091-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 --- .../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 3ee3197ec7d9..d69d2fde1c1c 100644 --- a/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json +++ b/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json @@ -188,5 +188,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 Mar 20 23:25:37 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cong Wang X-Patchwork-Id: 14024683 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) (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 05AEA22ACDB for ; Thu, 20 Mar 2025 23:26:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742513166; cv=none; b=nh0obCGbUmjp+tl18GRVHSLYrocfEBT0ItdZLuFKN/dl0JcSIUeDoGK88Nsf+OoNJ0iMZOoSqqglJyO+34sorDc8Kj0HiCySoRLgHCFbmoeCqBz1BzPMtbS8Qvkt99lG144tINF3MHnugSv3A7nJAkxFtuEJLQ3exai6snukjAo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742513166; c=relaxed/simple; bh=rgJPGn84lYiwSPcaPyC4SWzFJw/MmALLLI+mnAzKjuw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Jk5ArR22ixCJh9Nsfqid66AUdHffr7YC3jAUqDQl3bXVCT486r9A+obZYkJOYTIX80L5OS8eKBh8xBJrUNxCeepa09JFgk8WgDDLP95UcPW8P6iSx6Fg/r8lT7Tpbk6zsYdmVUYNWqvywvibT0K+5v2YjebAE4TOFuH1XT1ySb4= 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=A4Y0Mequ; arc=none smtp.client-ip=209.85.214.173 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="A4Y0Mequ" Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-22423adf751so28397615ad.2 for ; Thu, 20 Mar 2025 16:26:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742513161; x=1743117961; 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=eemftbTX5vousJBOkcEl8+WVcNUJnBC2kGgX5gtyLzE=; b=A4Y0MequSxyg+7mhmgiMkicb63CzPdkjmeBKF8qblHIHuLSmQ6dvrPX89Ln1XEU5nh EYMkw+xGulejVcDeJbauVKUmYe7HnkxcGLtt7WehmjJ/hh9InzZIa/IOXuS49UDldg09 9p79wWTi7gv9JXMHjE47w0kARYrUZTN7FJ7QLOoU+eEiUD7Z1OUM/exncHhZg479DP2n 8i377POnyFSbbQVVG+m+CgXQioaHpAD59cQ2s5CYATMU2OA9Rz79YrTiAgDgP6VEUV5D ZObgYu6GmKf96CgFn5fZ1jCGvke7xSR9XgwYgIQs8+pqQx/wTyZPPoqDI0A+/UpCKIaN 2TLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742513161; x=1743117961; 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=eemftbTX5vousJBOkcEl8+WVcNUJnBC2kGgX5gtyLzE=; b=V23o7+nIKdaglM5p7kSo7WupeGNe5nY6DvCa3HnR/8G78if/kCcsLs33Uvx7YjxaEZ ktw8Om7YFh0Ca0viePfCJCUMrcWIk2OnT90ggZXThSfNngBwNuE0YiqITT4TYad7/Kix 3A/QnVfGXNgJBVZwz4MnHc6U0QvIXeAhGLqOgztLev4oiEX+ln64b96ihwB5MiDPJd02 xj4emlezq7/W3UbLCz86f6hpVcFhZs8CEUxU/2NECmWjPfsNwE/B+1Oum/wAEJwxcAGG UUva8Zv3MJbC3qvp6uOeQ0Ej98RH+IVtnUzRwrorCZZ1Xw8f7FB0P2HSY8zNaHAKkW5j 8OEQ== X-Gm-Message-State: AOJu0YyjvmY5PTsTkIjqByDL/JTh+jweei0ke8qiQFJAZoTHNNckwkdK vJaLCrAndpKuiyG2zsvUxIgS4QZKda+r+Bpya77S3WQjpBq7Uat3GQaquqmr X-Gm-Gg: ASbGncuiA4otuQdf2SeNJrUlsRqxDQIzxhQaEx7UoT2L2aOGZMChzUEx4SkRB2oPbbF ACs1HhupPZJzk+L6xJTAhmHlzE91WzQuZsYfI8aBEayoRmXgGG0f1dAJn//H+CXuJwFo+pNpn3B XjMNa+G6mdgJ2cxSdTwNEDppxNy20o1l3tllkwFqmn0yNOwnj7IR3qw3s4fIXe/2Q2zr/CdEPJ3 nWsvNrQxhiHYsq86OPBLJfvetNU6idsuYvcy2Kbycsvp51tyfW8qpg2wchooi58dYJTAuftuIgB nJo6EDoo9FEu4pSFcw19kQwM80P3VpOEe6F8XOtkzC98eL+4dyU6B4trOtDv6Fq3UA== X-Google-Smtp-Source: AGHT+IGbJcpwEi1hSt1IiR52ag9cLCasqTWskBh441VWjmpnoefaRqJJNKKVCFudJFYb30YFm4POEA== X-Received: by 2002:a05:6a00:a8b:b0:736:57cb:f2aa with SMTP id d2e1a72fcca58-7390599d5a7mr1997905b3a.13.1742513160780; Thu, 20 Mar 2025 16:26:00 -0700 (PDT) Received: from pop-os.scu.edu ([129.210.115.104]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7390611ccf8sm416306b3a.120.2025.03.20.16.25.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Mar 2025 16:26:00 -0700 (PDT) From: Cong Wang To: netdev@vger.kernel.org Cc: jhs@mojatatu.com, jiri@resnulli.us, edumazet@google.com, gerrard.tai@starlabs.sg, Cong Wang , Pedro Tammela Subject: [Patch net 10/12] selftests/tc-testing: Add a test case for FQ_CODEL with HFSC parent Date: Thu, 20 Mar 2025 16:25:37 -0700 Message-Id: <20250320232539.486091-10-xiyou.wangcong@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250320232539.486091-1-xiyou.wangcong@gmail.com> References: <20250320232211.485785-1-xiyou.wangcong@gmail.com> <20250320232539.486091-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 --- .../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 d69d2fde1c1c..4fda4007e520 100644 --- a/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json +++ b/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json @@ -219,5 +219,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 Mar 20 23:25:38 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cong Wang X-Patchwork-Id: 14024685 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 48BE022C32D for ; Thu, 20 Mar 2025 23:26:03 +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=1742513166; cv=none; b=XnmfztVnlHq0KPR4+mCJ1B4x6lRORbvnvvU5UzbpQGZSqE6RZ86/pWxZV7BGjpIsd8TKsxYFMd/U90oN2PhgnpGeQAXi+rQcUMB7Wb9nA1UVPAXqMDtDYPXjpSiUnQ4oG6PKRGmVLgglU/FIkuE7ohlDlT2OGpNChfE1WSBKhdQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742513166; c=relaxed/simple; bh=IouXjPK4uA3QlzLpHd+s5rpH3VsMsB2Ht5FGfwxZvmg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Yx4IEOgN+7ze+Fz478W0Oo9j4C5LbFvwh9Gzedr5esf4mHY0b5rzRrbja41P3i+g2/ZMEAuGCRUSilKxuYbScE8zAFjelpPF2MJ6030D/rspPwSCvFKelyTjBuEIWgWkGmwnrfhAZ5vM8jf11Uvb9dQHe4+v4LHxgNQr0TNupkw= 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=OsvATv7i; 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="OsvATv7i" Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-2243803b776so36786185ad.0 for ; Thu, 20 Mar 2025 16:26:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742513162; x=1743117962; 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=c7qLevD6GlCR4BimJM/IpPgnBGSFrzZ4pdh6GH/q8ro=; b=OsvATv7ikO4NOvQE0uw64lLfO8Y85CUsAqESPUaDR1u4FZCYsUmQfGqCmGg1M4d1PF vCAkG0rsnST58UOlbv26wuXW9LDpiVuQ2h30MflgOuGPBFLkWNBDIlMsEnupFvgBy6bO k4g2LPWsbMpwF5pSU0+fTqL3DHx+L58Jc3rdVe6LoJ53C2t1Q9Ctg2YpW/XCXSKCtJ9v SbxG0a4HanFfY+RxNS2JQNsAyH42Z6dXHv0h7j5ic68+3jT9aG2SHfAbtO8e2ufDL7RL y76VxJbUBKNx7jAfzjXsgQ+myvISQUyw6jy1e1kDRDSfmhVNE1Lh0PCoc07ws5WvR7Rn DBHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742513162; x=1743117962; 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=c7qLevD6GlCR4BimJM/IpPgnBGSFrzZ4pdh6GH/q8ro=; b=Tev2GIGck/PTsdEHrsTwPc5pdn8v+C7dRP2JXX+N0SO4itZcspS9Renu9PdoFPyrWC CCGbUJhuG5AwX2FZZDYQuoa+0HZF+dBjB80IVXHr3sPft5VbRhoJj9XM5rlfJpS78neW +gcjgBPKGDJSrSzvjF24bv2rnWoplXJhMsECQPYYLNYDzVs55xVe+AWCGGccsZOvnA0f 5HsMWlBsp4kI6tBHOSF4ct+pNVScpoFd4nn4MZgaNfyAgqTOvKBdoCGidPX4hIbBdxYb 51QE+aj/Kk7B1LAwLRtf4UVSz1BEnKe1jpLfg2ZBM+mPl08hH7wygIE35Ty6OGt0h7oz XVoQ== X-Gm-Message-State: AOJu0YyYbCijGm5c+adkfJquYminEt36kkK9zr3q721ShNmmMIaiNOoJ MbKK9FUzeG1L9ueYq/xmWD5a1loz8JF5hnxqvnvHUwftNjpQZSStFtz0tmVB X-Gm-Gg: ASbGnctnbG6VyDtZQRMC6Y2McH4o5ADT2Lcr6Pp6HYaSEa5MGLBWCMr40enuEFverDB VYaxOezTz3zw81rPQwgGdv/PmorXw4H5zC0vWB4M3VxmPgIXzfRqHegbV+/APY58qTdToM1KoYH nwnnzu9NC6Y1JpOf8fTKp7E8sOaZ2PfYyfhvlmbdvLfKI6dSYGkkT/iqAuZL+YfF6fJxzDKXUch kkbX6qjgSsDOMz22SMfOaYmC5LJOekQ5CtMVp8JE8tQTQfvRkpBs9c9Y3pKGdnv+zErbIne9Crb A0jxAk45dDqtYmsZK+0n7E/g3Uu8JmyIydTXl6vlOeJpF/eYub2F685idBNp9SlbUw== X-Google-Smtp-Source: AGHT+IGG6fOqiwVH2pG61cYEoKx4HVIZiXEP40e+igenhwYx8g6XYyN1JHnSEuCI1ORk65+ypzJ7QA== X-Received: by 2002:a05:6a21:999a:b0:1f5:67c2:e3eb with SMTP id adf61e73a8af0-1fe43439eb8mr1951969637.41.1742513162256; Thu, 20 Mar 2025 16:26:02 -0700 (PDT) Received: from pop-os.scu.edu ([129.210.115.104]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7390611ccf8sm416306b3a.120.2025.03.20.16.26.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Mar 2025 16:26:01 -0700 (PDT) From: Cong Wang To: netdev@vger.kernel.org Cc: jhs@mojatatu.com, jiri@resnulli.us, edumazet@google.com, gerrard.tai@starlabs.sg, Cong Wang , Pedro Tammela Subject: [Patch net 11/12] selftests/tc-testing: Add a test case for FQ_CODEL with DRR parent Date: Thu, 20 Mar 2025 16:25:38 -0700 Message-Id: <20250320232539.486091-11-xiyou.wangcong@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250320232539.486091-1-xiyou.wangcong@gmail.com> References: <20250320232211.485785-1-xiyou.wangcong@gmail.com> <20250320232539.486091-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 --- .../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 4fda4007e520..a6d6ca245909 100644 --- a/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json +++ b/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json @@ -250,5 +250,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 Mar 20 23:25:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cong Wang X-Patchwork-Id: 14024684 X-Patchwork-Delegate: kuba@kernel.org Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) (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 EFEC022256A for ; Thu, 20 Mar 2025 23:26:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742513166; cv=none; b=sWgXv0UlAxtyeLI6mrVQ8kitZpBpiX6Ig85pju7XJyYGbuvWESaRLJ03UYByCudHcqGdrh+RegNNoIhgHVLw5w12w4iICGp/sDhHvNsmmwKBdyd6qXnhsCyXm2iWGVHvlCYitPjYjF/zxuMAlK6nOjo699TUjAjAZf2za5w/Quw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742513166; c=relaxed/simple; bh=lU3xfMh0qYoMIiSplM10X9CtTvMO8HnfZ9zDyMl+1+g=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=E0SBMyBK1rHuDPJJ/HhxFwZr+9YGU9A/sSWEL63BVAVgLDIIeIltfHAbPYjIPuO/cWoKeUysjNqJeaobYnCK5nuCobjOhQcT1WtWlBshZRkgEW5wA5z3WH64oHnmjmMb1AdkbsprF51nzpMmDqE45zu1zSajnovFv5V8f1CMfA4= 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=CNI7Um6F; arc=none smtp.client-ip=209.85.214.180 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="CNI7Um6F" Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-2255003f4c6so26464225ad.0 for ; Thu, 20 Mar 2025 16:26:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742513164; x=1743117964; 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=MesFb9x0ZQABDBU0pFo6C4lSwKMMx5MhhAXZ9rv2n9c=; b=CNI7Um6F1O6gHWK1jb0uIhL/S3B96cYbgukPqrbCr79xOTpqJNxB4lGzFPtTkL7/u5 PXVlbkP2UXCBDz7oxmO3LnlYQdTjadVhIVGQ15WXsaO0iaEIvG68osgRENXIcVvCBYdd Dg3Saa3OlRZZMquRP+tBax+SLs8N3sQ9To5OOclkCJ6U7x6VWEMToAnrtyTnchL/GV1v +zZZ22S7vrs2F6TP2H4jUDLB5GYb7gWhItePUMKllugpdie3CGH/ZfF2u3qxGX/aE0V7 mPzSldm1dFHCkHQjSL2KCtuiWS9efBOtdegGOjG4f0FgEMOSJFBcf2fFiwSfpVpg4Y0J Q/YQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742513164; x=1743117964; 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=MesFb9x0ZQABDBU0pFo6C4lSwKMMx5MhhAXZ9rv2n9c=; b=km3QdwZmDskgBBCvmDUTpEiTZjf8w2WpJ6hy0w5McWSEECm0b1kwv+vYfzDzkXR+Qv E1jx7r25+tWQPx8GokHq58HpTervpqabRQ6dsjCx+mPw/t9CCEMX3oNoglyBDpnFgjgs /J0320KkTCi0slXNdGDBzKJ/B5d4JtrRuCMGlFIceK95qa93faizO5SKRVn7slgZDZYC hW/J2ur36jzMWfu7C85izaktb7FnKZkvTgby2h7SinmT8KOeVJWkgI5rrrOMv0TZYSRj Dw05hMivoqdNzw6LCqGc+7/Cw2MMuZimNUhxDn4I/zJM4MLFrK7fImq2C87plSkmTzfF y84A== X-Gm-Message-State: AOJu0Yz8oI3d3BIb6keHtCh2aCteFefCbNrcutHSvpFzm7BoGXBSYpKC EXvqgfMI8F48lzcesTDRIuxsb2bLGFmSrEyfRhhWkEqPFErxexjqv/Uy9qH/ X-Gm-Gg: ASbGncv6gH3DK9WBwlDBptOJS90Pc3ZeNTcj2SvWj61OCNa3IBw+jLvyhilbvWwVDYH bhFwSf4gkqSAaAUJ8vcYps/z1rIYLWwlcneM5L4jkcDGEO9yaprwdmA1hlG/Kt6Ft1HrZ/lB2ns cWMHuzC/7RYqramPTR8qCQPXFjcxWZDL6mAKHSVdC/EZ91wNdjLQHU2UXrpnnuhyJbGW8Yu3vQF S2IVqHcYQ89cZjOw8agQHQ80STxumRD97LxnRbGtanQutk3eussPs5Ab/K/5qfslQErIkaeok+D bsXPSbxFQktC+KinNy/Ih2HiZVplI0Evo2Fm/BRJtGxXOi6+gFxYojM= X-Google-Smtp-Source: AGHT+IFSTLEGpzdDMtGc0MwSEaPOzZ11IIgObET1BsNuIE43xcqLuR1H3TKPYO2MZFN6frAfdGWPRQ== X-Received: by 2002:aa7:88c7:0:b0:736:5725:59b9 with SMTP id d2e1a72fcca58-7390593d43fmr1924313b3a.2.1742513163569; Thu, 20 Mar 2025 16:26:03 -0700 (PDT) Received: from pop-os.scu.edu ([129.210.115.104]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7390611ccf8sm416306b3a.120.2025.03.20.16.26.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Mar 2025 16:26:03 -0700 (PDT) From: Cong Wang To: netdev@vger.kernel.org Cc: jhs@mojatatu.com, jiri@resnulli.us, edumazet@google.com, gerrard.tai@starlabs.sg, Cong Wang , Pedro Tammela Subject: [Patch net 12/12] selftests/tc-testing: Add a test case for FQ_CODEL with ETS parent Date: Thu, 20 Mar 2025 16:25:39 -0700 Message-Id: <20250320232539.486091-12-xiyou.wangcong@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250320232539.486091-1-xiyou.wangcong@gmail.com> References: <20250320232211.485785-1-xiyou.wangcong@gmail.com> <20250320232539.486091-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 --- .../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 a6d6ca245909..3e38f81f830c 100644 --- a/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json +++ b/tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json @@ -281,5 +281,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" + ] } ]