Bypass HDP flush during SDMA copies on A+A GPU-CPU xGMI connections

Host to device SDMA copies do not require an HDP cache flush when
connected by xGMI since data copies over the data fabric and not HDP.

Signed-off-by: Jonathan Kim <jonathan.kim@amd.com>
Reviewed-by: Sean Keely <sean.keely@amd.com>
Change-Id: I78d73a47edcc1a9c0ba59f33cf91485f13f1c45b
This commit is contained in:
Jonathan Kim
2022-04-25 15:11:21 -04:00
committed by Jonathan Kim
parent 64dae113b1
commit 658b053943
@@ -146,18 +146,20 @@ hsa_status_t BlitSdma<RingIndexTy, HwIndexMonotonic, SizeToCountOffset, useGCR>:
return HSA_STATUS_ERROR;
}
const core::Runtime::LinkInfo& link = core::Runtime::runtime_singleton_->GetLinkInfo(
agent_->node_id(), core::Runtime::runtime_singleton_->cpu_agents()[0]->node_id());
if (agent_->isa()->GetVersion() == core::Isa::Version(7, 0, 1)) {
platform_atomic_support_ = false;
} else {
const core::Runtime::LinkInfo& link = core::Runtime::runtime_singleton_->GetLinkInfo(
agent_->node_id(), core::Runtime::runtime_singleton_->cpu_agents()[0]->node_id());
platform_atomic_support_ = link.info.atomic_support_64bit;
}
// HDP flush supported on gfx900 and forward.
// FIXME: Not working on gfx10, raises SRBM write protection interrupt.
// gfx90a can support xGMI host to device connections so bypass HDP flush
// in this case.
if (agent_->isa()->GetMajorVersion() == 9) {
hdp_flush_support_ = true;
hdp_flush_support_ = link.info.link_type != HSA_AMD_LINK_INFO_TYPE_XGMI;
}
// Allocate queue buffer.