Skip to contentSkip to conversation

igb: defeature tx head writeback

PATCH Applied Jeff Kirsher 3 participants 5 messages Dec 24, 2008 – Dec 26, 2008

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/2 igb: defeature tx head writeback

From: Alexander Duyck <[email protected]>

This patch removes tx head writeback as it was found to not provide a significant improvement in tx performance and on some systems has been seen to cause a performance degredation due to partial cache line writes.

---

 drivers/net/igb/e1000_defines.h |    1 
 drivers/net/igb/igb.h           |    5 +-
 drivers/net/igb/igb_main.c      |   85 +++++++++++++++++----------------------
 3 files changed, 39 insertions(+), 52 deletions(-)
drivers/net/igb/e1000_defines.h +1 -0
index c5fe784..40d0342 100644
@@ -323,6 +323,7 @@
 #define E1000_TXD_CMD_IFCS   0x02000000 /* Insert FCS (Ethernet CRC) */
 #define E1000_TXD_CMD_RS     0x08000000 /* Report Status */
 #define E1000_TXD_CMD_DEXT   0x20000000 /* Descriptor extension (0 = legacy) */
+#define E1000_TXD_STAT_DD    0x00000001 /* Descriptor Done */
 /* Extended desc bits for Linksec and timesync */
 
 /* Transmit Control */
drivers/net/igb/igb.h +2 -3
index 2121b8b..c906325 100644
@@ -43,8 +43,6 @@ struct igb_adapter;
 #endif
 
 /* Interrupt defines */
-#define IGB_MAX_TX_CLEAN 72
-
 #define IGB_MIN_DYN_ITR 3000
 #define IGB_MAX_DYN_ITR 96000
 
@@ -127,7 +125,8 @@ struct igb_buffer {
 		/* TX */
 		struct {
 			unsigned long time_stamp;
-			u32 length;
+			u16 length;
+			u16 next_to_watch;
 		};
 		/* RX */
 		struct {
drivers/net/igb/igb_main.c +36 -49

216 lines not on this page · raw message

#1 lore raw

PATCH 2/2 igb: re-order queues to support cleaner use of ivar on 82576

From: Alexander Duyck <[email protected]>

The 82576 adapter orders the queues in pairs when virtualization is in use. The queue ordering previously conflicted with the ordering when sr-iov was enabled. This new ordering allows a PF to allocate 2 queues without using any VF resources.

---

 drivers/net/igb/igb.h      |    3 +
 drivers/net/igb/igb_main.c |  115 +++++++++++++++++++++++++++++---------------
 2 files changed, 79 insertions(+), 39 deletions(-)
drivers/net/igb/igb.h +2 -1
index c906325..5a27825 100644
@@ -159,7 +159,8 @@ struct igb_ring {
 	u16 itr_register;
 	u16 cpu;
 
-	int queue_index;
+	u16 queue_index;
+	u16 reg_idx;
 	unsigned int total_bytes;
 	unsigned int total_packets;
 
drivers/net/igb/igb_main.c +77 -38

226 lines not on this page · raw message

maintainer Applied
#2 lore raw

Re: [NET-NEXT PATCH 2/2] igb: re-order queues to support cleaner use of ivar on 82576

From: Jeff Kirsher <[email protected]>
Date: Wed, 24 Dec 2008 14:32:01 -0800

Quoted 7 lines

The 82576 adapter orders the queues in pairs when virtualization is in use. The queue ordering previously conflicted with the ordering when sr-iov was enabled. This new ordering allows a PF to allocate 2 queues without using any VF resources.

Applied.

#3 lore raw
In reply to Jeff Kirsher

drivers/net/igb/igb.h

Quoted 4 lines · Jeff Kirsher
drivers/net/igb/igb.h +0 -0
index 2121b8b..c906325 100644

[]

drivers/net/igb/igb.h struct igb_buffer { · line 132

Quoted 10 lines
drivers/net/igb/igb.h +2 -1
@@ -127,7 +125,8 @@ struct igb_buffer {
 		/* TX */
 		struct {
 			unsigned long time_stamp;
-			u32 length;
+			u16 length;
+			u16 next_to_watch;
 		};
 		/* RX */
 		struct {
struct igb_buffer {
	struct sk_buff *skb;
	dma_addr_t dma;
	union {
		/* TX */
		struct {
			unsigned long time_stamp;
			u32 length;
		};
		/* RX */
		struct {
			struct page *page;
			u64 page_dma;
			unsigned int page_offset;
		};
	};
};

anonymous unions with anonymous structs?
That's not used very often in kernel source.
Should it be used here?

maintainer Applied
#4 lore raw
In reply to Jeff Kirsher

From: Jeff Kirsher <[email protected]>
Date: Wed, 24 Dec 2008 14:31:42 -0800

Quoted 6 lines

This patch removes tx head writeback as it was found to not provide a significant improvement in tx performance and on some systems has been seen to cause a performance degredation due to partial cache line writes.

Applied.