From patchwork Sun Feb 10 13:50:13 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heiner Kallweit X-Patchwork-Id: 1039418 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=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="mw0PJP/P"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43y9RD629Wz9sML for ; Mon, 11 Feb 2019 00:55:20 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726214AbfBJNu1 (ORCPT ); Sun, 10 Feb 2019 08:50:27 -0500 Received: from mail-wm1-f66.google.com ([209.85.128.66]:51427 "EHLO mail-wm1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726120AbfBJNu1 (ORCPT ); Sun, 10 Feb 2019 08:50:27 -0500 Received: by mail-wm1-f66.google.com with SMTP id b11so12294509wmj.1 for ; Sun, 10 Feb 2019 05:50:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=8EJcle03m9Wsj47yXcHFAIQDP/VVXna8dZ+8O8RT/Uk=; b=mw0PJP/PQC+KaEuDYWDJ9kMq9/1sY9yU5NZU0SceGho4cN8pDjBMPHW1mML3ucCoDu ADD1Sft33gTLkbqo4CzJ5+Bktau0RTP+6HP+ug8SnckTHju+VwFqCcI0lx8vm2KpJrd6 ZsSiNMBkBy0B84btPiqNXajjlHyX0XMXrwhhhk2i2u+kAlYCvZunKOQHN8oIB8ktbuhd oPXsTyCkwQ7hIG2TxXfQFdAXXLJFkVXQ0M0Hgd4AWfaa954J5JqsofLu+uUbdciYeJ0J aICmoFFvmQaqkYfYiVRbKI0PT9F7HYsJNE11h2sfDNHnCPi2sumBTzA5kWOhVFbbMbCF l2qw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=8EJcle03m9Wsj47yXcHFAIQDP/VVXna8dZ+8O8RT/Uk=; b=UURiPKKUxyYUgbduBJVeeG9nivF9tyujfpFgMmBPDEJd5XA1RDNApcKYv1Q6mmzWf1 l8olM79j3JetJSuwAirsfoPIkIH/o4BuKCkeDJaZeSKBtQWvmMcjQhQ1mmEK0MOo3Usi ADOWaeb6fX6KU4UyouFsFPcIW5aJlpeJOeWIapZShbTd6ndJwpgK7h+cVy3GH6KBwEJz 0GJayzI1Fw6xAwmW3QHxgEjyrggEOz2C88NaaXW7qSnkm8StE06Vkbl+Srhro84Qbgix cX1wiexX8tTv1PMMegjaHU20l34kk6vrY3B4RJUDKuKimE32VpypgtY0nB1WRrD49h9H tHsQ== X-Gm-Message-State: AHQUAua9Yp2MuQUEygLfXqns9Oy0Xb4Wfr47AqnlfgZAeDFvdEWRvtaC EQnGpoelJtsLwZ9gL0JKBetoM352 X-Google-Smtp-Source: AHgI3IasufuONR9YV2t7FAnk0fP+YaDQ5lZPSZtWtoacgD5Rw7dj2GqHcFKWPY6LnV9eZzHFmnbC8w== X-Received: by 2002:a1c:e910:: with SMTP id q16mr5922438wmc.68.1549806624975; Sun, 10 Feb 2019 05:50:24 -0800 (PST) Received: from ?IPv6:2003:ea:8bf1:e200:1513:f24d:17d6:1a6d? (p200300EA8BF1E2001513F24D17D61A6D.dip0.t-ipconnect.de. [2003:ea:8bf1:e200:1513:f24d:17d6:1a6d]) by smtp.googlemail.com with ESMTPSA id a4sm4752171wmm.22.2019.02.10.05.50.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 05:50:24 -0800 (PST) Subject: [PATCH net 2/2] Revert "r8169: make use of xmit_more and __netdev_sent_queue" From: Heiner Kallweit To: Realtek linux nic maintainers , David Miller Cc: Sander Eikelenboom , "netdev@vger.kernel.org" References: Message-ID: <573a7ab0-ebfc-1dc2-6497-95c7411d6ddb@gmail.com> Date: Sun, 10 Feb 2019 14:50:13 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.5.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This reverts commit 2e6eedb4813e34d8d84ac0eb3afb668966f3f356. Sander reported a regression [1], therefore let's revert these commits. Removal of the barriers doesn't seem to contribute to the issue, the patch just overlaps with the problematic one and reverting "r8169: make use of xmit_more and __netdev_sent_queue" only wasn't tested. [1] https://marc.info/?t=154965066400001&r=1&w=2 Signed-off-by: Heiner Kallweit --- drivers/net/ethernet/realtek/r8169.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c index bba806ce57d3..6e36b88ca7c9 100644 --- a/drivers/net/ethernet/realtek/r8169.c +++ b/drivers/net/ethernet/realtek/r8169.c @@ -6074,7 +6074,6 @@ static netdev_tx_t rtl8169_start_xmit(struct sk_buff *skb, struct device *d = tp_to_dev(tp); dma_addr_t mapping; u32 opts[2], len; - bool stop_queue; int frags; if (unlikely(!rtl_tx_slots_avail(tp, skb_shinfo(skb)->nr_frags))) { @@ -6116,6 +6115,8 @@ static netdev_tx_t rtl8169_start_xmit(struct sk_buff *skb, txd->opts2 = cpu_to_le32(opts[1]); + netdev_sent_queue(dev, skb->len); + skb_tx_timestamp(skb); /* Force memory writes to complete before releasing descriptor */ @@ -6128,16 +6129,16 @@ static netdev_tx_t rtl8169_start_xmit(struct sk_buff *skb, tp->cur_tx += frags + 1; - stop_queue = !rtl_tx_slots_avail(tp, MAX_SKB_FRAGS); - if (unlikely(stop_queue)) - netif_stop_queue(dev); + RTL_W8(tp, TxPoll, NPQ); - if (__netdev_sent_queue(dev, skb->len, skb->xmit_more)) { - RTL_W8(tp, TxPoll, NPQ); - mmiowb(); - } + mmiowb(); - if (unlikely(stop_queue)) { + if (!rtl_tx_slots_avail(tp, MAX_SKB_FRAGS)) { + /* Avoid wrongly optimistic queue wake-up: rtl_tx thread must + * not miss a ring update when it notices a stopped queue. + */ + smp_wmb(); + netif_stop_queue(dev); /* Sync with rtl_tx: * - publish queue status and cur_tx ring index (write barrier) * - refresh dirty_tx ring index (read barrier).