schema_version: 1
mode: sanitizer
ticket: DAILY-CONSAN-LDS-DISPATCH
description: >
  Informational (non-gating) gfx950 ConSan run over a small, race-free shared-memory
  (LDS) reduction kernel that is actually DISPATCHED (hipModuleLoad + hipModuleLaunch)
  via the source.consan_command path added in #347. The kernel is instrumented and
  runs, exercising ConSan record/replay end-to-end on a caller-supplied object.
  ROCm/rocm-systems#9972 (record capture yielded zero events -> exit 86) is fixed in
  15275dad: on bundle 97c1640b this case observes a clean pass with access=5/5,
  barrier=2/2 and dynamic_complete=true. It is now the end-to-end control proving the
  dynamic record/replay path works on a caller-supplied object. Rendered on the
  dashboard's Workload survey tab (Tab 2) as an observed-only case; it does NOT gate
  the nightly, so a future regression here shows up as an observation, not a gate
  failure.
sanitizer_plan:
  target: gfx950
  source:
    kind: kernel
    kernel:
      name: lds_reduce
      code_object: fixtures/isa/lds.hsaco
      code_object_index: 0
    consan_command: fixtures/bin/lds_dispatch
    consan_log: true
  scope:
    kind: kernel
  selection:
    requirement: top_dispatch_count
    top_n: 1
  sanitizers:
    - consan
  policy:
    consan_policy: strict
    on_missing_backend: fail
    timeout_seconds: 600
  output:
    report: sanitizer_report.json
