Received: by 2002:ab2:6857:0:b0:1ef:ffd0:ce49 with SMTP id l23csp3179087lqp; Tue, 26 Mar 2024 01:38:22 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCUgJBJx7kpyLxUJwXazE6N100W/V6pt/THOxrhIjdx2L2Vaz3UCFf0CXhpfhkIILfqt8ws79ypnskY9PsQxdE4Kj5GHtsqDf87ejABRAA== X-Google-Smtp-Source: AGHT+IH06bfoUzRPFlJZYpkhgC6RUAZx+38BUC6ZeE0jX8wEyEnVGGNnJFKq50k0IXRQk15z9KNT X-Received: by 2002:ac2:42cd:0:b0:515:9d9e:7339 with SMTP id n13-20020ac242cd000000b005159d9e7339mr6828614lfl.20.1711442302061; Tue, 26 Mar 2024 01:38:22 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1711442302; cv=pass; d=google.com; s=arc-20160816; b=ndTEbkx4QAktUfe2d5rm7Kir/kWWg6Esj4TxDTnyk0w3bJ8Gl3T987vTtmEGVev4sB DgGzcsBz/etkMkcmyXCsabzxXwIujSWXn+YBpRSKPxL6WOMi1WGNpsDj5GBkwXuq0/Qq hFLFHT2Su/e1Y3dPypwX2d9a5C2DZnXxQ5ro60C1GT0D7WaAdqyPFDsyAed6AEvXhLkT WxD6c1MWLC23Jpyy5vFMWU+MsNCX2z18W/9D5zAROUYtNjdYSWHtejKIvJhantxOLnLE k2JofB+Inex6AGjHUKI6eAm9zERQK1iENtasjgag/oSbNIXzMWhW3C3zLDEnguQx1PLb ckig== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:cc:to :from; bh=/u7JV/t11qIu+WAVh0VPD6BOSBjkAdxflfoDCtU+wkA=; fh=F9DdoFSenLCxKY2f4JjOUrCX6lIYd/FaImVcT0BiLqc=; b=O+xDLY+IUgUVL1xNfUO14BF0bJ2DAhM0hAF5Gbw3mNFMxzGHuD/wz7trg2cq67lTVK siDOhMHQ1u7bbaIKWrUWPCOSHXYWVvMSA5RVhDFU+SRRJ9FXEtZP7YCJlgbaJ7E/LBmX UT4pZmQZg1PuugvCUB4Jgn+Dyuul646HaZLVjW7ieL4DKu8tVcGaT9Xl7R3i2BdjRN3L pxdfEQEfx9n68EVoUr5zb9uk+I1zTF9a1bnlCHcloThSiFOpMK8h1QR/61Hk9/p3XdtF B8WQh7+BTFJc8or2WBOW49pSVe4Sk1o5OPTMKWO8D/qvHhN8NYhqEXvZynhX0OzqEyvU uIuA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1 spf=pass spfdomain=bp.renesas.com dmarc=pass fromdomain=bp.renesas.com); spf=pass (google.com: domain of linux-kernel+bounces-118560-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-118560-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=renesas.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id n23-20020a170906379700b00a472246e77fsi3396372ejc.378.2024.03.26.01.38.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Mar 2024 01:38:22 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-118560-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; arc=pass (i=1 spf=pass spfdomain=bp.renesas.com dmarc=pass fromdomain=bp.renesas.com); spf=pass (google.com: domain of linux-kernel+bounces-118560-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-118560-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=renesas.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 8AFF61F34BC0 for ; Tue, 26 Mar 2024 08:38:21 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 6B68C12B82; Tue, 26 Mar 2024 08:38:12 +0000 (UTC) Received: from relmlie5.idc.renesas.com (relmlor1.renesas.com [210.160.252.171]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 6C69E2114; Tue, 26 Mar 2024 08:38:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=210.160.252.171 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711442291; cv=none; b=r4EpK2EZRa3YHN/TmTzPxWmNU8yfkVEhxi3BlVFxFT/Dvb3+CYqz82hPkxr0zs+bojbjLJtcdqXgz0Eq8m/msv6kK21Hy14okMQ/7yoA7yOVCChP5ge23SinMLqs2xevfrv8/ieY4SJvYMCU8Wo+Ta3ukZ/XqO+FrB2OyNMM1hg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711442291; c=relaxed/simple; bh=zRSQJ6WGPCwUjhMT+4T16q3Tfzhz94Gd+n+XYSLM2Yg=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=XknMReWL/LSkpzZRnPg6cbBfBKbE+oCjQwBPAMMhfaQynWW+QFB9in/QfH8wors8NY+95OCF1PDTmVEWT+6POACNE78KyDltyd7DCtY88LXDjHSock4E69YdzHBFLsV8yzM+WQG62+ezeXO/mPbPlcMEIwTwfnweXZ0gxmH97BY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com; spf=pass smtp.mailfrom=bp.renesas.com; arc=none smtp.client-ip=210.160.252.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bp.renesas.com X-IronPort-AV: E=Sophos;i="6.07,155,1708354800"; d="scan'208";a="199297022" Received: from unknown (HELO relmlir5.idc.renesas.com) ([10.200.68.151]) by relmlie5.idc.renesas.com with ESMTP; 26 Mar 2024 17:38:07 +0900 Received: from renesas-deb12.mshome.net (unknown [10.226.92.201]) by relmlir5.idc.renesas.com (Postfix) with ESMTP id B9CB24006DEF; Tue, 26 Mar 2024 17:38:03 +0900 (JST) From: Paul Barker To: Sergey Shtylyov , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Paul Barker , =?UTF-8?q?Niklas=20S=C3=B6derlund?= , netdev@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/2] net: ravb: Always process TX descriptor ring Date: Tue, 26 Mar 2024 08:37:39 +0000 Message-Id: <20240326083740.23364-1-paul.barker.ct@bp.renesas.com> X-Mailer: git-send-email 2.39.2 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The TX queue should be serviced each time the poll function is called, even if the full RX work budget has been consumed. This prevents starvation of the TX queue when RX bandwidth usage is high. Fixes: a0d2f20650e8 ("Renesas Ethernet AVB PTP clock driver") Signed-off-by: Paul Barker --- drivers/net/ethernet/renesas/ravb_main.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c index d1be030c8848..4f98e4e2badb 100644 --- a/drivers/net/ethernet/renesas/ravb_main.c +++ b/drivers/net/ethernet/renesas/ravb_main.c @@ -1324,12 +1324,12 @@ static int ravb_poll(struct napi_struct *napi, int budget) int q = napi - priv->napi; int mask = BIT(q); int quota = budget; + bool rearm = true; /* Processing RX Descriptor Ring */ /* Clear RX interrupt */ ravb_write(ndev, ~(mask | RIS0_RESERVED), RIS0); - if (ravb_rx(ndev, "a, q)) - goto out; + rearm = !ravb_rx(ndev, "a, q); /* Processing TX Descriptor Ring */ spin_lock_irqsave(&priv->lock, flags); @@ -1339,6 +1339,9 @@ static int ravb_poll(struct napi_struct *napi, int budget) netif_wake_subqueue(ndev, q); spin_unlock_irqrestore(&priv->lock, flags); + if (!rearm) + goto out; + napi_complete(napi); /* Re-enable RX/TX interrupts */ base-commit: 4cece764965020c22cff7665b18a012006359095 -- 2.44.0