From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Dumazet Subject: [PATCH v2 net 0/3] net: bql: better deal with GSO Date: Wed, 31 Oct 2018 08:39:11 -0700 Message-ID: <20181031153914.132127-1-edumazet@google.com> Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Cc: netdev , Tariq Toukan , Willem de Bruijn , Eric Dumazet , Eric Dumazet To: "David S . Miller" Return-path: Received: from mail-pg1-f193.google.com ([209.85.215.193]:39664 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727623AbeKAAh4 (ORCPT ); Wed, 31 Oct 2018 20:37:56 -0400 Received: by mail-pg1-f193.google.com with SMTP id r9-v6so7559506pgv.6 for ; Wed, 31 Oct 2018 08:39:25 -0700 (PDT) Sender: netdev-owner@vger.kernel.org List-ID: While BQL bulk dequeue works well for TSO packets, it is not very efficient as soon as GSO is involved. On a GSO only workload (UDP or TCP), this patch series can save about 8 % of cpu cycles on a 40Gbit mlx4 NIC, by keeping optimal batching, and avoiding expensive doorbells, qdisc requeues and reschedules. This patch series : - Add __netdev_tx_sent_queue() so that drivers can implement efficient BQL and xmit_more support. - Implement a work around in dev_hard_start_xmit() for drivers not using __netdev_tx_sent_queue() - changes mlx4 to use __netdev_tx_sent_queue() v2: Tariq and Willem feedback addressed. added __netdev_tx_sent_queue() (Willem suggestion) Eric Dumazet (3): net: bql: add __netdev_tx_sent_queue() net: do not abort bulk send on BQL status net/mlx4_en: use __netdev_tx_sent_queue() drivers/net/ethernet/mellanox/mlx4/en_tx.c | 6 ++++-- include/linux/netdevice.h | 20 ++++++++++++++++++++ net/core/dev.c | 2 +- 3 files changed, 25 insertions(+), 3 deletions(-) -- 2.19.1.930.g4563a0d9d0-goog