[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20070720063216.26341.80316.sendpatchset@localhost.localdomain>
Date: Fri, 20 Jul 2007 12:02:16 +0530
From: Krishna Kumar <krkumar2@...ibm.com>
To: davem@...emloft.net, rdreier@...co.com
Cc: johnpol@....mipt.ru, Robert.Olsson@...a.slu.se,
peter.p.waskiewicz.jr@...el.com, herbert@...dor.apana.org.au,
gaagaan@...il.com, kumarkr@...ux.ibm.com, xma@...ibm.com,
rick.jones2@...com, mcarlson@...adcom.com, netdev@...r.kernel.org,
jagana@...ibm.com, general@...ts.openfabrics.org,
mchan@...adcom.com, tgraf@...g.ch, jeff@...zik.org,
hadi@...erus.ca, kaber@...sh.net,
Krishna Kumar <krkumar2@...ibm.com>, sri@...ibm.com
Subject: [PATCH 02/10] Networking include file changes.
Networking include file changes for batching.
Signed-off-by: Krishna Kumar <krkumar2@...ibm.com>
---
linux/netdevice.h | 10 ++++++++++
net/pkt_sched.h | 6 +++---
2 files changed, 13 insertions(+), 3 deletions(-)
diff -ruNp org/include/linux/netdevice.h new/include/linux/netdevice.h
--- org/include/linux/netdevice.h 2007-07-20 07:49:28.000000000 +0530
+++ new/include/linux/netdevice.h 2007-07-20 08:30:55.000000000 +0530
@@ -264,6 +264,8 @@ enum netdev_state_t
__LINK_STATE_QDISC_RUNNING,
};
+/* Minimum length of device hardware queue for batching to work */
+#define MIN_QUEUE_LEN_BATCH 16
/*
* This structure holds at boot time configured netdevice settings. They
@@ -340,6 +342,7 @@ struct net_device
#define NETIF_F_VLAN_CHALLENGED 1024 /* Device cannot handle VLAN packets */
#define NETIF_F_GSO 2048 /* Enable software GSO. */
#define NETIF_F_LLTX 4096 /* LockLess TX */
+#define NETIF_F_BATCH_SKBS 8192 /* Driver supports batch skbs API */
#define NETIF_F_MULTI_QUEUE 16384 /* Has multiple TX/RX queues */
/* Segmentation offload features */
@@ -452,6 +455,8 @@ struct net_device
struct Qdisc *qdisc_sleeping;
struct list_head qdisc_list;
unsigned long tx_queue_len; /* Max frames per queue allowed */
+ unsigned long xmit_slots; /* Device free slots */
+ struct sk_buff_head *skb_blist; /* List of batch skbs */
/* Partially transmitted GSO packet. */
struct sk_buff *gso_skb;
@@ -472,6 +477,9 @@ struct net_device
void *priv; /* pointer to private data */
int (*hard_start_xmit) (struct sk_buff *skb,
struct net_device *dev);
+ int (*hard_start_xmit_batch) (struct net_device
+ *dev);
+
/* These may be needed for future network-power-down code. */
unsigned long trans_start; /* Time (in jiffies) of last Tx */
@@ -832,6 +840,8 @@ extern int dev_set_mac_address(struct n
struct sockaddr *);
extern int dev_hard_start_xmit(struct sk_buff *skb,
struct net_device *dev);
+extern int dev_add_skb_to_blist(struct sk_buff *skb,
+ struct net_device *dev);
extern void dev_init(void);
diff -ruNp org/include/net/pkt_sched.h new/include/net/pkt_sched.h
--- org/include/net/pkt_sched.h 2007-07-20 07:49:28.000000000 +0530
+++ new/include/net/pkt_sched.h 2007-07-20 08:30:22.000000000 +0530
@@ -80,13 +80,13 @@ extern struct qdisc_rate_table *qdisc_ge
struct rtattr *tab);
extern void qdisc_put_rtab(struct qdisc_rate_table *tab);
-extern void __qdisc_run(struct net_device *dev);
+extern void __qdisc_run(struct net_device *dev, struct sk_buff_head *blist);
-static inline void qdisc_run(struct net_device *dev)
+static inline void qdisc_run(struct net_device *dev, struct sk_buff_head *blist)
{
if (!netif_queue_stopped(dev) &&
!test_and_set_bit(__LINK_STATE_QDISC_RUNNING, &dev->state))
- __qdisc_run(dev);
+ __qdisc_run(dev, blist);
}
extern int tc_classify_compat(struct sk_buff *skb, struct tcf_proto *tp,
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists