cpu: Allow storing an invalid HTM checkpoint
Commits02745afdandf9b4e32introduced a mechanism for creating checkpoint objects for hardware transactional memory (HTM) and Arm TME. Because the checkpoint object also contains the local UID of a transaction, it is needed before any architectural checkpointing takes places. This caused segfaults when running HTM codes. This commit allows ISAs to allocate a checkpoint once at the beginning of simulation. In order to do that we need to remove the validity check assertion; the cpt will become valid only after a first successfull transaction start Change-Id: I233d01805f8ab655131ed8cd6404950a2bf6fbc7 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/35015 Reviewed-by: Jason Lowe-Power <power.jg@gmail.com> Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
committed by
Giacomo Travaglini
parent
55cbc64d1e
commit
5c83d8f74c
@@ -347,7 +347,6 @@ template <class Impl>
|
||||
void
|
||||
O3ThreadContext<Impl>::setHtmCheckpointPtr(BaseHTMCheckpointPtr new_cpt)
|
||||
{
|
||||
assert(!thread->htmCheckpoint->valid());
|
||||
thread->htmCheckpoint = std::move(new_cpt);
|
||||
}
|
||||
|
||||
|
||||
@@ -196,6 +196,5 @@ SimpleThread::getHtmCheckpointPtr()
|
||||
void
|
||||
SimpleThread::setHtmCheckpointPtr(BaseHTMCheckpointPtr new_cpt)
|
||||
{
|
||||
assert(!_htmCheckpoint->valid());
|
||||
_htmCheckpoint = std::move(new_cpt);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user