igb: defeature tx head writeback
Subsystems (2)
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
@@ -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
@@ -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
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
@@ -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
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.
Signed-off-by Alexander Duyck <[email protected]>Signed-off-by Jeff Kirsher <[email protected]>
Applied.
drivers/net/igb/igb.h
Quoted 4 lines · Jeff Kirsher
drivers/net/igb/igb.h +0
-0
[]
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?
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.
Signed-off-by Alexander Duyck <[email protected]>Signed-off-by Jeff Kirsher <[email protected]>
Applied.