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