)]}'
{
  "commit": "bbd8a0d3a3b65d341437f8b99c828fa5cc29c739",
  "tree": "a4055c65be5ce3f8fd4987a32a38dfab1642ec95",
  "parents": [
    "9f519f68cfffba022978634f724944a0b971fec1"
  ],
  "author": {
    "name": "Krishna Kumar",
    "email": "krkumar2@in.ibm.com",
    "time": "Thu Aug 06 01:44:21 2009 +0000"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Thu Aug 06 20:10:18 2009 -0700"
  },
  "message": "net: Avoid enqueuing skb for default qdiscs\n\ndev_queue_xmit enqueue\u0027s a skb and calls qdisc_run which\ndequeue\u0027s the skb and xmits it. In most cases, the skb that\nis enqueue\u0027d is the same one that is dequeue\u0027d (unless the\nqueue gets stopped or multiple cpu\u0027s write to the same queue\nand ends in a race with qdisc_run). For default qdiscs, we\ncan remove the redundant enqueue/dequeue and simply xmit the\nskb since the default qdisc is work-conserving.\n\nThe patch uses a new flag - TCQ_F_CAN_BYPASS to identify the\ndefault fast queue. The controversial part of the patch is\nincrementing qlen when a skb is requeued - this is to avoid\nchecks like the second line below:\n\n+  } else if ((q-\u003eflags \u0026 TCQ_F_CAN_BYPASS) \u0026\u0026 !qdisc_qlen(q) \u0026\u0026\n\u003e\u003e         !q-\u003egso_skb \u0026\u0026\n+          !test_and_set_bit(__QDISC_STATE_RUNNING, \u0026q-\u003estate)) {\n\nResults of a 2 hour testing for multiple netperf sessions (1,\n2, 4, 8, 12 sessions on a 4 cpu system-X). The BW numbers are\naggregate Mb/s across iterations tested with this version on\nSystem-X boxes with Chelsio 10gbps cards:\n\n----------------------------------\nSize |  ORG BW          NEW BW   |\n----------------------------------\n128K |  156964          159381   |\n256K |  158650          162042   |\n----------------------------------\n\nChanges from ver1:\n\n1. Move sch_direct_xmit declaration from sch_generic.h to\n   pkt_sched.h\n2. Update qdisc basic statistics for direct xmit path.\n3. Set qlen to zero in qdisc_reset.\n4. Changed some function names to more meaningful ones.\n\nSigned-off-by: Krishna Kumar \u003ckrkumar2@in.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "82a3191375f5c380f49ce42b13d9364822293959",
      "old_mode": 33188,
      "old_path": "include/net/pkt_sched.h",
      "new_id": "f911ec7598efa45e7ac63e984bf0039420481e91",
      "new_mode": 33188,
      "new_path": "include/net/pkt_sched.h"
    },
    {
      "type": "modify",
      "old_id": "964ffa0d8815139ae22d351590b5673a4dd38850",
      "old_mode": 33188,
      "old_path": "include/net/sch_generic.h",
      "new_id": "84b3fc2aef0fe244496b22da6dd048a53c98057d",
      "new_mode": 33188,
      "new_path": "include/net/sch_generic.h"
    },
    {
      "type": "modify",
      "old_id": "f01a9c41f1128b334c0aa56de9b35b2828896961",
      "old_mode": 33188,
      "old_path": "net/core/dev.c",
      "new_id": "a0bc087616a4db7a6551b062f6720fd1d77b2494",
      "new_mode": 33188,
      "new_path": "net/core/dev.c"
    },
    {
      "type": "modify",
      "old_id": "27d03816ec3e8b307b3ac6eafc2ae1b8ca866c7d",
      "old_mode": 33188,
      "old_path": "net/sched/sch_generic.c",
      "new_id": "693df7ae33d8c0e486c5286ef2b3b5762a0d39c0",
      "new_mode": 33188,
      "new_path": "net/sched/sch_generic.c"
    }
  ]
}
