Skip to content

让每个控制器独立拥有协议状态与工作队列 #4

Description

@sanchuanhehe

What to build

将当前通过 active_dev_id 交换整套全局协议状态的模型改为真正的 per-device 所有权。

每个 SleDev 应拥有自己的 Controller Backend Adapter、DLI Host、连接、安全、链路 channel、PHY、事件序列与 workers。注册表只负责索引设备,不通过切换全局状态模拟多控制器。

Acceptance criteria

  • 两个控制器可以并行广播、扫描、建链或传输,互不切换全局 active state。
  • 所有控制器事件按 source controller id 路由;非 active 设备事件不会被丢弃,也不会污染另一设备状态。
  • per-fd affinity 只选择目标设备,不触发保存和恢复整套全局状态。
  • RPA、DLI pending、事件序列、安全、channel 与 PHY actual state 均为 per-device。
  • Controller Backend、Transport、RX parser 和 queue 都由对应 SleDev 拥有,不使用 USB 或 serdev 全局 ring。
  • 热拔插只取消对应设备的事务与 workers,并向该设备订阅者报告终止。
  • 并发测试覆盖双控制器、交错完成事件与单侧热拔插。

Blocked by

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions