dev-amdgpu: Add PM4 queue ID to GPU used VMID map

When restoring checkpoints for certain applications, gem5 tries to
create new doorbells with a pre-existing queue ID and simulation crashes
shortly after. This commit adds existing IDs to the GPU device's used
VMID map so that new doorbells are aware of existing queue IDs and use a
new ID. This ensures that queue IDs are unique after checkpoint
restoration

Change-Id: I9bf89a2769db26ceab4441634ff2da936eea6d6f
This commit is contained in:
Vishnu Ramadas
2023-11-16 17:12:01 -06:00
parent db6a869786
commit d19d6fc31e

View File

@@ -1197,6 +1197,8 @@ PM4PacketProcessor::unserialize(CheckpointIn &cp)
PM4MapQueues* pkt = new PM4MapQueues;
memset(pkt, 0, sizeof(PM4MapQueues));
newQueue(mqd, offset[i], pkt, id[i]);
PM4Queue *new_q = queuesMap[offset[i]];
gpuDevice->insertQId(gpuDevice->lastVMID(), new_q->id());
if (ib[i]) {
queues[id[i]]->wptr(ib_wptr[i]);