Re: [WIP][PATCHES] Network xmit batching - tg3 support
From: Matt Carlson <hidden>
Date: 2007-07-02 21:21:11
On Wed, 2007-06-27 at 20:05 -0400, jamal wrote:
peoplez, I have added support for tg3 on batching. I see equivalent performance improvement for pktgen as i did with e1000 when using gige. I have only tested on two machines (one being a laptop which does 10/100Mbps). Unfortunately in both cases these are considered to be in the class of "buggy" tg3s (which take a longer code path). To the tg3 folks - can you double check if am off on something? I have split a few things that you may like as well. I havent upgraded the tree - it is still circa 2.6.22-rc4 based; at some point i will sync with Daves net-26 Anyone who has tg3 based hardware: I would appreciate any testing and results ... The git tree is at: git://git.kernel.org/pub/scm/linux/kernel/git/hadi/batch-lin26.git but i have attached the patch in case you just wanna stare. cheers, jamal
Hi Jamal. I'll be testing your patch soon, but I wanted to point out a
bug in the patch. The patch defines TG3_SKB_CB() as follows :
#define TG3_SKB_CB(__skb) ((struct tg3_tx_cbdata *)&((__skb)->cb[0]))
This definition will collide with the VLAN macros if TG3_VLAN_TAG_USED
is set. vlan_tx_tag_get() is defined as :
#define vlan_tx_tag_get(__skb) (VLAN_TX_SKB_CB(__skb)->vlan_tag)
VLAN_TX_SKB_CB is defined as :
#define VLAN_TX_SKB_CB(__skb) \
((struct vlan_skb_tx_cookie *)&((__skb)->cb[0]))
Also, I think the count, max_per_txd, and nr_frags fields of the
tg3_tx_cbdata struct are not needed.