From patchwork Mon Jan 7 19:47:32 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Toke_H=C3=B8iland-J=C3=B8rgensen?= X-Patchwork-Id: 1021560 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=toke.dk Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=toke.dk header.i=@toke.dk header.b="Hi3hPlZl"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43YQtB25PNz9sCX for ; Tue, 8 Jan 2019 06:48:18 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728191AbfAGTsR (ORCPT ); Mon, 7 Jan 2019 14:48:17 -0500 Received: from mail.toke.dk ([52.28.52.200]:34297 "EHLO mail.toke.dk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728118AbfAGTsQ (ORCPT ); Mon, 7 Jan 2019 14:48:16 -0500 From: =?utf-8?q?Toke_H=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_H=C3=B8iland-J=C3=B8rgensen?= Subject: [PATCH 3/4] sch_api: Allow reducing queue backlog by a negative value 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 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org 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;