wip: async BT firmware download attempt — DO NOT MERGE, breaks AX211 bring-up

Deferring the Intel BT firmware download off the boot path made the AX211
bootloader stop answering after the first FC05; even the final synchronous
revert freezes boot, so one of the 'neutral' fixes kept in this diff breaks
the bring-up on its own (candidates: BT-TRACE logging inside TransferCallback,
unconditional interrupt-IN re-queue after error completions on a halted EP,
xHCI interrupt-IN ZLP len fix interacting with HID, InPollContext owner
check).  Full history + next experiments in memory notes, 2026-07-05/06.

Co-Authored-By: Claude Fable 5 <[email protected]>
This commit is contained in:
2026-07-06 15:46:06 +02:00
co-authored by Claude Fable 5
parent 6a5eafb4fc
commit 8bf3ceb457
9 changed files with 163 additions and 31 deletions
+6 -1
View File
@@ -945,7 +945,12 @@ namespace Sched {
// scanning 256 process slots on every tick. On a 32-core
// system with 27 idle CPUs, this avoids ~7M cache-line
// reads/sec from the process table.
if (readyCount > 0) {
//
// A CPU whose idle context is reserved for long-running kernel
// work (e.g. the deferred Bluetooth firmware download) is left
// alone: stealing it starves that work of CPU time while its
// wall-clock timeouts keep running.
if (readyCount > 0 && !cpu->reservedForKernelWork) {
Schedule();
}
return;