All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexander Duyck <alexander.duyck@gmail.com>
To: intel-wired-lan@osuosl.org
Subject: [Intel-wired-lan] [RFC PATCH 04/20] igb: Add support for DMA_ATTR_WEAK_ORDERING
Date: Mon, 19 Dec 2016 12:11:04 -0800	[thread overview]
Message-ID: <20161219201104.27116.72125.stgit@localhost.localdomain> (raw)
In-Reply-To: <20161219200456.27116.28900.stgit@localhost.localdomain>

From: Alexander Duyck <alexander.h.duyck@intel.com>

Since we are already using DMA attributes in igb for Rx there is no reason
why we can't also apply DMA_ATTR_WEAK_ORDERING which is needed on some
platforms to improve performance.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
---
 drivers/net/ethernet/intel/igb/igb.h      |    3 +++
 drivers/net/ethernet/intel/igb/igb_main.c |    6 +++---
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/intel/igb/igb.h b/drivers/net/ethernet/intel/igb/igb.h
index acbc3abe2ddd..87c9fe9d6f18 100644
--- a/drivers/net/ethernet/intel/igb/igb.h
+++ b/drivers/net/ethernet/intel/igb/igb.h
@@ -148,6 +148,9 @@ struct vf_data_storage {
 /* How many Rx Buffers do we bundle into one write to the hardware ? */
 #define IGB_RX_BUFFER_WRITE	16 /* Must be power of 2 */
 
+#define IGB_RX_DMA_ATTR \
+	(DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_WEAK_ORDERING)
+
 #define AUTO_ALL_MODES		0
 #define IGB_EEPROM_APME		0x0400
 
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index 1515abaa5ac9..7e21cdbde948 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -3961,7 +3961,7 @@ static void igb_clean_rx_ring(struct igb_ring *rx_ring)
 				     buffer_info->dma,
 				     PAGE_SIZE,
 				     DMA_FROM_DEVICE,
-				     DMA_ATTR_SKIP_CPU_SYNC);
+				     IGB_RX_DMA_ATTR);
 		__page_frag_cache_drain(buffer_info->page,
 					buffer_info->pagecnt_bias);
 
@@ -6990,7 +6990,7 @@ static struct sk_buff *igb_fetch_rx_buffer(struct igb_ring *rx_ring,
 		 */
 		dma_unmap_page_attrs(rx_ring->dev, rx_buffer->dma,
 				     PAGE_SIZE, DMA_FROM_DEVICE,
-				     DMA_ATTR_SKIP_CPU_SYNC);
+				     IGB_RX_DMA_ATTR);
 		__page_frag_cache_drain(page, rx_buffer->pagecnt_bias);
 	}
 
@@ -7250,7 +7250,7 @@ static bool igb_alloc_mapped_page(struct igb_ring *rx_ring,
 
 	/* map page for use */
 	dma = dma_map_page_attrs(rx_ring->dev, page, 0, PAGE_SIZE,
-				 DMA_FROM_DEVICE, DMA_ATTR_SKIP_CPU_SYNC);
+				 DMA_FROM_DEVICE, IGB_RX_DMA_ATTR);
 
 	/* if mapping failed free memory back to system since
 	 * there isn't much point in holding memory we can't use


  parent reply	other threads:[~2016-12-19 20:11 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-19 20:10 [Intel-wired-lan] [RFC PATCH 00/20] Enable the use of build_skb in igb/ixgbe Alexander Duyck
2016-12-19 20:10 ` [Intel-wired-lan] [RFC PATCH 01/20] mm: Rename __alloc_page_frag to page_frag_alloc and __free_page_frag to page_frag_free Alexander Duyck
2016-12-19 20:10 ` [Intel-wired-lan] [RFC PATCH 02/20] mm: Rename __page_frag functions to __page_frag_cache, drop order from drain Alexander Duyck
2016-12-19 20:10 ` [Intel-wired-lan] [RFC PATCH 03/20] mm: Add documentation for page fragment APIs Alexander Duyck
2016-12-19 20:11 ` Alexander Duyck [this message]
2016-12-19 20:11 ` [Intel-wired-lan] [RFC PATCH 05/20] igb: Use length to determine if descriptor is done Alexander Duyck
2016-12-19 20:11 ` [Intel-wired-lan] [RFC PATCH 06/20] igb: Limit maximum frame Rx based on MTU Alexander Duyck
2016-12-19 20:11 ` [Intel-wired-lan] [RFC PATCH 07/20] igb: Add support for padding packet Alexander Duyck
2016-12-19 20:11 ` [Intel-wired-lan] [RFC PATCH 08/20] igb: Add support for ethtool private flag to allow use of legacy Rx Alexander Duyck
2016-12-19 20:11 ` [Intel-wired-lan] [RFC PATCH 09/20] igb: Break out Rx buffer page management Alexander Duyck
2016-12-19 20:11 ` [Intel-wired-lan] [RFC PATCH 10/20] igb: Revert "igb: Revert support for build_skb in igb" Alexander Duyck
2016-12-19 20:11 ` [Intel-wired-lan] [RFC PATCH 11/20] ixgbe: Add function for checking to see if we can reuse page Alexander Duyck
2016-12-19 20:11 ` [Intel-wired-lan] [RFC PATCH 12/20] ixgbe: Only DMA sync frame length Alexander Duyck
2016-12-19 20:11 ` [Intel-wired-lan] [RFC PATCH 13/20] ixgbe: Update driver to make use of DMA attributes in Rx path Alexander Duyck
2016-12-19 20:12 ` [Intel-wired-lan] [RFC PATCH 14/20] ixgbe: Update code to better handle incrementing page count Alexander Duyck
2016-12-19 20:12 ` [Intel-wired-lan] [RFC PATCH 15/20] ixgbe: Make use of order 1 pages and 3K buffers independent of FCoE Alexander Duyck
2016-12-19 20:12 ` [Intel-wired-lan] [RFC PATCH 16/20] ixgbe: Use length to determine if descriptor is done Alexander Duyck
2016-12-19 20:12 ` [Intel-wired-lan] [RFC PATCH 17/20] ixgbe: Break out Rx buffer page management Alexander Duyck
2016-12-19 20:12 ` [Intel-wired-lan] [RFC PATCH 18/20] ixgbe: Add support for padding packet Alexander Duyck
2016-12-19 20:12 ` [Intel-wired-lan] [RFC PATCH 19/20] ixgbe: Add private flag to control buffer mode Alexander Duyck
2016-12-19 20:12 ` [Intel-wired-lan] [RFC PATCH 20/20] ixgbe: Add support for build_skb Alexander Duyck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161219201104.27116.72125.stgit@localhost.localdomain \
    --to=alexander.duyck@gmail.com \
    --cc=intel-wired-lan@osuosl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.