rocr/dtif: use default signal for intercept queue for DTIF

Signed-off-by: Jiadong Zhu <Jiadong.Zhu@amd.com>
Reviewed-by: David Yat Sin <David.YatSin@amd.com>
This commit is contained in:
Jiadong Zhu
2025-02-20 15:41:23 +08:00
committed by Yat Sin, David
parent 8c1b1201b7
commit 0f9d2b836c
2 changed files with 6 additions and 2 deletions
@@ -232,7 +232,7 @@ class InterceptQueue : public QueueProxy, private LocalSignal, public DoorbellSi
bool IsPendingRetryPoint(uint64_t wrapped_current_read_index) const;
// Event signal to use for async packet processing and control flag.
InterruptSignal* async_doorbell_;
Signal* async_doorbell_;
std::atomic<bool> quit_;
// Indicates queue active/inactive state.
@@ -42,6 +42,7 @@
#include "core/inc/intercept_queue.h"
#include "core/inc/amd_aql_queue.h"
#include "core/inc/default_signal.h"
#include "core/util/utils.h"
#include "inc/hsa_api_trace.h"
@@ -135,7 +136,10 @@ InterceptQueue::InterceptQueue(std::unique_ptr<Queue> queue)
// Match the queue's signal ABI block to async_doorbell_'s
// This allows us to use the queue's signal ABI block from devices to trigger async_doorbell while
// host side use jumps directly to the queue's signal implementation.
async_doorbell_ = new InterruptSignal(DOORBELL_MAX);
if (core::Runtime::runtime_singleton_->flag().enable_dtif())
async_doorbell_ = new DefaultSignal(DOORBELL_MAX);
else
async_doorbell_ = new InterruptSignal(DOORBELL_MAX);
MAKE_NAMED_SCOPE_GUARD(sigGuard, [&]() { async_doorbell_->DestroySignal(); });
this->signal_ = async_doorbell_->signal_;
amd_queue_.hsa_queue.doorbell_signal = Signal::Convert(this);