Review Board 2.0.15


cpu: o3: Merging haltContext with suspendContext

Review Request #2846 - Created May 26, 2015 and updated - Latest diff uploaded

Information
Alexandru Dutu
gem5
default
Reviewers
Default
Changeset 10857:5dd0809b9662
---------------------------
cpu: o3: Merging haltContext with suspendContext
This patch improves suspendContext by flushing the pipeline, which frees
resources for other hardware threads. Secondly, it makes haltContext call
suspendContext which is not freeing architectural registers mappings on halt.
Something that haltContext previously did and was not realistic.
For example, in SMT implementations the architectural registers for a
particular hardware thread will always have mapped some physical registers and
having one thread finish execution will never create more available physical
registers for other hardware threads as there will be scheduled a different
software thread to execute on that hardware thread anyway.
As a consequence, this patch helps enabling SMT in x86 by not putting the
physical registered mapped to the ZeroRegister on the freeList for a different
thread to pick up when one of the threads has finished executing and called
exit.

Quick regressions passed.