)]}'
{
  "commit": "ab248e0b900ea2e30bec5c71fd56d8f0fa87a67a",
  "tree": "ef60f9dd7ba6a92851c0e7bd51a4c244d83e64c1",
  "parents": [
    "8d22d6da17d9612963a08965c3784a191dc66cec"
  ],
  "author": {
    "name": "Mikhail Zubenko",
    "email": "misha.zubenko.01@yandex.ru",
    "time": "Mon Aug 24 15:54:28 2026 +0000"
  },
  "committer": {
    "name": "Greg Kroah-Hartman",
    "email": "gregkh@linuxfoundation.org",
    "time": "Sun Oct 18 10:13:48 2026 +0200"
  },
  "message": "usb: gadget: dummy_hcd: add tick_us module parameter for timer-rate tuning\n\ndummy_hcd services URB completions from an hrtimer callback that\nrearms itself with a fixed 125 us delay (one high-speed microframe)\nfor as long as any URBs are queued.  Against a permanently polled HID\ninterrupt endpoint the queue never drains, so the timer runs at ~8 kHz\nregardless of actual traffic.\n\nOn timer-rate-sensitive platforms (observed on one consumer AM4 board\nwith a current BIOS and a stock kernel) this timer rate co-existing\nwith a live Bluetooth session on the machine\u0027s real xHCI controller\nresulted in a hard, below-software platform hang: printk, SysRq, NMI\nand both watchdogs died in the same instant, with no panic, no MCE,\nand empty pstore.  13 occurrences over 5 days, reliably reproducible\nwith that configuration (hangs within 20 min to 2.5 h of uptime).\nThe same workload with the emulated microframe lengthened to 1000 us\n(this parameter) ran ~8 hours with zero hangs, and USB-cable sessions\n(identical gadget traffic, no Bluetooth co-existence) never hung.\n\nNote that lengthening the emulated microframe makes the emulation run\nslower than a physical device would; users of the parameter trade\nthat emulation fidelity for interrupt-rate headroom.\n\nThe per-frame bandwidth budget in dummy_timer() does not scale with\nthe emulated microframe length; making that accounting microframe-\ncorrect is planned as a follow-up patch.  Otherwise nothing in the\ndriver\u0027s behaviour depends on the emulated microframe length.\n\nDefault keeps the current 125 us behaviour bit-for-bit (and defaults\nto 1000 us for full-speed emulation, where the natural unit is the\n1-ms frame).  Values below 125 are rejected.\n\nSigned-off-by: Mikhail Zubenko \u003cmisha.zubenko.01@yandex.ru\u003e\nReviewed-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nLink: https://patch.msgid.link/178758686883.288478.6637939361965647417@yandex.ru\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "27cb3b25e4815e06e0a6f39a388297c61c0eda0c",
      "old_mode": 33188,
      "old_path": "drivers/usb/gadget/udc/dummy_hcd.c",
      "new_id": "4da008bb39f81285c390bdd40c80fa8a006b40f9",
      "new_mode": 33188,
      "new_path": "drivers/usb/gadget/udc/dummy_hcd.c"
    }
  ]
}
