From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.toke.dk (mail.toke.dk [52.28.52.200]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id BECB33CB6C for ; Mon, 7 Jan 2019 14:48:15 -0500 (EST) From: =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=toke.dk; s=20161023; t=1546890494; bh=lIGWTr0IEOOlMs0CD9wwtTYMI9jaE7ck/WX1Wcs2VzA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Hi3hPlZlj6jgCfCnChgJEUgjULGaspzzGGM8w9gESSMGMzTRmnC4dalePQa8I7L+1 piaHukMt/IrBrYHmvkEShPSZV+Ibii1nBOWh6TAJiTrpuADKeeFsCmQDYeML8LcbNb L3IFbl5UgMF96ugvevCgMX0rQqH7FRkQIThYQ8RskDEviQHc9eDHpcPqeEdN3uLodu 0xfX3HqZaMrsKMw98PCS2dP1ZDQmLFsGXkLulBp/k8otr6YVkz5wQnc2rSOd4TI0H5 vvNIbrP0uMbMbxYfXrRK3n6uSd0kYfMJqhVXgFzUw7m4jWKMhCAd+L898ZGrCB6o0F 5H9ifrJ22G/+w== To: netdev@vger.kernel.org Cc: cake@lists.bufferbloat.net, =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= Date: Mon, 7 Jan 2019 20:47:32 +0100 Message-Id: <20190107194733.31138-4-toke@toke.dk> In-Reply-To: <20190107194733.31138-1-toke@toke.dk> References: <20190107194733.31138-1-toke@toke.dk> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [Cake] [PATCH 3/4] sch_api: Allow reducing queue backlog by a negative value X-BeenThere: cake@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: Cake - FQ_codel the next generation List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Jan 2019 19:48:15 -0000 From: Toke Høiland-Jørgensen With GSO splitting in sch_cake, we can decrease as well as increase the qlen. To make it possible to signal this up the qdisc tree, change qdisc_tree_reduce_backlog() to accept signed integer values as the number of packets and bytes to reduce the backlog by. Signed-off-by: Toke Høiland-Jørgensen --- include/net/sch_generic.h | 3 +-- net/sched/sch_api.c | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h index 9481f2c142e2..7a4957599874 100644 --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h @@ -580,8 +580,7 @@ struct Qdisc *dev_graft_qdisc(struct netdev_queue *dev_queue, void qdisc_reset(struct Qdisc *qdisc); void qdisc_put(struct Qdisc *qdisc); void qdisc_put_unlocked(struct Qdisc *qdisc); -void qdisc_tree_reduce_backlog(struct Qdisc *qdisc, unsigned int n, - unsigned int len); +void qdisc_tree_reduce_backlog(struct Qdisc *qdisc, int n, int len); #ifdef CONFIG_NET_SCHED int qdisc_offload_dump_helper(struct Qdisc *q, enum tc_setup_type type, void *type_data); diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c index 7e4d1ccf4c87..03e26e8d0ec9 100644 --- a/net/sched/sch_api.c +++ b/net/sched/sch_api.c @@ -758,8 +758,7 @@ static u32 qdisc_alloc_handle(struct net_device *dev) return 0; } -void qdisc_tree_reduce_backlog(struct Qdisc *sch, unsigned int n, - unsigned int len) +void qdisc_tree_reduce_backlog(struct Qdisc *sch, int n, int len) { bool qdisc_is_offloaded = sch->flags & TCQ_F_OFFLOADED; const struct Qdisc_class_ops *cops; -- 2.20.1