)]}'
{
  "commit": "ffe4ccd359d006eba559cb1a3c6113144b7fb38c",
  "tree": "00547b3df467260871b935d0fb3347f3c556c026",
  "parents": [
    "dfdf774656205515b2d6ad94fce63c7ccbe92d91"
  ],
  "author": {
    "name": "Eric Dumazet",
    "email": "edumazet@google.com",
    "time": "Wed Jan 07 10:41:59 2026 +0000"
  },
  "committer": {
    "name": "Paolo Abeni",
    "email": "pabeni@redhat.com",
    "time": "Tue Jan 13 10:12:11 2026 +0100"
  },
  "message": "net: add net.core.qdisc_max_burst\n\nIn blamed commit, I added a check against the temporary queue\nbuilt in __dev_xmit_skb(). Idea was to drop packets early,\nbefore any spinlock was acquired.\n\nif (unlikely(defer_count \u003e READ_ONCE(q-\u003elimit))) {\n\tkfree_skb_reason(skb, SKB_DROP_REASON_QDISC_DROP);\n\treturn NET_XMIT_DROP;\n}\n\nIt turned out that HTB Qdisc has a zero q-\u003elimit.\nHTB limits packets on a per-class basis.\nSome of our tests became flaky.\n\nAdd a new sysctl : net.core.qdisc_max_burst to control\nhow many packets can be stored in the temporary lockless queue.\n\nAlso add a new QDISC_BURST_DROP drop reason to better diagnose\nfuture issues.\n\nThanks Neal !\n\nFixes: 100dfa74cad9 (\"net: dev_queue_xmit() llist adoption\")\nReported-and-bisected-by: Neal Cardwell \u003cncardwell@google.com\u003e\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nReviewed-by: Neal Cardwell \u003cncardwell@google.com\u003e\nLink: https://patch.msgid.link/20260107104159.3669285-1-edumazet@google.com\nSigned-off-by: Paolo Abeni \u003cpabeni@redhat.com\u003e\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "369a738a68193e897d880eeb2c5a22cd90833938",
      "old_mode": 33188,
      "old_path": "Documentation/admin-guide/sysctl/net.rst",
      "new_id": "91fa4ccd326c2b6351fd028a1c5d1c69126bee5f",
      "new_mode": 33188,
      "new_path": "Documentation/admin-guide/sysctl/net.rst"
    },
    {
      "type": "modify",
      "old_id": "58d91ccc56e0b54368c432fb9075ab174dc3a09f",
      "old_mode": 33188,
      "old_path": "include/net/dropreason-core.h",
      "new_id": "a7b7abd66e215c4bcaece6f00ca03de3ac81396f",
      "new_mode": 33188,
      "new_path": "include/net/dropreason-core.h"
    },
    {
      "type": "modify",
      "old_id": "4acec191c54ab367ca12fff590d1f8c8aad64651",
      "old_mode": 33188,
      "old_path": "include/net/hotdata.h",
      "new_id": "6632b1aa7584821fd4ab42163b77dfff6732a45e",
      "new_mode": 33188,
      "new_path": "include/net/hotdata.h"
    },
    {
      "type": "modify",
      "old_id": "9af9c3df452f7f736430c2e39d16ef004aeaae4b",
      "old_mode": 33188,
      "old_path": "net/core/dev.c",
      "new_id": "ccef685023c299dbd9fc1ccb7a914a282219a327",
      "new_mode": 33188,
      "new_path": "net/core/dev.c"
    },
    {
      "type": "modify",
      "old_id": "dddd5c287cf08ba75aec1cc546fd1bc48c0f7b26",
      "old_mode": 33188,
      "old_path": "net/core/hotdata.c",
      "new_id": "a6db365808178d243f53ae1a817938fb17c3f968",
      "new_mode": 33188,
      "new_path": "net/core/hotdata.c"
    },
    {
      "type": "modify",
      "old_id": "8d4decb2606fa18222a02e59dc889efa995d2eaa",
      "old_mode": 33188,
      "old_path": "net/core/sysctl_net_core.c",
      "new_id": "05dd55cf8b58e6c6fce498a11c09f23fd56d8f34",
      "new_mode": 33188,
      "new_path": "net/core/sysctl_net_core.c"
    }
  ]
}
