Summary
The blocked-process report flow currently loses the GPU ID. The daemon creates LogEntry records with gpu_id: 1, even when the eBPF blocker has the actual ino_gpu_id.
Required changes
- Add the GPU ID field to every
ReportEvent layout used by the eBPF and daemon code.
- Populate the field at every
report_event call from is_inode_blocked's ino_gpu_id.
- Pass the event GPU ID through
report_logger and report_blocked.
- Set
LogEntry.gpu_id from the reported GPU ID instead of a hard-coded value.
Rationale
D-Bus clients need the actual blocked GPU ID to identify the GPU involved in each blocked-process event.
Affected areas
crates/cardwire-ebpf/src/helpers.rs
crates/cardwire-ebpf/src/maps.rs
crates/cardwire-daemon/src/analyzer/models.rs
- The blocked-process D-Bus log payload path
Acceptance criteria
- Each blocked-process
ReportEvent carries the GPU ID.
- Each
report_event call supplies ino_gpu_id.
LogEntry.gpu_id equals the GPU ID from the report event.
- The eBPF and daemon
ReportEvent layouts remain compatible.
Backlinks
Summary
The blocked-process report flow currently loses the GPU ID. The daemon creates
LogEntryrecords withgpu_id: 1, even when the eBPF blocker has the actualino_gpu_id.Required changes
ReportEventlayout used by the eBPF and daemon code.report_eventcall fromis_inode_blocked'sino_gpu_id.report_loggerandreport_blocked.LogEntry.gpu_idfrom the reported GPU ID instead of a hard-coded value.Rationale
D-Bus clients need the actual blocked GPU ID to identify the GPU involved in each blocked-process event.
Affected areas
crates/cardwire-ebpf/src/helpers.rscrates/cardwire-ebpf/src/maps.rscrates/cardwire-daemon/src/analyzer/models.rsAcceptance criteria
ReportEventcarries the GPU ID.report_eventcall suppliesino_gpu_id.LogEntry.gpu_idequals the GPU ID from the report event.ReportEventlayouts remain compatible.Backlinks