On Fri, 2007-07-20 at 12:02 +0530, Krishna Kumar wrote:
> Networking include file changes for batching.
> 
> Signed-off-by: Krishna Kumar <[EMAIL PROTECTED]>
> ---
>  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);

Why do we need this additional 'blist' argument?
Is this different from dev->skb_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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to