Re: [m5-dev] MIPS UTB and multiple inheritance.

2009-03-06 Thread Korey Sewell
OK,
so the solution should probably be move the ITB/DTB functions into one base
TLB and then let a unified TLB derive off of that...correct?

This would allow us the two standard ITB and DTB pointers we've been
using...but also avoid multiple inheritance issues as well.

On Fri, Mar 6, 2009 at 2:12 AM, nathan binkert n...@binkert.org wrote:

 Oh, I agree there.  They may both point to the same thing (unified
 case), but they may not.

  Nate

  Having two pointers in the CPU for the DTB and ITB is still a
  necessity. If you're trying to model separate structures you're going
  to need two of them.
 
  Ali
 
 
  On Mar 6, 2009, at 1:13 AM, Gabe Black wrote:
 
  I think ITBs and DTBs are usually very similar differ in a few key
  ways
  like the nx (no execute) bit in x86 for example. In x86 the DTB and
  ITB
  classes are basically just wrappers around a common TLB with one
  translate function, and the DTB's and ITB's version just call that
  with
  an extra parameter or two. This should generally work across other
  ISAs
  as far as I know. If the translate functions really are radically
  different, there isn't much overhead in having them both in there and
  just picking one or the other based on that parameter. I think even
  the
  generic TLB that's for SE implementations that don't have an ISA
  specific TLB yet just looks things up in the page table no matter what
  your translating.
 
  As far as whether to get rid of the separation between the ITB and
  DTB I
  think it's a good idea. I can't think of any benefit to having the
  separation other than that it's already there, and while it hasn't
  caused any other problems it prevents Korey from having a UTB
  implementation. We'd likely want to give it parameters which let you
  independently configure it's ITB and DTB (or UTB) personalities, but
  that should be pretty easy.
 
  This should (knock on wood) be pretty easy to implement and I'd be
  happy
  to help.
 
  Gabe
 
  nathan binkert wrote:
  How different are ITBs and DTBs anyway?  It seems like for a UTB
  you'd
  want a single object that handles both ifetch and data translations
  using a common translate() method, not something that inherits from
  two different classes.  E.g., why not just derive it from TLB?
 
  The two translation functions are different because every ISA does
  some different things for instructions vs data.  Think about
  something
  like the executable bit.
 
 
  Philosophically, I agree... let's avoid virtual inheritance if at
  all
  possible.  It's just not a good idea.
 
  Ok, so the question is, which of the other alternatives should we do?
  Gabe (mister TLB expert)? Korey (since this is mips code)?
 
   Nate
  ___
  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
 
 
 ___
 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


Re: [m5-dev] MIPS UTB and multiple inheritance.

2009-03-06 Thread Gabe Black
Is the following correct? This is in the BaseCPU where it sets up the
data and instruction TLBs it's going to use and installs defaults. I'm
suspicious that this is actually installing a particular TLB to be the
default in all of the CPUs, or in other words all CPUs share the same
ITB and DTB. Am I crazy?

dtb = Param.SparcDTB(SparcDTB(), Data TLB)
itb = Param.SparcITB(SparcITB(), Instruction TLB)

Gabe

Gabe Black wrote:
 I'll keep both pointers then. I have all the non-ISA bits and X86
 converted and I'm trying to test it, but I'm running into a compile
 error in the stats stuff. Nate?

 cc1plus: warnings being treated as errors
 build/X86_SE/base/statistics.hh: In member function
 'Stats::VectorDistribution
 Stats::VectorDistribution::init(Stats::size_type, Stats::Counter,
 Stats::Counter, Stats::Counter)':
 build/X86_SE/base/statistics.hh:2498: warning: converting to
 'Stats::size_type' from 'double'

 Gabe

 nathan binkert wrote:
   
 Oh, I agree there.  They may both point to the same thing (unified
 case), but they may not.

   Nate

   
 
 Having two pointers in the CPU for the DTB and ITB is still a
 necessity. If you're trying to model separate structures you're going
 to need two of them.

 Ali


 On Mar 6, 2009, at 1:13 AM, Gabe Black wrote:

 
   
 I think ITBs and DTBs are usually very similar differ in a few key
 ways
 like the nx (no execute) bit in x86 for example. In x86 the DTB and
 ITB
 classes are basically just wrappers around a common TLB with one
 translate function, and the DTB's and ITB's version just call that
 with
 an extra parameter or two. This should generally work across other
 ISAs
 as far as I know. If the translate functions really are radically
 different, there isn't much overhead in having them both in there and
 just picking one or the other based on that parameter. I think even
 the
 generic TLB that's for SE implementations that don't have an ISA
 specific TLB yet just looks things up in the page table no matter what
 your translating.

 As far as whether to get rid of the separation between the ITB and
 DTB I
 think it's a good idea. I can't think of any benefit to having the
 separation other than that it's already there, and while it hasn't
 caused any other problems it prevents Korey from having a UTB
 implementation. We'd likely want to give it parameters which let you
 independently configure it's ITB and DTB (or UTB) personalities, but
 that should be pretty easy.

 This should (knock on wood) be pretty easy to implement and I'd be
 happy
 to help.

 Gabe

 nathan binkert wrote:
   
 
 How different are ITBs and DTBs anyway?  It seems like for a UTB
 you'd
 want a single object that handles both ifetch and data translations
 using a common translate() method, not something that inherits from
 two different classes.  E.g., why not just derive it from TLB?

   
 
 The two translation functions are different because every ISA does
 some different things for instructions vs data.  Think about
 something
 like the executable bit.


 
   
 Philosophically, I agree... let's avoid virtual inheritance if at
 all
 possible.  It's just not a good idea.

   
 
 Ok, so the question is, which of the other alternatives should we do?
 Gabe (mister TLB expert)? Korey (since this is mips code)?

  Nate
 ___
 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


 
   
 ___
 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


Re: [m5-dev] MIPS UTB and multiple inheritance.

2009-03-06 Thread Gabe Black
The ITB and DTB functions should be in -the- base TLB class I hope by
the end of the weekend at the latest. The UTB can then be assigned to
both ITB and DTB parameters and it should work.

Gabe

Korey Sewell wrote:
 OK,
 so the solution should probably be move the ITB/DTB functions into one
 base TLB and then let a unified TLB derive off of that...correct?

 This would allow us the two standard ITB and DTB pointers we've been
 using...but also avoid multiple inheritance issues as well.

 On Fri, Mar 6, 2009 at 2:12 AM, nathan binkert n...@binkert.org
 mailto:n...@binkert.org wrote:

 Oh, I agree there.  They may both point to the same thing (unified
 case), but they may not.

  Nate

  Having two pointers in the CPU for the DTB and ITB is still a
  necessity. If you're trying to model separate structures you're
 going
  to need two of them.
 
  Ali
 
 
  On Mar 6, 2009, at 1:13 AM, Gabe Black wrote:
 
  I think ITBs and DTBs are usually very similar differ in a few key
  ways
  like the nx (no execute) bit in x86 for example. In x86 the DTB and
  ITB
  classes are basically just wrappers around a common TLB with one
  translate function, and the DTB's and ITB's version just call that
  with
  an extra parameter or two. This should generally work across other
  ISAs
  as far as I know. If the translate functions really are radically
  different, there isn't much overhead in having them both in
 there and
  just picking one or the other based on that parameter. I think even
  the
  generic TLB that's for SE implementations that don't have an ISA
  specific TLB yet just looks things up in the page table no
 matter what
  your translating.
 
  As far as whether to get rid of the separation between the ITB and
  DTB I
  think it's a good idea. I can't think of any benefit to having the
  separation other than that it's already there, and while it hasn't
  caused any other problems it prevents Korey from having a UTB
  implementation. We'd likely want to give it parameters which
 let you
  independently configure it's ITB and DTB (or UTB)
 personalities, but
  that should be pretty easy.
 
  This should (knock on wood) be pretty easy to implement and I'd be
  happy
  to help.
 
  Gabe
 
  nathan binkert wrote:
  How different are ITBs and DTBs anyway?  It seems like for a UTB
  you'd
  want a single object that handles both ifetch and data
 translations
  using a common translate() method, not something that
 inherits from
  two different classes.  E.g., why not just derive it from TLB?
 
  The two translation functions are different because every ISA does
  some different things for instructions vs data.  Think about
  something
  like the executable bit.
 
 
  Philosophically, I agree... let's avoid virtual inheritance if at
  all
  possible.  It's just not a good idea.
 
  Ok, so the question is, which of the other alternatives should
 we do?
  Gabe (mister TLB expert)? Korey (since this is mips code)?
 
   Nate
  ___
  m5-dev mailing list
  m5-dev@m5sim.org mailto:m5-dev@m5sim.org
  http://m5sim.org/mailman/listinfo/m5-dev
 
 
  ___
  m5-dev mailing list
  m5-dev@m5sim.org mailto:m5-dev@m5sim.org
  http://m5sim.org/mailman/listinfo/m5-dev
 
 
  ___
  m5-dev mailing list
  m5-dev@m5sim.org mailto:m5-dev@m5sim.org
  http://m5sim.org/mailman/listinfo/m5-dev
 
 
 ___
 m5-dev mailing list
 m5-dev@m5sim.org mailto: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


Re: [m5-dev] MIPS UTB and multiple inheritance.

2009-03-06 Thread Korey Sewell
Gabe,
aren't those per-CPU python parameters? In other words, each CPU
instantiates it' own set of parameters in the config file through this
python interface...right?

On Fri, Mar 6, 2009 at 3:09 AM, Gabe Black gbl...@eecs.umich.edu wrote:

 Is the following correct? This is in the BaseCPU where it sets up the
 data and instruction TLBs it's going to use and installs defaults. I'm
 suspicious that this is actually installing a particular TLB to be the
 default in all of the CPUs, or in other words all CPUs share the same
 ITB and DTB. Am I crazy?

dtb = Param.SparcDTB(SparcDTB(), Data TLB)
itb = Param.SparcITB(SparcITB(), Instruction TLB)

 Gabe

 Gabe Black wrote:
  I'll keep both pointers then. I have all the non-ISA bits and X86
  converted and I'm trying to test it, but I'm running into a compile
  error in the stats stuff. Nate?
 
  cc1plus: warnings being treated as errors
  build/X86_SE/base/statistics.hh: In member function
  'Stats::VectorDistribution
  Stats::VectorDistribution::init(Stats::size_type, Stats::Counter,
  Stats::Counter, Stats::Counter)':
  build/X86_SE/base/statistics.hh:2498: warning: converting to
  'Stats::size_type' from 'double'
 
  Gabe
 
  nathan binkert wrote:
 
  Oh, I agree there.  They may both point to the same thing (unified
  case), but they may not.
 
Nate
 
 
 
  Having two pointers in the CPU for the DTB and ITB is still a
  necessity. If you're trying to model separate structures you're going
  to need two of them.
 
  Ali
 
 
  On Mar 6, 2009, at 1:13 AM, Gabe Black wrote:
 
 
 
  I think ITBs and DTBs are usually very similar differ in a few key
  ways
  like the nx (no execute) bit in x86 for example. In x86 the DTB and
  ITB
  classes are basically just wrappers around a common TLB with one
  translate function, and the DTB's and ITB's version just call that
  with
  an extra parameter or two. This should generally work across other
  ISAs
  as far as I know. If the translate functions really are radically
  different, there isn't much overhead in having them both in there and
  just picking one or the other based on that parameter. I think even
  the
  generic TLB that's for SE implementations that don't have an ISA
  specific TLB yet just looks things up in the page table no matter what
  your translating.
 
  As far as whether to get rid of the separation between the ITB and
  DTB I
  think it's a good idea. I can't think of any benefit to having the
  separation other than that it's already there, and while it hasn't
  caused any other problems it prevents Korey from having a UTB
  implementation. We'd likely want to give it parameters which let you
  independently configure it's ITB and DTB (or UTB) personalities, but
  that should be pretty easy.
 
  This should (knock on wood) be pretty easy to implement and I'd be
  happy
  to help.
 
  Gabe
 
  nathan binkert wrote:
 
 
  How different are ITBs and DTBs anyway?  It seems like for a UTB
  you'd
  want a single object that handles both ifetch and data translations
  using a common translate() method, not something that inherits from
  two different classes.  E.g., why not just derive it from TLB?
 
 
 
  The two translation functions are different because every ISA does
  some different things for instructions vs data.  Think about
  something
  like the executable bit.
 
 
 
 
  Philosophically, I agree... let's avoid virtual inheritance if at
  all
  possible.  It's just not a good idea.
 
 
 
  Ok, so the question is, which of the other alternatives should we do?
  Gabe (mister TLB expert)? Korey (since this is mips code)?
 
   Nate
  ___
  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
 
 
 
 
  ___
  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




-- 
--
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] Undelivered Mail Returned to Sender

2009-03-06 Thread Mail Delivery System
This is the mail system at host daystrom.m5sim.org.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

   The mail system

dan...@yandex.ru: host mx3.yandex.ru[213.180.204.89] said: 550 5.1.1
dan...@yandex.ru user unknown (in reply to RCPT TO command)
Reporting-MTA: dns; daystrom.m5sim.org
X-Postfix-Queue-ID: 96243158438
X-Postfix-Sender: rfc822; m5-dev@m5sim.org
Arrival-Date: Fri,  6 Mar 2009 09:10:28 -0500 (EST)

Final-Recipient: rfc822; Dan1oo@yandex.ru
Action: failed
Status: 5.1.1
Remote-MTA: dns; mx3.yandex.ru
Diagnostic-Code: smtp; 550 5.1.1 Dan1oo@yandex.ru user unknown
---BeginMessage---
 

This address has been used to register a Flyspray account.  If you
were not expecting this message, please ignore and delete it.  Go to
the following URL to complete your registration:

http://www.m5sim.org/flyspray/index.php?do=registermagic=e036432a4055263abd570c3e658733dd


Your confirmation code is:

7a2ddKZBVC982

---End Message---
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] MIPS UTB and multiple inheritance.

2009-03-06 Thread nathan binkert
 I'll keep both pointers then. I have all the non-ISA bits and X86
 converted and I'm trying to test it, but I'm running into a compile
 error in the stats stuff. Nate?

 cc1plus: warnings being treated as errors
 build/X86_SE/base/statistics.hh: In member function
 'Stats::VectorDistribution
 Stats::VectorDistribution::init(Stats::size_type, Stats::Counter,
 Stats::Counter, Stats::Counter)':
 build/X86_SE/base/statistics.hh:2498: warning: converting to
 'Stats::size_type' from 'double'

You have a VectorDistribution stat somewhere, and you're calling its
init() function with the first parameter as a float instead of an
integer.  Nothing magic here, just apply normal debugging techniques.

  Nate
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] MIPS UTB and multiple inheritance.

2009-03-06 Thread Steve Reinhardt
On Fri, Mar 6, 2009 at 7:48 AM, nathan binkert n...@binkert.org wrote:
 Is the following correct? This is in the BaseCPU where it sets up the
 data and instruction TLBs it's going to use and installs defaults. I'm
 suspicious that this is actually installing a particular TLB to be the
 default in all of the CPUs, or in other words all CPUs share the same
 ITB and DTB. Am I crazy?

        dtb = Param.SparcDTB(SparcDTB(), Data TLB)
        itb = Param.SparcITB(SparcITB(), Instruction TLB)

 No, (at least this is my recollection, confirm please Steve). When you
 instantiate an object, it essentially does a deep copy of the tree
 that's there.

Yea, that's right.

 If you want them to share the same object, you need to
 instantiate two separate objects and explicitly make them point to the
 same thing.

Yes, if you want multiple CPUs to share a TLB you would need to
instantiate all the CPUs first and then assign the same TLB to them
afterward.  Something like this:

   dtb = Param.SparcDTB(SparcTLB(), Data TLB)
   itb = Param.SparcITB(Self.dtb, Instruction TLB)

should work fine for causing each CPU instance to have a single unified TLB.

Steve
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] sparc_fs follow-up

2009-03-06 Thread Polina Dudnik
On Thu, Mar 5, 2009 at 5:10 PM, Gabriel Michael Black gbl...@eecs.umich.edu
 wrote:

 The change is simple enough that I'll just describe it. This deals
 solely with the simple CPU, so if your trying to use O3, for example,
 it won't help you directly. The code here:
 http://repo.m5sim.org/m5/file/886da6fa6d4a/src/cpu/simple/base.cc#l307
 should return if the thread is suspended -or- unallocated. After you
 change that, I think you'll also run into an assert in the CPU. I just
 got rid of the assert and haven't had any problems, but that might not
 be the right thing to do.

 Gabe


I looked at l307 and I don't think it should return if the thread is
suspended. It should get activated if the thread is suspended, isn't that
right or am I missing something?

Polina




 Quoting Polina Dudnik pdud...@gmail.com:

  Oh, I see. Do you think you can distribute the partial patch you have?
 
  Thank you.
 
  Polina
 
  On Thu, Mar 5, 2009 at 4:48 PM, Gabriel Michael Black 
 gbl...@eecs.umich.edu
  wrote:
 
  Quoting Polina Dudnik pdud...@gmail.com:
 
   On Thu, Mar 5, 2009 at 3:38 PM, Gabriel Michael Black 
  gbl...@eecs.umich.edu
   wrote:
  
   There's actually a bug in the CPU wakeup code which prevents any CPU
   that isn't activated and then suspended, like SPARCs APs which are
   suspended directly, from waking up on interrupts, etc. I have a
   partial fix which I've been using to work around the problem, but we
   need to come up with a full solution. I don't know if this is what
 the
   problem is, but it sounds like it could be.
  
   Gabe
  
  
   Are you talking about the seg fault in m5-stable that I get? Or the
 CPU
  ids?
  
   Polina
  
  
 
  I was talking about the hang Ali described. If the BP is waiting for
  an AP to tell it it's alive and the AP never wakes up, the system will
  likely hang. I ran into that problem in X86_FS.
 
  Gabe
 
  ___
  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


[m5-dev] Undelivered Mail Returned to Sender

2009-03-06 Thread Mail Delivery System
This is the mail system at host daystrom.m5sim.org.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

   The mail system

rewa...@ya.ru: host mx1.yandex.ru[77.88.21.89] said: 550 5.1.1
rewa...@ya.ru user unknown (in reply to RCPT TO command)
Reporting-MTA: dns; daystrom.m5sim.org
X-Postfix-Queue-ID: 1B35E15843B
X-Postfix-Sender: rfc822; m5-dev@m5sim.org
Arrival-Date: Fri,  6 Mar 2009 11:52:12 -0500 (EST)

Final-Recipient: rfc822; Rewalk4@ya.ru
Action: failed
Status: 5.1.1
Remote-MTA: dns; mx1.yandex.ru
Diagnostic-Code: smtp; 550 5.1.1 Rewalk4@ya.ru user unknown
---BeginMessage---
 

This address has been used to register a Flyspray account.  If you
were not expecting this message, please ignore and delete it.  Go to
the following URL to complete your registration:

http://www.m5sim.org/flyspray/index.php?do=registermagic=fdb41ab08c419392e99b7018f2680dd3


Your confirmation code is:

7afbMzzoyqZB.

---End Message---
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] MIPS UTB and multiple inheritance.

2009-03-06 Thread Gabe Black
nathan binkert wrote:
 I'll keep both pointers then. I have all the non-ISA bits and X86
 converted and I'm trying to test it, but I'm running into a compile
 error in the stats stuff. Nate?

 cc1plus: warnings being treated as errors
 build/X86_SE/base/statistics.hh: In member function
 'Stats::VectorDistribution
 Stats::VectorDistribution::init(Stats::size_type, Stats::Counter,
 Stats::Counter, Stats::Counter)':
 build/X86_SE/base/statistics.hh:2498: warning: converting to
 'Stats::size_type' from 'double'
 

 You have a VectorDistribution stat somewhere, and you're calling its
 init() function with the first parameter as a float instead of an
 integer.  Nothing magic here, just apply normal debugging techniques.

   Nate
 ___
 m5-dev mailing list
 m5-dev@m5sim.org
 http://m5sim.org/mailman/listinfo/m5-dev
   
I didn't add or substantially change any stats, though. I just renamed a
few. I'll look into this more this evening.

Gabe
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] MIPS UTB and multiple inheritance.

2009-03-06 Thread Steve Reinhardt
That's odd... if it doesn't work that way, I'd consider that a bug.

On Fri, Mar 6, 2009 at 10:18 AM, Gabe Black gbl...@eecs.umich.edu wrote:
 I tried something like this before, and I don't think it works because
 self.dtb is a paramdesc, not a SparcTLB. What Nate told me to do was to
 instantiate those objects as regular members first I believe. This was
 the SouthBridge stuff.

 Gabe
 Yes, if you want multiple CPUs to share a TLB you would need to
 instantiate all the CPUs first and then assign the same TLB to them
 afterward.  Something like this:

        dtb = Param.SparcDTB(SparcTLB(), Data TLB)
        itb = Param.SparcITB(Self.dtb, Instruction TLB)

 should work fine for causing each CPU instance to have a single unified TLB.

 Steve
 ___
 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


Re: [m5-dev] MIPS UTB and multiple inheritance.

2009-03-06 Thread Steve Reinhardt
On Fri, Mar 6, 2009 at 10:19 AM, Gabe Black gbl...@eecs.umich.edu wrote:
 nathan binkert wrote:

 You have a VectorDistribution stat somewhere, and you're calling its
 init() function with the first parameter as a float instead of an
 integer.  Nothing magic here, just apply normal debugging techniques.

 I didn't add or substantially change any stats, though. I just renamed a
 few. I'll look into this more this evening.

It's probably something that was not quite right before but the code
let you get away with it, and now with Nate's changes it's a little
more strict.  Just guessing.

Steve
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] MIPS UTB and multiple inheritance.

2009-03-06 Thread Steve Reinhardt
I took a look at SouthBridge.py to see what you might have been
trying... were you trying to access an attribute of the param, like:

pic1 = Param.I8259(_pic1, Master PIC)
[...] Self.pic1.output [...]

I can see where that wouldn't work, as Self.pic1 is a proxy object
that merely says look up pic1 later after everything's instantiated.
 Basically you can't do anything with it other than use it as a
default for another param or (if it's numeric) you can do simple math
with it (like '2 * Self.clock.latency').

Steve

On Fri, Mar 6, 2009 at 10:27 AM, Steve Reinhardt ste...@gmail.com wrote:
 That's odd... if it doesn't work that way, I'd consider that a bug.

 On Fri, Mar 6, 2009 at 10:18 AM, Gabe Black gbl...@eecs.umich.edu wrote:
 I tried something like this before, and I don't think it works because
 self.dtb is a paramdesc, not a SparcTLB. What Nate told me to do was to
 instantiate those objects as regular members first I believe. This was
 the SouthBridge stuff.

 Gabe
 Yes, if you want multiple CPUs to share a TLB you would need to
 instantiate all the CPUs first and then assign the same TLB to them
 afterward.  Something like this:

        dtb = Param.SparcDTB(SparcTLB(), Data TLB)
        itb = Param.SparcITB(Self.dtb, Instruction TLB)

 should work fine for causing each CPU instance to have a single unified TLB.

 Steve
 ___
 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


Re: [m5-dev] MIPS UTB and multiple inheritance.

2009-03-06 Thread Gabe Black
I'm heading out the door, but I just tried building X86_SE on the head
and it gave me the errors. I didn't think my changes caused them. I have
similar problems with ALPHA_SE, and I haven't tried any other targets.

gbl...@tater ~/m5/repos/m5.x86fs $ gcc -v
Using built-in specs.
Target: x86_64-pc-linux-gnu
Configured with:
/var/tmp/portage/sys-devel/gcc-4.1.2/work/gcc-4.1.2/configure
--prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/4.1.2
--includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include
--datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.1.2
--mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.1.2/man
--infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.1.2/info
--with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/g++-v4
--host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-altivec
--enable-nls --without-included-gettext --with-system-zlib
--disable-checking --disable-werror --enable-secureplt --enable-multilib
--enable-libmudflap --disable-libssp --enable-java-awt=gtk
--enable-languages=c,c++,java,treelang,fortran --enable-shared
--enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu
Thread model: posix
gcc version 4.1.2 (Gentoo 4.1.2 p1.1)

gbl...@tater ~/m5/repos/m5.x86fs $ python -V
Python 2.5.2

gbl...@tater ~/m5/repos/m5.x86fs $ swig -version

SWIG Version 1.3.36

Compiled with x86_64-pc-linux-gnu-g++ [x86_64-pc-linux-gnu]
Please see http://www.swig.org for reporting bugs and further information

gbl...@tater ~/m5/repos/m5.x86fs $ scons -v
SCons by Steven Knight et al.:
script: v1.0.0.r3266, 2008/08/12 07:31:01, by knight on bangkok
engine: v1.0.0.r3266, 2008/08/12 07:31:01, by knight on bangkok
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 The SCons
Foundation


cc1plus: warnings being treated as errors
build/X86_SE/base/statistics.hh: In member function
'Stats::VectorDistribution
Stats::VectorDistribution::init(Stats::size_type, Stats::Counter,
Stats::Counter, Stats::Counter)':
build/X86_SE/base/statistics.hh:2498: warning: converting to
'Stats::size_type' from 'double'
cc1plus: warnings being treated as errors
build/X86_SE/base/statistics.hh: In member function
'Stats::VectorDistribution
Stats::VectorDistribution::init(Stats::size_type, Stats::Counter,
Stats::Counter, Stats::Counter)':
build/X86_SE/base/statistics.hh:2498: warning: converting to
'Stats::size_type' from 'double'
cc1plus: warnings being treated as errors
build/X86_SE/base/statistics.hh: In member function
'Stats::VectorDistribution
Stats::VectorDistribution::init(Stats::size_type, Stats::Counter,
Stats::Counter, Stats::Counter)':
build/X86_SE/base/statistics.hh:2498: warning: converting to
'Stats::size_type' from 'double'
cc1plus: warnings being treated as errors
build/X86_SE/base/statistics.hh: In member function
'Stats::VectorDistribution
Stats::VectorDistribution::init(Stats::size_type, Stats::Counter,
Stats::Counter, Stats::Counter)':
build/X86_SE/base/statistics.hh:2498: warning: converting to
'Stats::size_type' from 'double'
scons: *** [build/X86_SE/cpu/pc_event.o] Error 1
cc1plus: warnings being treated as errors
build/X86_SE/base/statistics.hh: In member function
'Stats::VectorDistribution
Stats::VectorDistribution::init(Stats::size_type, Stats::Counter,
Stats::Counter, Stats::Counter)':
build/X86_SE/base/statistics.hh:2498: warning: converting to
'Stats::size_type' from 'double'
scons: *** [build/X86_SE/cpu/thread_context.o] Error 1
cc1plus: warnings being treated as errors
build/X86_SE/base/statistics.hh: In member function
'Stats::VectorDistribution
Stats::VectorDistribution::init(Stats::size_type, Stats::Counter,
Stats::Counter, Stats::Counter)':
build/X86_SE/base/statistics.hh:2498: warning: converting to
'Stats::size_type' from 'double'
cc1plus: warnings being treated as errors
build/X86_SE/base/statistics.hh: In member function
'Stats::VectorDistribution
Stats::VectorDistribution::init(Stats::size_type, Stats::Counter,
Stats::Counter, Stats::Counter)':
build/X86_SE/base/statistics.hh:2498: warning: converting to
'Stats::size_type' from 'double'
cc1plus: warnings being treated as errors
build/X86_SE/base/statistics.hh: In member function
'Stats::VectorDistribution
Stats::VectorDistribution::init(Stats::size_type, Stats::Counter,
Stats::Counter, Stats::Counter)':
build/X86_SE/base/statistics.hh:2498: warning: converting to
'Stats::size_type' from 'double'


Steve Reinhardt wrote:
 On Fri, Mar 6, 2009 at 10:19 AM, Gabe Black gbl...@eecs.umich.edu wrote:
   
 nathan binkert wrote:
 
 You have a VectorDistribution stat somewhere, and you're calling its
 init() function with the first parameter as a float instead of an
 integer.  Nothing magic here, just apply normal debugging techniques.

   
 I didn't add or substantially change any stats, though. I just renamed a
 few. I'll look into this more this evening.
 

 It's probably something that was not quite right before but the code
 let you get away with it, and now with Nate's 

Re: [m5-dev] MIPS UTB and multiple inheritance.

2009-03-06 Thread nathan binkert
 That's odd... if it doesn't work that way, I'd consider that a bug.

 On Fri, Mar 6, 2009 at 10:18 AM, Gabe Black gbl...@eecs.umich.edu wrote:
 I tried something like this before, and I don't think it works because
 self.dtb is a paramdesc, not a SparcTLB. What Nate told me to do was to
 instantiate those objects as regular members first I believe. This was
 the SouthBridge stuff.

I can't remember your specific situation, but I believe that it was
special.  If you can remind us (or just dig up the title on the e-mail
thread), we can see if we can fix it.

  Nate
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] MIPS UTB and multiple inheritance.

2009-03-06 Thread nathan binkert
I'll try to figure this out, but I don't get it yet.  I'll get an
older compiler going...

  Nate

On Fri, Mar 6, 2009 at 10:48 AM, Gabe Black gbl...@eecs.umich.edu wrote:
 I'm heading out the door, but I just tried building X86_SE on the head
 and it gave me the errors. I didn't think my changes caused them. I have
 similar problems with ALPHA_SE, and I haven't tried any other targets.

 gbl...@tater ~/m5/repos/m5.x86fs $ gcc -v
 Using built-in specs.
 Target: x86_64-pc-linux-gnu
 Configured with:
 /var/tmp/portage/sys-devel/gcc-4.1.2/work/gcc-4.1.2/configure
 --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/4.1.2
 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include
 --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.1.2
 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.1.2/man
 --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.1.2/info
 --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/g++-v4
 --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-altivec
 --enable-nls --without-included-gettext --with-system-zlib
 --disable-checking --disable-werror --enable-secureplt --enable-multilib
 --enable-libmudflap --disable-libssp --enable-java-awt=gtk
 --enable-languages=c,c++,java,treelang,fortran --enable-shared
 --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu
 Thread model: posix
 gcc version 4.1.2 (Gentoo 4.1.2 p1.1)

 gbl...@tater ~/m5/repos/m5.x86fs $ python -V
 Python 2.5.2

 gbl...@tater ~/m5/repos/m5.x86fs $ swig -version

 SWIG Version 1.3.36

 Compiled with x86_64-pc-linux-gnu-g++ [x86_64-pc-linux-gnu]
 Please see http://www.swig.org for reporting bugs and further information

 gbl...@tater ~/m5/repos/m5.x86fs $ scons -v
 SCons by Steven Knight et al.:
        script: v1.0.0.r3266, 2008/08/12 07:31:01, by knight on bangkok
        engine: v1.0.0.r3266, 2008/08/12 07:31:01, by knight on bangkok
 Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 The SCons
 Foundation


 cc1plus: warnings being treated as errors
 build/X86_SE/base/statistics.hh: In member function
 'Stats::VectorDistribution
 Stats::VectorDistribution::init(Stats::size_type, Stats::Counter,
 Stats::Counter, Stats::Counter)':
 build/X86_SE/base/statistics.hh:2498: warning: converting to
 'Stats::size_type' from 'double'
 cc1plus: warnings being treated as errors
 build/X86_SE/base/statistics.hh: In member function
 'Stats::VectorDistribution
 Stats::VectorDistribution::init(Stats::size_type, Stats::Counter,
 Stats::Counter, Stats::Counter)':
 build/X86_SE/base/statistics.hh:2498: warning: converting to
 'Stats::size_type' from 'double'
 cc1plus: warnings being treated as errors
 build/X86_SE/base/statistics.hh: In member function
 'Stats::VectorDistribution
 Stats::VectorDistribution::init(Stats::size_type, Stats::Counter,
 Stats::Counter, Stats::Counter)':
 build/X86_SE/base/statistics.hh:2498: warning: converting to
 'Stats::size_type' from 'double'
 cc1plus: warnings being treated as errors
 build/X86_SE/base/statistics.hh: In member function
 'Stats::VectorDistribution
 Stats::VectorDistribution::init(Stats::size_type, Stats::Counter,
 Stats::Counter, Stats::Counter)':
 build/X86_SE/base/statistics.hh:2498: warning: converting to
 'Stats::size_type' from 'double'
 scons: *** [build/X86_SE/cpu/pc_event.o] Error 1
 cc1plus: warnings being treated as errors
 build/X86_SE/base/statistics.hh: In member function
 'Stats::VectorDistribution
 Stats::VectorDistribution::init(Stats::size_type, Stats::Counter,
 Stats::Counter, Stats::Counter)':
 build/X86_SE/base/statistics.hh:2498: warning: converting to
 'Stats::size_type' from 'double'
 scons: *** [build/X86_SE/cpu/thread_context.o] Error 1
 cc1plus: warnings being treated as errors
 build/X86_SE/base/statistics.hh: In member function
 'Stats::VectorDistribution
 Stats::VectorDistribution::init(Stats::size_type, Stats::Counter,
 Stats::Counter, Stats::Counter)':
 build/X86_SE/base/statistics.hh:2498: warning: converting to
 'Stats::size_type' from 'double'
 cc1plus: warnings being treated as errors
 build/X86_SE/base/statistics.hh: In member function
 'Stats::VectorDistribution
 Stats::VectorDistribution::init(Stats::size_type, Stats::Counter,
 Stats::Counter, Stats::Counter)':
 build/X86_SE/base/statistics.hh:2498: warning: converting to
 'Stats::size_type' from 'double'
 cc1plus: warnings being treated as errors
 build/X86_SE/base/statistics.hh: In member function
 'Stats::VectorDistribution
 Stats::VectorDistribution::init(Stats::size_type, Stats::Counter,
 Stats::Counter, Stats::Counter)':
 build/X86_SE/base/statistics.hh:2498: warning: converting to
 'Stats::size_type' from 'double'


 Steve Reinhardt wrote:
 On Fri, Mar 6, 2009 at 10:19 AM, Gabe Black gbl...@eecs.umich.edu wrote:

 nathan binkert wrote:

 You have a VectorDistribution stat somewhere, and you're calling its
 init() function with the first parameter as a float instead of an
 integer.  Nothing magic here, just apply normal debugging 

Re: [m5-dev] scons weirdness

2009-03-06 Thread Steve Reinhardt
I'm running into this with gem5 now (the problem with canceled or
aborted runs) and I think I've tracked down a possible explanation...
basically running the test and comparing the outputs are set up as two
separate tasks in scons, and the only thing the output comparison task
is dependent on is the m5 stats output.  So if you don't clear out the
old stats file before the run starts, and you abort m5 before it
starts writing a new one, the compare outputs task doesn't think it
needs to rerun.

I'm wondering if there was some change Nate made to stats that caused
it to stop clobbering the stats output file when the program aborts.

Anyway, the right answer should be to force the task comparison to
rerun when any of the m5 outputs changes.  I'll give that a try soon
and push it if it works.

Anecdotally I've had problems with things getting rebuilt
unnecessarily too, though usually it doesn't cause the regressions to
rerun.  It seems to be something to do with python and/or swig.

Steve

On Tue, Feb 24, 2009 at 1:39 AM, Gabe Black gbl...@eecs.umich.edu wrote:
    I mentioned this earlier, but scons and regressions are misbehaving,
 and it's making updating the regressions very annoying. If a run is
 canceled halfway, scons now assumes it actually finished and was just
 wrong. I have to go and manually delete the old, incomplete run before
 it's willing to try again. Also, it seems really anxious to rebuild and
 rerun tests when it -doesn't- need to. This makes it really annoying to,
 for instance, see which tests fail, look at the differences, update the
 results, and verify that they took. If I don't make any mistakes like
 loosing track of which tests failed, that takes three runs through all
 of the regressions I'm interested in which takes three times as long as
 it needs to. Unfortunately I haven't yet managed this minimum, so I've
 resorted to just updating the stats the first time around and looking at
 the patch post mortem which is not ideal. If somebody could look at this
 I'd really appreciate it. If it seems like a local problem, like from
 when I recently upgraded scons for example, that would be useful
 information.

 Gabe
 ___
 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


Re: [m5-dev] MIPS UTB and multiple inheritance.

2009-03-06 Thread Korey Sewell
Nate,
I didn't directly implement that UTB part myself but I believe the mips utlb
has some different features than a normal tlb which allows them to share one
structure. I think that's part of their claim to fame so to speak...

Unfortunately, I can't think of the exact mechanism right now, but I'll peek
at the code again to be sure...

On Fri, Mar 6, 2009 at 10:49 AM, nathan binkert n...@binkert.org wrote:

  Actually I take that back. That's how it would work if we used
  inheritance. The BaseTLB doesn't actually know to translate anything, so
  the UTB would provide it's own implementation directly. You'd still
  assign it to both ITB and DTB parameters.

 I still don't understand why there isn't truly just one TLB class.
 What would the UTB class be for?

  Nate
 ___
 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


Re: [m5-dev] sparc_fs follow-up

2009-03-06 Thread Polina Dudnik
Hi Ali!

So, I did run the seg-faulting boot in gdb and realized that in
./build/SPARC_FS/arch/sparc/tlb.cc line 1264 was seg-faulting because it was
reading bits(data,12,8) and not checking to see that they are within the
range of the total thread contexts available and then it was trying to
access the thread context like so threadContexts[bits(data,12,8)]. So, I put
in two lines which checked that the bits read are within the range of
available context and if not I just put in break;. Here's the output I am
getting right now (below). I have also put in the change described by Gabe
into the m5-dev and right now it is seg-faulting for me, so I will run that
in gdb too and try to figure it out.

Polina

 m5 slave terminal: Terminal 0 
cpu cpu

Sun Fire T2000, No Keyboard
Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
OpenBoot 4.23.0, 256 MB memory available, Serial #1122867.
[saidi obp #30]
Ethernet address 0:80:3:de:ad:3, Host ID: 80112233.



Boot device: /virtual-devices/d...@0  File and args: -vV
Loading ufs-file-system package 1.4 04 Aug 1995 13:02:54.
FCode UFS Reader 1.12 00/07/17 15:48:16.
Loading: /platform/SUNW,Sun-Fire-T2000/ufsboot
Loading: /platform/sun4v/ufsboot
device path '/virtual-devi...@100/d...@0:a'
The boot filesystem is logging.
The ufs log is empty and will not be used.
standalone = `kernel/sparcv9/unix', args = `-v'
Elf64 client
Size: 0x76e40+0x1c872+0x3123a Bytes
modpath: /platform/sun4v/kernel /kernel /usr/kernel
module /platform/sun4v/kernel/sparcv9/unix: text at [0x100, 0x1076e3f]
data at 0x180
module misc/sparcv9/krtld: text at [0x1076e40, 0x108f737] data at 0x184dab0
module /platform/sun4v/kernel/sparcv9/genunix: text at [0x108f738,
0x11dd437] data at 0x18531c0
module /platform/sun4v/kernel/misc/sparcv9/platmod: text at [0x11dd438,
0x11dd43f] data at 0x18a4be0
module /platform/sun4v/kernel/cpu/sparcv9/SUNW,UltraSPARC-T1: text at
[0x11dd440, 0x11e06ff] data at 0x18a5300
SunOS Release 5.10 Version Generic_118822-23 64-bit
Copyright 1983-2005 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Ethernet address = 0:80:3:de:ad:3
mem = 262144K (0x1000)
avail mem = 237879296
root nexus = Sun Fire T2000
pseudo0 at root
pseudo0 is /pseudo
scsi_vhci0 at root
scsi_vhci0 is /scsi_vhci
virtual-device: hsimd0
hsimd0 is /virtual-devi...@100/d...@0
root on /virtual-devi...@100/d...@0:a fstype ufs
pseudo-device: dld0
dld0 is /pseudo/d...@0
cpu0: UltraSPARC-T1 (cpuid 0 clock 5 MHz)
cpu1: UltraSPARC-T1 (cpuid 1 clock 5 MHz)

panic[cpu0]/thread=180e000: cpu1 failed to start (2)

0180b8b0 unix:start_cpu+124 (1, 10166a0, 0, 181cc00, 2, 0)
  %l0-3:   0181cc00 01072000
  %l4-7: 030001385a20 03000134a0f8 0004 0181a800
0180b960 unix:start_other_cpus+194 (1813000, 2, 1, 0, 1836f28,
1839400)
  %l0-3: 0183c5f0 0001  0002
  %l4-7: 0001 018b1400 01072000 01016400
0180ba10 genunix:main+1d4 (18a9938, 18a5800, 1836340, 1861c00, 0,
18abc00)
  %l0-3: 70002000 0001 018abc00 0002
  %l4-7: 018aca28 018ac800 018a9948 018a9800

syncing file systems... done
skipping system dump - no dump device configured
rebooting...
panic - kernel: prom_reboot: reboot call returned!
Program terminated
{0} ok boot disk
ERROR: Last Trap: Fast Data Access MMU Miss














On Thu, Mar 5, 2009 at 2:26 PM, Ali Saidi sa...@umich.edu wrote:

 My output looks like this:
 M5 compiled Mar  5 2009 13:51:37
 M5 revision 632115b48346 5955 default qtip tip start_sparc_2cpu.diff
 qbase
 M5 started Mar  5 2009 14:03:22
 M5 executing on zeep
 command line: ./build/SPARC_FS/m5.opt configs/example/fs.py -n 2
 Global frequency set at 1 ticks per second
 info: No kernel set for full system simulation. Assuming you know what
 you're doing...
 Listening for t1000 connection on port 3456
   0: system.t1000.htod: Real-time clock set to Thu Jan  1
 00:00:00 2009

   0: system.t1000.htod: Real-time clock set to 1230768000
 Listening for t1000 connection on port 3457
 0: system.remote_gdb.listener: listening for remote gdb #0 on port 7001
 0: system.remote_gdb.listener: listening for remote gdb #1 on port 7000
  REAL SIMULATION 
 info: Entering event queue @ 0.  Starting simulation...
 hack: Processor 2 is virtual processor 4. Swizzle the numbers(this
 will only work for = 2 processors)
 hack: Processor 2 is virtual processor 4. Swizzle the numbers(this
 will only work for = 2 processors)
 info: Ignoring write to SPARC ERROR regsiter
 info: Ignoring write to SPARC ERROR regsiter
 warn: Don't know what interrupt to clear for console.
 For more information see: http://www.m5sim.org/warn/7fe1004f
 info: Ignoring write to SPARC ERROR regsiter
 info: Ignoring write to SPARC ERROR regsiter


 and the console output looks 

Re: [m5-dev] sparc_fs follow-up

2009-03-06 Thread Ali Saidi
You probably need to swizzle those bits as well.. turn id 3 into id 1.  
Perhaps then it will work.

Ali

On Mar 6, 2009, at 4:44 PM, Polina Dudnik wrote:

 Hi Ali!

 So, I did run the seg-faulting boot in gdb and realized that in ./ 
 build/SPARC_FS/arch/sparc/tlb.cc line 1264 was seg-faulting because  
 it was reading bits(data,12,8) and not checking to see that they are  
 within the range of the total thread contexts available and then it  
 was trying to access the thread context like so  
 threadContexts[bits(data,12,8)]. So, I put in two lines which  
 checked that the bits read are within the range of available context  
 and if not I just put in break;. Here's the output I am getting  
 right now (below). I have also put in the change described by Gabe  
 into the m5-dev and right now it is seg-faulting for me, so I will  
 run that in gdb too and try to figure it out.

 Polina

  m5 slave terminal: Terminal 0 
 cpu cpu

 Sun Fire T2000, No Keyboard
 Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
 OpenBoot 4.23.0, 256 MB memory available, Serial #1122867.
 [saidi obp #30]
 Ethernet address 0:80:3:de:ad:3, Host ID: 80112233.



 Boot device: /virtual-devices/d...@0  File and args: -vV
 Loading ufs-file-system package 1.4 04 Aug 1995 13:02:54.
 FCode UFS Reader 1.12 00/07/17 15:48:16.
 Loading: /platform/SUNW,Sun-Fire-T2000/ufsboot
 Loading: /platform/sun4v/ufsboot
 device path '/virtual-devi...@100/d...@0:a'
 The boot filesystem is logging.
 The ufs log is empty and will not be used.
 standalone = `kernel/sparcv9/unix', args = `-v'
 Elf64 client
 Size: 0x76e40+0x1c872+0x3123a Bytes
 modpath: /platform/sun4v/kernel /kernel /usr/kernel
 module /platform/sun4v/kernel/sparcv9/unix: text at [0x100,  
 0x1076e3f] data at 0x180
 module misc/sparcv9/krtld: text at [0x1076e40, 0x108f737] data at  
 0x184dab0
 module /platform/sun4v/kernel/sparcv9/genunix: text at [0x108f738,  
 0x11dd437] data at 0x18531c0
 module /platform/sun4v/kernel/misc/sparcv9/platmod: text at  
 [0x11dd438, 0x11dd43f] data at 0x18a4be0
 module /platform/sun4v/kernel/cpu/sparcv9/SUNW,UltraSPARC-T1: text  
 at [0x11dd440, 0x11e06ff] data at 0x18a5300
 SunOS Release 5.10 Version Generic_118822-23 64-bit
 Copyright 1983-2005 Sun Microsystems, Inc.  All rights reserved.
 Use is subject to license terms.
 Ethernet address = 0:80:3:de:ad:3
 mem = 262144K (0x1000)
 avail mem = 237879296
 root nexus = Sun Fire T2000
 pseudo0 at root
 pseudo0 is /pseudo
 scsi_vhci0 at root
 scsi_vhci0 is /scsi_vhci
 virtual-device: hsimd0
 hsimd0 is /virtual-devi...@100/d...@0
 root on /virtual-devi...@100/d...@0:a fstype ufs
 pseudo-device: dld0
 dld0 is /pseudo/d...@0
 cpu0: UltraSPARC-T1 (cpuid 0 clock 5 MHz)
 cpu1: UltraSPARC-T1 (cpuid 1 clock 5 MHz)

 panic[cpu0]/thread=180e000: cpu1 failed to start (2)

 0180b8b0 unix:start_cpu+124 (1, 10166a0, 0, 181cc00, 2, 0)
   %l0-3:   0181cc00  
 01072000
   %l4-7: 030001385a20 03000134a0f8 0004  
 0181a800
 0180b960 unix:start_other_cpus+194 (1813000, 2, 1, 0,  
 1836f28, 1839400)
   %l0-3: 0183c5f0 0001   
 0002
   %l4-7: 0001 018b1400 01072000  
 01016400
 0180ba10 genunix:main+1d4 (18a9938, 18a5800, 1836340,  
 1861c00, 0, 18abc00)
   %l0-3: 70002000 0001 018abc00  
 0002
   %l4-7: 018aca28 018ac800 018a9948  
 018a9800

 syncing file systems... done
 skipping system dump - no dump device configured
 rebooting...
 panic - kernel: prom_reboot: reboot call returned!
 Program terminated
 {0} ok boot disk
 ERROR: Last Trap: Fast Data Access MMU Miss














 On Thu, Mar 5, 2009 at 2:26 PM, Ali Saidi sa...@umich.edu wrote:
 My output looks like this:
 M5 compiled Mar  5 2009 13:51:37
 M5 revision 632115b48346 5955 default qtip tip start_sparc_2cpu.diff
 qbase
 M5 started Mar  5 2009 14:03:22
 M5 executing on zeep
 command line: ./build/SPARC_FS/m5.opt configs/example/fs.py -n 2
 Global frequency set at 1 ticks per second
 info: No kernel set for full system simulation. Assuming you know what
 you're doing...
 Listening for t1000 connection on port 3456
   0: system.t1000.htod: Real-time clock set to Thu Jan  1
 00:00:00 2009

   0: system.t1000.htod: Real-time clock set to 1230768000
 Listening for t1000 connection on port 3457
 0: system.remote_gdb.listener: listening for remote gdb #0 on port  
 7001
 0: system.remote_gdb.listener: listening for remote gdb #1 on port  
 7000
  REAL SIMULATION 
 info: Entering event queue @ 0.  Starting simulation...
 hack: Processor 2 is virtual processor 4. Swizzle the numbers(this
 will only work for = 2 processors)
 hack: Processor 2 is virtual processor 4. Swizzle the numbers(this
 will only work for = 2 processors)
 info: Ignoring write to SPARC ERROR 

Re: [m5-dev] sparc_fs follow-up

2009-03-06 Thread Polina Dudnik
Can you tell me where you see id 3?

Polina

On Fri, Mar 6, 2009 at 3:49 PM, Ali Saidi sa...@umich.edu wrote:

 You probably need to swizzle those bits as well.. turn id 3 into id 1.
 Perhaps then it will work.

 Ali

 On Mar 6, 2009, at 4:44 PM, Polina Dudnik wrote:

  Hi Ali!
 
  So, I did run the seg-faulting boot in gdb and realized that in ./
  build/SPARC_FS/arch/sparc/tlb.cc line 1264 was seg-faulting because
  it was reading bits(data,12,8) and not checking to see that they are
  within the range of the total thread contexts available and then it
  was trying to access the thread context like so
  threadContexts[bits(data,12,8)]. So, I put in two lines which
  checked that the bits read are within the range of available context
  and if not I just put in break;. Here's the output I am getting
  right now (below). I have also put in the change described by Gabe
  into the m5-dev and right now it is seg-faulting for me, so I will
  run that in gdb too and try to figure it out.
 
  Polina
 
   m5 slave terminal: Terminal 0 
   cpu cpu
 
  Sun Fire T2000, No Keyboard
  Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
  OpenBoot 4.23.0, 256 MB memory available, Serial #1122867.
  [saidi obp #30]
  Ethernet address 0:80:3:de:ad:3, Host ID: 80112233.
 
 
 
  Boot device: /virtual-devices/d...@0  File and args: -vV
  Loading ufs-file-system package 1.4 04 Aug 1995 13:02:54.
  FCode UFS Reader 1.12 00/07/17 15:48:16.
  Loading: /platform/SUNW,Sun-Fire-T2000/ufsboot
  Loading: /platform/sun4v/ufsboot
  device path '/virtual-devi...@100/d...@0:a'
  The boot filesystem is logging.
  The ufs log is empty and will not be used.
  standalone = `kernel/sparcv9/unix', args = `-v'
  Elf64 client
  Size: 0x76e40+0x1c872+0x3123a Bytes
  modpath: /platform/sun4v/kernel /kernel /usr/kernel
  module /platform/sun4v/kernel/sparcv9/unix: text at [0x100,
  0x1076e3f] data at 0x180
  module misc/sparcv9/krtld: text at [0x1076e40, 0x108f737] data at
  0x184dab0
  module /platform/sun4v/kernel/sparcv9/genunix: text at [0x108f738,
  0x11dd437] data at 0x18531c0
  module /platform/sun4v/kernel/misc/sparcv9/platmod: text at
  [0x11dd438, 0x11dd43f] data at 0x18a4be0
  module /platform/sun4v/kernel/cpu/sparcv9/SUNW,UltraSPARC-T1: text
  at [0x11dd440, 0x11e06ff] data at 0x18a5300
  SunOS Release 5.10 Version Generic_118822-23 64-bit
  Copyright 1983-2005 Sun Microsystems, Inc.  All rights reserved.
  Use is subject to license terms.
  Ethernet address = 0:80:3:de:ad:3
  mem = 262144K (0x1000)
  avail mem = 237879296
  root nexus = Sun Fire T2000
  pseudo0 at root
  pseudo0 is /pseudo
  scsi_vhci0 at root
  scsi_vhci0 is /scsi_vhci
  virtual-device: hsimd0
  hsimd0 is /virtual-devi...@100/d...@0
  root on /virtual-devi...@100/d...@0:a fstype ufs
  pseudo-device: dld0
  dld0 is /pseudo/d...@0
  cpu0: UltraSPARC-T1 (cpuid 0 clock 5 MHz)
  cpu1: UltraSPARC-T1 (cpuid 1 clock 5 MHz)
 
  panic[cpu0]/thread=180e000: cpu1 failed to start (2)
 
  0180b8b0 unix:start_cpu+124 (1, 10166a0, 0, 181cc00, 2, 0)
%l0-3:   0181cc00
  01072000
%l4-7: 030001385a20 03000134a0f8 0004
  0181a800
  0180b960 unix:start_other_cpus+194 (1813000, 2, 1, 0,
  1836f28, 1839400)
%l0-3: 0183c5f0 0001 
  0002
%l4-7: 0001 018b1400 01072000
  01016400
  0180ba10 genunix:main+1d4 (18a9938, 18a5800, 1836340,
  1861c00, 0, 18abc00)
%l0-3: 70002000 0001 018abc00
  0002
%l4-7: 018aca28 018ac800 018a9948
  018a9800
 
  syncing file systems... done
  skipping system dump - no dump device configured
  rebooting...
  panic - kernel: prom_reboot: reboot call returned!
  Program terminated
  {0} ok boot disk
  ERROR: Last Trap: Fast Data Access MMU Miss
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  On Thu, Mar 5, 2009 at 2:26 PM, Ali Saidi sa...@umich.edu wrote:
  My output looks like this:
  M5 compiled Mar  5 2009 13:51:37
  M5 revision 632115b48346 5955 default qtip tip start_sparc_2cpu.diff
  qbase
  M5 started Mar  5 2009 14:03:22
  M5 executing on zeep
  command line: ./build/SPARC_FS/m5.opt configs/example/fs.py -n 2
  Global frequency set at 1 ticks per second
  info: No kernel set for full system simulation. Assuming you know what
  you're doing...
  Listening for t1000 connection on port 3456
0: system.t1000.htod: Real-time clock set to Thu Jan  1
  00:00:00 2009
 
0: system.t1000.htod: Real-time clock set to 1230768000
  Listening for t1000 connection on port 3457
  0: system.remote_gdb.listener: listening for remote gdb #0 on port
  7001
  0: system.remote_gdb.listener: listening for remote gdb #1 on port
  7000
   REAL SIMULATION 
  info: Entering event queue @ 0.  Starting simulation...
  hack: Processor 2 is virtual processor 4. Swizzle 

Re: [m5-dev] sparc_fs follow-up

2009-03-06 Thread Polina Dudnik
Oh, never mind, I understand what you are saying. I will do that.

On Fri, Mar 6, 2009 at 3:49 PM, Ali Saidi sa...@umich.edu wrote:

 You probably need to swizzle those bits as well.. turn id 3 into id 1.
 Perhaps then it will work.

 Ali

 On Mar 6, 2009, at 4:44 PM, Polina Dudnik wrote:

  Hi Ali!
 
  So, I did run the seg-faulting boot in gdb and realized that in ./
  build/SPARC_FS/arch/sparc/tlb.cc line 1264 was seg-faulting because
  it was reading bits(data,12,8) and not checking to see that they are
  within the range of the total thread contexts available and then it
  was trying to access the thread context like so
  threadContexts[bits(data,12,8)]. So, I put in two lines which
  checked that the bits read are within the range of available context
  and if not I just put in break;. Here's the output I am getting
  right now (below). I have also put in the change described by Gabe
  into the m5-dev and right now it is seg-faulting for me, so I will
  run that in gdb too and try to figure it out.
 
  Polina
 
   m5 slave terminal: Terminal 0 
   cpu cpu
 
  Sun Fire T2000, No Keyboard
  Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
  OpenBoot 4.23.0, 256 MB memory available, Serial #1122867.
  [saidi obp #30]
  Ethernet address 0:80:3:de:ad:3, Host ID: 80112233.
 
 
 
  Boot device: /virtual-devices/d...@0  File and args: -vV
  Loading ufs-file-system package 1.4 04 Aug 1995 13:02:54.
  FCode UFS Reader 1.12 00/07/17 15:48:16.
  Loading: /platform/SUNW,Sun-Fire-T2000/ufsboot
  Loading: /platform/sun4v/ufsboot
  device path '/virtual-devi...@100/d...@0:a'
  The boot filesystem is logging.
  The ufs log is empty and will not be used.
  standalone = `kernel/sparcv9/unix', args = `-v'
  Elf64 client
  Size: 0x76e40+0x1c872+0x3123a Bytes
  modpath: /platform/sun4v/kernel /kernel /usr/kernel
  module /platform/sun4v/kernel/sparcv9/unix: text at [0x100,
  0x1076e3f] data at 0x180
  module misc/sparcv9/krtld: text at [0x1076e40, 0x108f737] data at
  0x184dab0
  module /platform/sun4v/kernel/sparcv9/genunix: text at [0x108f738,
  0x11dd437] data at 0x18531c0
  module /platform/sun4v/kernel/misc/sparcv9/platmod: text at
  [0x11dd438, 0x11dd43f] data at 0x18a4be0
  module /platform/sun4v/kernel/cpu/sparcv9/SUNW,UltraSPARC-T1: text
  at [0x11dd440, 0x11e06ff] data at 0x18a5300
  SunOS Release 5.10 Version Generic_118822-23 64-bit
  Copyright 1983-2005 Sun Microsystems, Inc.  All rights reserved.
  Use is subject to license terms.
  Ethernet address = 0:80:3:de:ad:3
  mem = 262144K (0x1000)
  avail mem = 237879296
  root nexus = Sun Fire T2000
  pseudo0 at root
  pseudo0 is /pseudo
  scsi_vhci0 at root
  scsi_vhci0 is /scsi_vhci
  virtual-device: hsimd0
  hsimd0 is /virtual-devi...@100/d...@0
  root on /virtual-devi...@100/d...@0:a fstype ufs
  pseudo-device: dld0
  dld0 is /pseudo/d...@0
  cpu0: UltraSPARC-T1 (cpuid 0 clock 5 MHz)
  cpu1: UltraSPARC-T1 (cpuid 1 clock 5 MHz)
 
  panic[cpu0]/thread=180e000: cpu1 failed to start (2)
 
  0180b8b0 unix:start_cpu+124 (1, 10166a0, 0, 181cc00, 2, 0)
%l0-3:   0181cc00
  01072000
%l4-7: 030001385a20 03000134a0f8 0004
  0181a800
  0180b960 unix:start_other_cpus+194 (1813000, 2, 1, 0,
  1836f28, 1839400)
%l0-3: 0183c5f0 0001 
  0002
%l4-7: 0001 018b1400 01072000
  01016400
  0180ba10 genunix:main+1d4 (18a9938, 18a5800, 1836340,
  1861c00, 0, 18abc00)
%l0-3: 70002000 0001 018abc00
  0002
%l4-7: 018aca28 018ac800 018a9948
  018a9800
 
  syncing file systems... done
  skipping system dump - no dump device configured
  rebooting...
  panic - kernel: prom_reboot: reboot call returned!
  Program terminated
  {0} ok boot disk
  ERROR: Last Trap: Fast Data Access MMU Miss
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  On Thu, Mar 5, 2009 at 2:26 PM, Ali Saidi sa...@umich.edu wrote:
  My output looks like this:
  M5 compiled Mar  5 2009 13:51:37
  M5 revision 632115b48346 5955 default qtip tip start_sparc_2cpu.diff
  qbase
  M5 started Mar  5 2009 14:03:22
  M5 executing on zeep
  command line: ./build/SPARC_FS/m5.opt configs/example/fs.py -n 2
  Global frequency set at 1 ticks per second
  info: No kernel set for full system simulation. Assuming you know what
  you're doing...
  Listening for t1000 connection on port 3456
0: system.t1000.htod: Real-time clock set to Thu Jan  1
  00:00:00 2009
 
0: system.t1000.htod: Real-time clock set to 1230768000
  Listening for t1000 connection on port 3457
  0: system.remote_gdb.listener: listening for remote gdb #0 on port
  7001
  0: system.remote_gdb.listener: listening for remote gdb #1 on port
  7000
   REAL SIMULATION 
  info: Entering event queue @ 0.  Starting simulation...
  hack: Processor 2 is virtual 

[m5-dev] March 11th-30th

2009-03-06 Thread Gabriel Michael Black
 To give everyone a heads up, I'm going to have family visiting  
from March 11th until the 30th and will have very little time for M5  
if any. If there's anything important that needs to be done soon, it  
will need to be done before Tuesday.

Gabe

___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] MIPS UTB and multiple inheritance.

2009-03-06 Thread Korey Sewell

 That may be true, but none of it is actually in the UTB that we have
 in our tree.  All the UTB does is inherit from DTB and ITB and that's
 it.

Although the UTB inheriting from the DTB and ITB seems pointless from the
outset, the way it was implemented is that if you can combine the
functionality of the ITB and DTB then you have a UTB. So instead of defining
the functions separately in a UTB class, you can just inherit from the ITB
and DTB classes and note that you would never want to have a separate
ITB/DTB class for MIPS anyway.

We've already discussed why deriving from the ITB and DTB was desirable as
it allowed those base pointers to point the same UTB class.

Is that the right implementation? Well, if you are trying to stick to the
convention that there has to be an ITB and DTB pointer in each CPU then yes,
because how else are you going to mimick the functionality of both in one
class?

But if we are willing to give BaseTLB pointers in the CPU's and just name
those itb and dtb, then I would argue that that is a better solution as
described earlier in this thread.

Seems like Gabe is doing this anyway (right?), so this should be able to be
resolved soon I would think.




  Nate
 ___
 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


Re: [m5-dev] MIPS UTB and multiple inheritance.

2009-03-06 Thread Gabe Black


 Seems like Gabe is doing this anyway (right?)

Yes.
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev