docs: apply scheduling research to native transport investigation
This commit is contained in:
parent
309a0a4fc7
commit
be0f3579c6
1 changed files with 81 additions and 3 deletions
|
|
@ -161,9 +161,39 @@ completion state. OUT payload `<HH>` supports:
|
||||||
- handle `0xffff` + value 2/3 to set incoming-credit batching threshold;
|
- handle `0xffff` + value 2/3 to set incoming-credit batching threshold;
|
||||||
- handle `0xffff` + value `0x101`/`0x102`/`0x104` to set receive bound 1/2/4.
|
- handle `0xffff` + value `0x101`/`0x102`/`0x104` to set receive bound 1/2/4.
|
||||||
|
|
||||||
No link policy changes automatically. The prepared comparison matrix uses
|
The interrupted active-policy matrix is invalid across its reconnect. HCI
|
||||||
active Pro policy, tests `(receive, credit)` pairs `(1,2), (2,2), (4,2),
|
recorded reason `0x22` (LMP response timeout) about 32.9 seconds after the
|
||||||
(4,3), (2,3), (1,3), (1,2)`, and restores baseline controls afterward.
|
active-mode transition; this is correlation, not proof of cause. Tests now
|
||||||
|
abort on Pro connection-generation changes, changed link fingerprints, USB
|
||||||
|
errors, or a changed/stopped DualSense native run.
|
||||||
|
|
||||||
|
A subsequent same-boot **normal-policy** matrix completed with stable
|
||||||
|
connections. All cases received 513 commands per controller, but all failed
|
||||||
|
the no-loss criterion:
|
||||||
|
|
||||||
|
| Receive bound | Credit threshold | Pro completed / dropped | DS skips |
|
||||||
|
|---:|---:|---:|---:|
|
||||||
|
| 1 | 2 | 174 / 338 | 38 |
|
||||||
|
| 2 | 2 | 195 / 317 | 31 |
|
||||||
|
| 4 | 2 | 207 / 305 | 19 |
|
||||||
|
| 4 | 3 | 204 / 309 | 21 |
|
||||||
|
| 2 | 3 | 196 / 316 | 26 |
|
||||||
|
| 1 | 3 | 183 / 329 | 37 |
|
||||||
|
| 1 | 2, repeated baseline | 177 / 335 | 40 |
|
||||||
|
|
||||||
|
All but the `(4,3)` trial coalesced one command. Threshold 3 reduced incoming
|
||||||
|
credit-return command traffic, but did not materially improve delivery.
|
||||||
|
|
||||||
|
Temporary sniff negotiation controls also support Pro handle + `0x200 | N`,
|
||||||
|
where N is 8/12/16/24 slots of 0.625 ms. Attempt/timeout were 4/1. The Pro
|
||||||
|
re-entered 15 ms sniff before deferred and immediate re-entry requests ran;
|
||||||
|
those attempts received Command Disallowed. Briefly gating automatic sniff,
|
||||||
|
requesting interval 12, then restoring policy 5 successfully negotiated
|
||||||
|
7.5 ms, but no healthy mixed-stream throughput result was obtained: the
|
||||||
|
DualSense stream was in can-send timeout. Original interval 24 / policy 5
|
||||||
|
were restored and the connected DualSense native stream was re-armed.
|
||||||
|
Do not promote interval-only tuning from command acceptance.
|
||||||
|
|
||||||
Keep approvals/bonds/profiles unchanged. Remove diagnostic hooks and restore
|
Keep approvals/bonds/profiles unchanged. Remove diagnostic hooks and restore
|
||||||
or qualify settings before publishing another production build.
|
or qualify settings before publishing another production build.
|
||||||
|
|
||||||
|
|
@ -172,6 +202,54 @@ output traffic and uses input-report-aware throttling. This is corroborating
|
||||||
timing evidence, not code incorporated into this project:
|
timing evidence, not code incorporated into this project:
|
||||||
https://github.com/torvalds/linux/blob/master/drivers/hid/hid-nintendo.c
|
https://github.com/torvalds/linux/blob/master/drivers/hid/hid-nintendo.c
|
||||||
|
|
||||||
|
## Scheduling literature: applicable principles, not a drop-in port
|
||||||
|
|
||||||
|
User-supplied paper: Moonbeom Kim and Jeongyeup Paek,
|
||||||
|
[Multiconnection Scheduling With Fair Resource Management for Scalable
|
||||||
|
Bluetooth Low-Energy Networks](https://ieeexplore.ieee.org/document/11275955)
|
||||||
|
(EMBLEM, IEEE IoT Journal, 2026; online December 2025).
|
||||||
|
|
||||||
|
The full text was reviewed. EMBLEM operates in a modified central **BLE link
|
||||||
|
layer** on nRF52840/Mynewt/NimBLE, using Bluetooth 5.3 connection subrating,
|
||||||
|
anchor placement, event preemption/extension, measured event durations and
|
||||||
|
guard resources. Our Pro/DualSense links are **Bluetooth Classic BR/EDR**;
|
||||||
|
Classic sniff/subrating is not LE connection subrating. The CYW43439 firmware
|
||||||
|
owns radio scheduling, and the HCI APIs used here do not expose equivalent
|
||||||
|
anchor placement or event preemption. Its results therefore do not establish
|
||||||
|
our achievable capacity or justify copying its BLE constants.
|
||||||
|
|
||||||
|
Useful next experiments/design directions:
|
||||||
|
|
||||||
|
- Treat both native outputs as clients of one host-side admission scheduler.
|
||||||
|
Use deadlines/age plus bounded per-link service, not independent writers
|
||||||
|
consuming credits opportunistically. This cannot guarantee on-air scheduling.
|
||||||
|
- Budget measured queue/credit occupancy and estimated exchange cost, not
|
||||||
|
payload bytes alone. HCI completion delay is a proxy, not measured airtime.
|
||||||
|
- Examine window duration and phase as well as interval. For Classic sniff,
|
||||||
|
attempt/timeout and negotiated interval matter together; shortening only
|
||||||
|
the interval can reserve too much service time for one link.
|
||||||
|
- Retain guard margin for measured jitter/retransmissions. Exclude reconnects,
|
||||||
|
stopped streams, and coalesced holds from inappropriate rate/latency estimates.
|
||||||
|
- Adapt slowly using smoothed demand and hysteresis, rather than issuing
|
||||||
|
radio-parameter updates on every 8 ms rumble change. EMBLEM's illustrated
|
||||||
|
adaptation takes about four seconds, not a per-haptic-frame response.
|
||||||
|
- The application output periods share a **64 ms hyperperiod**: eight 8 ms
|
||||||
|
Pro updates and three 64-frame/3-kHz DualSense reports. A small deadline/phase
|
||||||
|
analysis is sufficient; the paper's 1,023-node bitmap tree is unnecessary
|
||||||
|
for four slots. This application calendar is not a Bluetooth radio calendar.
|
||||||
|
|
||||||
|
Related sources:
|
||||||
|
|
||||||
|
- [RT-BLE: Real-time Multi-Connection Scheduling for Bluetooth Low
|
||||||
|
Energy](https://ieeexplore.ieee.org/document/10229006/) models retransmission
|
||||||
|
latency and allocates connection resources; its
|
||||||
|
[implementation](https://github.com/sada45/RT-BLE) modifies NimBLE/RIOT on
|
||||||
|
nRF52840. Abstract and implementation requirements reviewed, not full paper.
|
||||||
|
- [Efficient polling schemes for Bluetooth picocells](https://ieeexplore.ieee.org/document/936938)
|
||||||
|
is directly about Classic master-controlled polling/TDD. Abstract/introduction
|
||||||
|
reviewed; useful direction for service-time-aware polling and fairness,
|
||||||
|
not evidence that its radio scheduler can be installed above HCI here.
|
||||||
|
|
||||||
## Read these code paths first
|
## Read these code paths first
|
||||||
|
|
||||||
| Area | Files / symbols | Relevant facts |
|
| Area | Files / symbols | Relevant facts |
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue