Re: [Gems-users] regAllocate() assertion when using SMT procs


Date: Fri, 5 Sep 2008 09:54:38 -0500 (CDT)
From: Luke Yen <lyen@xxxxxxxxxxx>
Subject: Re: [Gems-users] regAllocate() assertion when using SMT procs
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.
[← Prev in Thread] Current Thread [Next in Thread→]