lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <1451796304-23220-1-git-send-email-mchan@broadcom.com>
Date:	Sat, 2 Jan 2016 23:44:57 -0500
From:	Michael Chan <mchan@...adcom.com>
To:	<davem@...emloft.net>
CC:	<netdev@...r.kernel.org>
Subject: [PATCH net-next 0/7] bnxt_en: Support combined and rx/tx channels.

The bnxt hardware uses a completion ring for rx and tx events.  The driver
has to process the completion ring entries sequentially for the events.
The current code only supports an rx/tx ring pair for each completion ring.
This patch series add support for using a dedicated completion ring for
rx only or tx only as an option configuarble using ethtool -L.

The benefits for using dedicated completion rings are:

1. A burst of rx packets can cause delay in processing tx events if the
completion ring is shared.  If tx queue is stopped by BQL, this can cause
delay in re-starting the tx queue.

2. A completion ring is sized according to the rx and tx ring size rounded
up to the nearest power of 2.  When the completion ring is shared, it is
sized by adding the rx and tx ring sizes and then rounded to the next power
of 2, often with a lot of wasted space.

3. Using dedicated completion ring, we can adjust the tx and rx coalescing
parameters independently for rx and tx.


Michael Chan (7):
  bnxt_en: Refactor bnxt_dbg_dump_states().
  bnxt_en: Separate bnxt_{rx|tx}_ring_info structs from bnxt_napi
    struct.
  bnxt_en: Check for NULL rx or tx ring.
  bnxt_en: Re-structure ring indexing and mapping.
  bnxt_en: Modify bnxt_get_max_rings() to support shared or non shared
    rings.
  bnxt_en: Modify init sequence to support shared or non shared rings.
  bnxt_en: Modify ethtool -l|-L to support combined or rx/tx rings.

 drivers/net/ethernet/broadcom/bnxt/bnxt.c         | 439 +++++++++++++---------
 drivers/net/ethernet/broadcom/bnxt/bnxt.h         |  15 +-
 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c |  59 ++-
 3 files changed, 328 insertions(+), 185 deletions(-)

-- 
1.8.3.1

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ