Thread (5 messages) 5 messages, 4 authors, 2016-03-15

RE: Eliminating Packet Latency

From: Dave Rolenc <hidden>
Date: 2016-03-15 17:58:52

Michael,

You can try this. The 3.10.0 code looked a little different, but this is the
gist of what I did on the older code. This is untested, so you are on the
hook for that part. I don't even know if this compiles, but it should:
--- linux-3.10.old/net/core/dev.c       2016-03-15 10:57:11.399668975 -0600
+++ linux-3.10/net/core/dev.c   2016-03-15 11:14:58.566734817 -0600
@@ -2675,28 +2675,6 @@
        if (unlikely(test_bit(__QDISC_STATE_DEACTIVATED, &q->state))) {
                kfree_skb(skb);
                rc = NET_XMIT_DROP;
-       } else if ((q->flags & TCQ_F_CAN_BYPASS) && !qdisc_qlen(q) &&
-                  qdisc_run_begin(q)) {
-               /*
-                * This is a work-conserving queue; there are no old skbs
-                * waiting to be sent out; and the qdisc is not running -
-                * xmit the skb directly.
-                */
-               if (!(dev->priv_flags & IFF_XMIT_DST_RELEASE))
-                       skb_dst_force(skb);
-
-               qdisc_bstats_update(q, skb);
-
-               if (sch_direct_xmit(skb, q, dev, txq, root_lock)) {
-                       if (unlikely(contended)) {
-                               spin_unlock(&q->busylock);
-                               contended = false;
-                       }
-                       __qdisc_run(q);
-               } else
-                       qdisc_run_end(q);
-
-               rc = NET_XMIT_SUCCESS;
        } else {
                skb_dst_force(skb);
                rc = q->enqueue(skb, q) & NET_XMIT_MASK;
@@ -2705,7 +2683,8 @@
                                spin_unlock(&q->busylock);
                                contended = false;
                        }
-                       __qdisc_run(q);
+            __netif_schedule(q);
+            qdisc_run_end(q);
                }
        }
        spin_unlock(root_lock);
Dave

-----Original Message-----
From: linux-rt-users-owner@vger.kernel.org
[mailto:linux-rt-users-owner@vger.kernel.org] On Behalf Of Stanislav Meduna
Sent: Tuesday, March 15, 2016 2:56 AM
To: Michael Hewitt; linux-rt-users@vger.kernel.org
Subject: Re: Eliminating Packet Latency

On 3/14/2016 10:02 PM, Michael Hewitt wrote:
Generally, we see packet delivery variations of less than 100 
microseconds, which is fabulous.  Occasionally, we see a packet 
delivery delay in excess of 1000 microseconds.
Maybe this thread applies
http://www.spinics.net/lists/linux-rt-users/msg09887.html
(no straightforward solution there though).

-- 
                                 Stano

--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@vger.kernel.org More majordomo info at
http://vger.kernel.org/majordomo-info.html

Attachments

  • smime.p7s [application/pkcs7-signature] 5694 bytes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help