Hi,
For SMT, make sure that the number of physical registers configured in
Opal is sufficient for the number of SMT contexts per core you want to
support (e.g. 2).
For example, 2 SMT contexts requires a minimum of these registers:
CONFIG_IREG_PHYSICAL = 160*2+64 = 384, etc.
Take a look at these lines in gen-scripts/mfacet.py:
run_sim_command("opal0.setparam CONFIG_LOGICAL_PER_PHY_PROC %d" % smt_threads)
# set up the number of physical registers needed, for each physical register type:
run_sim_command("opal0.setparam CONFIG_IREG_PHYSICAL %d" % (160*smt_threads+64))
run_sim_command("opal0.setparam CONFIG_FPREG_PHYSICAL %d" % (64*smt_threads+128))
run_sim_command("opal0.setparam CONFIG_CCREG_PHYSICAL %d" % (5*smt_threads+64))
Luke
On Fri, 5 Sep 2008, Daniel Sánchez Pedreño wrote:
Hi all,
I'm trying to configure GEMS to execute a SMT wuth 16 numProcs (16 HW
context) where each processor is a 2-thread SMT, so the number of
numSMTProcs is 8. The problem I've experienced is this
*
simics-common: system/regmap.C:166: uint16 reg_map_t::regAllocate(uint16,
uint32): Assertion `(m_freelist_index >= 0)' failed.
*The problem is that, for some reason, m_freelist_index is -1. regAllocate
is called from system/arf.C in line 519 in function *initialize(). *It seems
that the wrong behaviour is in the call to reg_box_t::iregWindowMap.
Any idea on what is the problem or any feedback?
Thanks in advance.
|