Thread (55 messages) flat view 55 messages, 6 authors, 2007-07-25

[ofa-general] Re: [PATCH 02/10] Networking include file changes.

From: Krishna Kumar2 <hidden>
Date: 2007-07-23 06:27:07

Hi Sridhar,

Sridhar Samudrala [off-list ref] wrote on 07/23/2007 11:29:39 AM:
Krishna Kumar2 wrote:
quoted
Hi Sridhar,

Sridhar Samudrala [off-list ref] wrote on 07/20/2007 10:55:05 PM:
quoted
quoted
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);
quoted
Why do we need this additional 'blist' argument?
Is this different from dev->skb_blist?
It is the same, but I want to call it mostly with NULL and rarely with
the
quoted
batch list pointer (so it is related to your other question). My
original
quoted
code didn't have this and was trying batching in all cases. But in most
xmit's (probably almost all), there will be only one packet in the
queue to
quoted
send and batching will never happen. When there is a lock contention or
if
quoted
the queue is stopped, then the next iteration will find >1 packets. But
I
quoted
still will try no batching for the lock failure case as there be
probably
quoted
2 packets (one from previous time and 1 from this time, or 3 if two
failures,
etc), and try batching only when queue was stopped from net_tx_action
(this
quoted
was based on Dave Miller's idea).
Is this right to say that the above change is to get this behavior?
   If qdisc_run() is called from dev_queue_xmit() don't use batching.
   If qdisc_run() is called from net_tx_action(), do batching.
Correct.
Isn't it possible to have multiple skb's in the qdisc queue in the
first case?
It is possible but rarer (so unnecessary checking most of the time). From
net_tx_action you are guaranteed to have multiple skbs, but from xmit you
will almost always get one skb (since most send of 1 skb will go out OK).
And also in the xmit path, it is more likely to have few skbs compared to
possibly hundreds in the net_tx_action path.
If this additional argument is used to indicate if we should do batching
or not, then passing a flag may be much more cleaner than passing the
blist.

OK, I will add this as another action item to check (along with Patrick's
suggestion to use single API) and will get back.

- KK
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help