I'd say that a globally unique contextID is critical.  A threadID that
is per core can of course be created if necessary, but I bet that in
most instances, we can just pass pointers around.

  Nate

> I mostly agree with this, except that it might be tricky to use the context 
> ID t
> index into a vector of thread contexts when the numbering doesn't start over 
> for
> each CPU. Other than that it looks like we're strictly getting closer to the
> right answer at least.
>
> Gabe
>
> Quoting Lisa Hsu <[EMAIL PROTECTED]>:
>
>> yes, that's what i mean.
>>
>> believe it or not, right now if you run se.py -n4, all four cpus get cpuId =
>> 0 (regardless of which cpu type you use).  talk about broken.
>>
>> and from now on, getCpuId() should pretty much only be used for things like
>> stats, or as a secondary identifier, the primary thing to care about is the
>> HW context ID.
>>
>> On Fri, Oct 24, 2008 at 4:51 PM, Korey Sewell <[EMAIL PROTECTED]> wrote:
>>
>> > Are you saying make a distinction between the cpu ID and the actual
>> > hardware context ID? This is something definitely needed.
>> >
>> > I think this is what you describe below... I'm seeing something where
>> > there is a:
>> > getCpuId() and a getContext() function.
>> >
>> > On a 2-way SMT system with 1 CPU...
>> > process0->getCpuId() = 0
>> > process0->getContext() = 0
>> > process1->getCpuId() = 0
>> > process1->getContext() = 1
>> >
>> > but with a 2-CPU system , No-SMT...
>> > process0->getCpuId() = 0
>> > process0->getContext() = 0
>> > process1->getCpuId() = 1
>> > process1->getContext() = 1
>> >
>> > and finally, a 2-way SMT, 2-cpu system...
>> > process0->getCpuId() = 0
>> > process0->getContext() = 0
>> > process1->getCpuId() = 0
>> > process1->getContext() = 1
>> > process2->getCpuId() = 1
>> > process2->getContext() = 2
>> > process3->getCpuId() = 1
>> > process3->getContext() = 3
>> >
>> > Is this what you describe, by all means all systems go!
>> >
>> > 2008/10/24 Lisa Hsu <[EMAIL PROTECTED]>:
>> > > Hi All,
>> > >
>> > > In case you haven't guessed it, I'm hacking on M5 once again.  I've
>> > noticed
>> > > recently that there is a big hot mess when it comes to identification
>> > > mechanisms for CPUs, threads, and contexts.  Alternately all contexts are
>> > > assumed to be separate CPUs (which is wrong when there is SMT), vs times
>> > > when CPUs are CPUs and threads are subsets of certain  CPUs such that a
>> > > system can have names like CPU0,T0; CPU,T1; CPU1,T0; CPU1,T1, etc.
>> > >
>> > > I talked about it with Steve today and here's what I propose, let me know
>> > if
>> > > you object.
>> > >
>> > > All CPUs with have an ID, but this will not be a primary context
>> > > identification mechanism.  In other words, in many places where
>> > > tc->getCpuId() is used in order to index into a threadContexts vector, it
>> > > will be changed so that tc->getIdentifier() will give back something
>> > unique
>> > > across the system.
>> > >
>> > > The primary context identification mechanism will be a system-wide
>> > context
>> > > id-value.  That means in a 2 CPU 2 thread SMT system, you will have
>> > > system-wide context IDs of 0-3.  So the tc->getCpuId() mentioned above
>> > will
>> > > be changed to something like tc->getContextId().
>> > >
>> > > Each context will still have a pointer to the CPU it belongs to, which in
>> > > turn will have an ID value so you can always know which CPU you belong to
>> > if
>> > > you want.
>> > >
>> > >
>> > > I'm going to start working on this now, so speak now or forever hold your
>> > > peace. :)
>> > >
>> > > Lisa
>> > >
>> > > _______________________________________________
>> > > m5-dev mailing list
>> > > m5-dev@m5sim.org
>> > > http://m5sim.org/mailman/listinfo/m5-dev
>> > >
>> > >
>> >
>> >
>> >
>> > --
>> > ----------
>> > Korey L Sewell
>> > Graduate Student - PhD Candidate
>> > Computer Science & Engineering
>> > University of Michigan
>> > _______________________________________________
>> > m5-dev mailing list
>> > m5-dev@m5sim.org
>> > http://m5sim.org/mailman/listinfo/m5-dev
>> >
>> >
>>
>
>
>
>
> _______________________________________________
> m5-dev mailing list
> m5-dev@m5sim.org
> http://m5sim.org/mailman/listinfo/m5-dev
>
>
_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to