From: Anton Blanchard <anton@samba.org>
To: leitao@linux.vnet.ibm.com, michael@ellerman.id.au,
jesse@kernel.org, bhutchings@solarflare.com
Cc: netdev@vger.kernel.org
Subject: [PATCH 07/15] ehea: Allocate large enough skbs to avoid partial cacheline DMA writes
Date: Thu, 12 May 2011 10:52:20 +1000 [thread overview]
Message-ID: <20110512005623.100278010@samba.org> (raw)
In-Reply-To: 20110512005213.897432612@samba.org
[-- Attachment #1: ehea_8.patch --]
[-- Type: text/plain, Size: 1471 bytes --]
The ehea adapter has a mode where it will avoid partial cacheline DMA
writes on receive by always padding packets to fall on a cacheline
boundary.
Unfortunately we currently aren't allocating enough space for a full
ethernet MTU packet to be rounded up, so this optimisation doesn't hit.
It's unfortunate that the next largest packet size exposed by the
hypervisor interface is 2kB, meaning our skb allocation comes out of a
4kB SLAB. However the performance increase due to this optimisation is
quite large and my TCP stream numbers increase from 900MB to 1000MB/sec.
Signed-off-by: Anton Blanchard <anton@samba.org>
---
Index: linux-net/drivers/net/ehea/ehea.h
===================================================================
--- linux-net.orig/drivers/net/ehea/ehea.h 2011-05-12 07:47:53.490177714 +1000
+++ linux-net/drivers/net/ehea/ehea.h 2011-05-12 07:47:56.980233047 +1000
@@ -82,7 +82,7 @@
#define EHEA_SG_RQ3 0
#define EHEA_MAX_PACKET_SIZE 9022 /* for jumbo frames */
-#define EHEA_RQ2_PKT_SIZE 1522
+#define EHEA_RQ2_PKT_SIZE 2048
#define EHEA_L_PKT_SIZE 256 /* low latency */
#define MAX_LRO_DESCRIPTORS 8
@@ -93,7 +93,7 @@
#define EHEA_PD_ID 0xaabcdeff
#define EHEA_RQ2_THRESHOLD 1
-#define EHEA_RQ3_THRESHOLD 9 /* use RQ3 threshold of 1522 bytes */
+#define EHEA_RQ3_THRESHOLD 4 /* use RQ3 threshold of 2048 bytes */
#define EHEA_SPEED_10G 10000
#define EHEA_SPEED_1G 1000
next prev parent reply other threads:[~2011-05-12 1:27 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-12 0:52 [PATCH 00/15] ehea updates v2 Anton Blanchard
2011-05-12 0:52 ` [PATCH 01/15] ehea: Remove NETIF_F_LLTX Anton Blanchard
2011-05-12 0:52 ` [PATCH 02/15] ehea: Update multiqueue support Anton Blanchard
2011-05-12 2:31 ` Joe Perches
2011-05-12 2:57 ` Ben Hutchings
2011-05-12 0:52 ` [PATCH 03/15] ehea: Remove force_irq logic in napi poll routine Anton Blanchard
2011-05-12 2:31 ` Joe Perches
2011-05-12 3:06 ` David Miller
2011-05-12 2:47 ` Ben Hutchings
2011-05-24 3:32 ` Benjamin Herrenschmidt
2011-05-12 0:52 ` [PATCH 04/15] ehea: Remove num_tx_qps module option Anton Blanchard
2011-05-12 0:52 ` [PATCH 05/15] ehea: Dont check NETIF_F_TSO in TX path Anton Blanchard
2011-05-12 0:52 ` [PATCH 06/15] ehea: Add vlan_features Anton Blanchard
2011-05-12 0:52 ` Anton Blanchard [this message]
2011-05-12 2:52 ` [PATCH 07/15] ehea: Allocate large enough skbs to avoid partial cacheline DMA writes Ben Hutchings
2011-05-12 0:52 ` [PATCH 08/15] ehea: Simplify ehea_xmit2 and ehea_xmit3 Anton Blanchard
2011-05-12 0:52 ` [PATCH 09/15] ehea: Merge swqe2 TSO and non TSO paths Anton Blanchard
2011-05-12 0:52 ` [PATCH 10/15] ehea: Simplify type 3 transmit routine Anton Blanchard
2011-05-12 0:52 ` [PATCH 11/15] ehea: Remove some unused definitions Anton Blanchard
2011-05-12 0:52 ` [PATCH 12/15] ehea: Add 64bit statistics Anton Blanchard
2011-05-12 0:52 ` [PATCH 13/15] ehea: Remove LRO support Anton Blanchard
2011-05-12 0:52 ` [PATCH 14/15] ehea: Add GRO support Anton Blanchard
2011-05-12 6:03 ` Michał Mirosław
2011-05-12 0:52 ` [PATCH 15/15] ehea: Remove unused tcp_end field in send WQ Anton Blanchard
2011-05-12 2:31 ` Joe Perches
2011-05-12 3:06 ` David Miller
2011-05-12 3:12 ` Joe Perches
2011-05-31 1:16 ` Benjamin Herrenschmidt
-- strict thread matches above, loose matches on Subject: below --
2011-10-14 15:30 EHEA updates Thadeu Lima de Souza Cascardo
2011-10-14 15:31 ` [PATCH 07/15] ehea: Allocate large enough skbs to avoid partial cacheline DMA writes Thadeu Lima de Souza Cascardo
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=20110512005623.100278010@samba.org \
--to=anton@samba.org \
--cc=bhutchings@solarflare.com \
--cc=jesse@kernel.org \
--cc=leitao@linux.vnet.ibm.com \
--cc=michael@ellerman.id.au \
--cc=netdev@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).