[gem5-dev] changeset in gem5: Mem: Use sysconf to get the page size instead...

2011-06-08 Thread Gabe Black
changeset e39a9c0493ad in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=e39a9c0493ad
description:
Mem: Use sysconf to get the page size instead of the PAGE_SIZE macro.

diffstat:

 src/mem/physical.cc |  2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diffs (12 lines):

diff -r 1810956fa5dc -r e39a9c0493ad src/mem/physical.cc
--- a/src/mem/physical.cc   Tue Jun 07 00:46:54 2011 -0700
+++ b/src/mem/physical.cc   Wed Jun 08 00:57:50 2011 -0700
@@ -90,7 +90,7 @@
 int fd = open(params()->file.c_str(), O_RDONLY);
 _size = lseek(fd, 0, SEEK_END);
 lseek(fd, 0, SEEK_SET);
-pmemAddr = (uint8_t *)mmap(NULL, roundUp(size(), PAGE_SIZE),
+pmemAddr = (uint8_t *)mmap(NULL, roundUp(size(), 
sysconf(_SC_PAGESIZE)),
PROT_READ | PROT_WRITE, map_flags, fd, 0);
 }
 
___
gem5-dev mailing list
gem5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/gem5-dev


[gem5-dev] Cron /z/m5/regression/do-regression quick

2011-06-08 Thread Cron Daemon
= Statistics differences =* 
build/ALPHA_SE/tests/opt/quick/00.hello/alpha/tru64/simple-timing-ruby passed.
* build/ALPHA_SE/tests/opt/quick/60.rubytest/alpha/linux/rubytest-ruby 
passed.
= Statistics differences =* 
build/ALPHA_SE/tests/opt/quick/00.hello/alpha/linux/simple-atomic passed.
* build/ALPHA_SE/tests/opt/quick/00.hello/alpha/linux/simple-timing passed.
* build/ALPHA_SE/tests/opt/quick/20.eio-short/alpha/eio/simple-timing 
passed.
* build/ALPHA_SE/tests/opt/quick/30.eio-mp/alpha/eio/simple-timing-mp 
passed.
* build/ALPHA_SE/tests/opt/quick/01.hello-2T-smt/alpha/linux/o3-timing 
passed.
* build/ALPHA_SE/tests/opt/quick/00.hello/alpha/tru64/simple-timing passed.
* build/ALPHA_SE/tests/opt/quick/00.hello/alpha/tru64/o3-timing passed.
* build/ALPHA_SE/tests/opt/quick/20.eio-short/alpha/eio/simple-atomic 
passed.
* build/ALPHA_SE/tests/opt/quick/30.eio-mp/alpha/eio/simple-atomic-mp 
passed.
* build/ALPHA_SE/tests/opt/quick/00.hello/alpha/tru64/simple-atomic passed.
* build/ALPHA_SE/tests/opt/quick/00.hello/alpha/linux/simple-timing-ruby 
passed.
* build/ALPHA_SE/tests/opt/quick/00.hello/alpha/linux/o3-timing passed.
* build/ALPHA_SE/tests/opt/quick/00.hello/alpha/linux/inorder-timing passed.
* build/ALPHA_SE/tests/opt/quick/50.memtest/alpha/linux/memtest-ruby passed.
* build/ALPHA_SE/tests/opt/quick/50.memtest/alpha/linux/memtest passed.
* 
build/ALPHA_SE_MOESI_hammer/tests/opt/quick/60.rubytest/alpha/linux/rubytest-ruby-MOESI_hammer
 passed.
* 
build/ALPHA_SE_MOESI_hammer/tests/opt/quick/00.hello/alpha/tru64/simple-timing-ruby-MOESI_hammer
 passed.
* 
build/ALPHA_SE_MOESI_hammer/tests/opt/quick/00.hello/alpha/linux/simple-timing-ruby-MOESI_hammer
 passed.
* 
build/ALPHA_SE_MESI_CMP_directory/tests/opt/quick/00.hello/alpha/linux/simple-timing-ruby-MESI_CMP_directory
 passed.
* 
build/ALPHA_SE_MESI_CMP_directory/tests/opt/quick/60.rubytest/alpha/linux/rubytest-ruby-MESI_CMP_directory
 passed.
* 
build/ALPHA_SE_MESI_CMP_directory/tests/opt/quick/00.hello/alpha/tru64/simple-timing-ruby-MESI_CMP_directory
 passed.
* 
build/ALPHA_SE_MOESI_CMP_directory/tests/opt/quick/00.hello/alpha/tru64/simple-timing-ruby-MOESI_CMP_directory
 passed.
* 
build/ALPHA_SE_MOESI_CMP_directory/tests/opt/quick/60.rubytest/alpha/linux/rubytest-ruby-MOESI_CMP_directory
 passed.
* 
build/ALPHA_SE_MOESI_CMP_directory/tests/opt/quick/00.hello/alpha/linux/simple-timing-ruby-MOESI_CMP_directory
 passed.
* 
build/ALPHA_SE_MOESI_hammer/tests/opt/quick/50.memtest/alpha/linux/memtest-ruby-MOESI_hammer
 passed.
* 
build/ALPHA_SE_MOESI_CMP_token/tests/opt/quick/60.rubytest/alpha/linux/rubytest-ruby-MOESI_CMP_token
 passed.
* 
build/ALPHA_SE_MOESI_CMP_token/tests/opt/quick/00.hello/alpha/tru64/simple-timing-ruby-MOESI_CMP_token
 passed.
* 
build/ALPHA_SE_MOESI_CMP_token/tests/opt/quick/00.hello/alpha/linux/simple-timing-ruby-MOESI_CMP_token
 passed.
* 
build/ALPHA_FS/tests/opt/quick/10.linux-boot/alpha/linux/tsunami-simple-atomic-dual
 passed.
* 
build/ALPHA_FS/tests/opt/quick/10.linux-boot/alpha/linux/tsunami-simple-timing 
passed.
* 
build/ALPHA_FS/tests/opt/quick/10.linux-boot/alpha/linux/tsunami-simple-timing-dual
 passed.
* 
build/ALPHA_FS/tests/opt/quick/10.linux-boot/alpha/linux/tsunami-simple-atomic 
passed.
* 
build/ALPHA_FS/tests/opt/quick/80.netperf-stream/alpha/linux/twosys-tsunami-simple-atomic
 passed.
* 
build/ALPHA_SE_MOESI_CMP_token/tests/opt/quick/50.memtest/alpha/linux/memtest-ruby-MOESI_CMP_token
 passed.
* build/MIPS_SE/tests/opt/quick/00.hello/mips/linux/simple-atomic passed.
* build/MIPS_SE/tests/opt/quick/00.hello/mips/linux/simple-timing passed.
* build/MIPS_SE/tests/opt/quick/00.hello/mips/linux/o3-timing passed.
* build/MIPS_SE/tests/opt/quick/00.hello/mips/linux/simple-timing-ruby 
passed.
* build/MIPS_SE/tests/opt/quick/00.hello/mips/linux/inorder-timing passed.
* 
build/ALPHA_SE_MOESI_CMP_directory/tests/opt/quick/50.memtest/alpha/linux/memtest-ruby-MOESI_CMP_directory
 passed.
* build/POWER_SE/tests/opt/quick/00.hello/power/linux/simple-atomic passed.
* 
build/ALPHA_SE_MESI_CMP_directory/tests/opt/quick/50.memtest/alpha/linux/memtest-ruby-MESI_CMP_directory
 passed.
* build/POWER_SE/tests/opt/quick/00.hello/power/linux/o3-timing passed.
* build/SPARC_SE/tests/opt/quick/02.insttest/sparc/linux/o3-timing passed.
* build/SPARC_SE/tests/opt/quick/02.insttest/sparc/linux/simple-timing 
passed.
* 
build/SPARC_SE/tests/opt/quick/40.m5threads-test-atomic/sparc/linux/simple-atomic-mp
 passed.
* build/SPARC_SE/tests/opt/quick/00.hello/sparc/linux/simple-atomic passed.
* 
build/SPARC_SE/tests/opt/quick/40.m5threads-test-atomic/sparc/linux/o3-timing-mp
 passed.
* build/SPARC_SE/tests/opt/quick/00.hello/sparc/linux/simple-timing passed.
* build/SPARC_SE/tests/opt/quick/02.insttest/sparc/linux/simple-at

Re: [gem5-dev] [m5-dev] Review Request: stats: move code that loops over all stats into python

2011-06-08 Thread William Wang
Hi,

I'm trying to call a global function implemented in C++ from a function in the 
Python __init__.py file, how can I do that? Is that a good example that I can 
follow?

Thanks,
William

-Original Message-
From: gem5-dev-boun...@m5sim.org [mailto:gem5-dev-boun...@m5sim.org] On Behalf 
Of nathan binkert
Sent: 06 June 2011 22:07
To: gem5 Developer List
Cc: M5 Developer List
Subject: Re: [gem5-dev] [m5-dev] Review Request: stats: move code that loops 
over all stats into python

> Where in the code is the signal from "kill -USR1" handled to dump stats?

% grep -nR USR1 src
src/sim/init.cc:97:signal(SIGUSR1, dumpStatsHandler);
___
gem5-dev mailing list
gem5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/gem5-dev


-- IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium.  Thank you.

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


Re: [gem5-dev] [m5-dev] Review Request: stats: move code that loops over all stats into python

2011-06-08 Thread nathan binkert
> I'm trying to call a global function implemented in C++ from a function in 
> the Python __init__.py file, how can I do that? Is that a good example that I 
> can follow?

Just add your function foo() to src/python/swig/core.i and then you
can access it from m5.internal.core.foo()

Most of the functions in core.i are examples for you.
___
gem5-dev mailing list
gem5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/gem5-dev


Re: [gem5-dev] Query on inheritance and virtual functions

2011-06-08 Thread Nilay Vaish

On Wed, 8 Jun 2011, Jack Harvard wrote:


When you declare your function private, you can't use instance.function() to 
access it. Is it generating a compile time error?

On 8 Jun 2011, at 00:31, Nilay Vaish wrote:


Consider the following class declarations --

class A
{
 public:
   virtual void function() = 0;
};

class B : public A
{
 private:
   void function();
}

int main()
{
 B b;
 b.function();
}

Will this code compile correctly?

--
Nilay


I should say that my example program was not what I intended it to be. The 
main function should look like --


int main()
{
  B* b = new B();
  A* a = b;
  a->function();
  return 0;
}

Now what would happen?

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


Re: [gem5-dev] Query on inheritance and virtual functions

2011-06-08 Thread Jack Harvard


On 8 Jun 2011, at 19:09, Nilay Vaish wrote:

> On Wed, 8 Jun 2011, Jack Harvard wrote:
> 
>> When you declare your function private, you can't use instance.function() to 
>> access it. Is it generating a compile time error?
>> 
>> On 8 Jun 2011, at 00:31, Nilay Vaish wrote:
>> 
>>> Consider the following class declarations --
>>> 
>>> class A
>>> {
>>> public:
>>>   virtual void function() = 0;
>>> };
>>> 
>>> class B : public A
>>> {
>>> private:
>>>   void function();
>>> }
>>> 
>>> int main()
>>> {
>>> B b;
>>> b.function();
>>> }
>>> 
>>> Will this code compile correctly?
>>> 
>>> --
>>> Nilay
> 
> I should say that my example program was not what I intended it to be. The 
> main function should look like --
> 
> int main()
> {
>  B* b = new B();
>  A* a = b;
>  a->function();
>  return 0;
> }
> 
> Now what would happen?

This compiles. However, if you do b->function(), you would get the same error 
as your last example, due to the same reason.





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


Re: [gem5-dev] changeset in m5: scons: rename TraceFlags to DebugFlags

2011-06-08 Thread nathan binkert
> Why not just let TraceFlags be interpreted as DebugFlags, so TraceFlags still 
> works for users.

For better or worse, I renamed trace flags to debug flags and I should
have changed the name of TraceFlags to DebugFlags when I did that, so
this was just correcting that and removing an inconsistency.

You can just do TraceFlags = DebugFlags in your sconscript to make it
continue to work.  I don't think many people have added TraceFlags and
even if they did, it's not much effort to fix.

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


Re: [gem5-dev] Query on inheritance and virtual functions

2011-06-08 Thread Nilay Vaish

On Wed, 8 Jun 2011, Jack Harvard wrote:




On 8 Jun 2011, at 19:09, Nilay Vaish wrote:


On Wed, 8 Jun 2011, Jack Harvard wrote:


When you declare your function private, you can't use instance.function() to 
access it. Is it generating a compile time error?

On 8 Jun 2011, at 00:31, Nilay Vaish wrote:


Consider the following class declarations --

class A
{
public:
  virtual void function() = 0;
};

class B : public A
{
private:
  void function();
}

int main()
{
B b;
b.function();
}

Will this code compile correctly?

--
Nilay


I should say that my example program was not what I intended it to be. The main 
function should look like --

int main()
{
 B* b = new B();
 A* a = b;
 a->function();
 return 0;
}

Now what would happen?


This compiles. However, if you do b->function(), you would get the same error 
as your last example, due to the same reason.



It compiles and executes fine. What surprises me is that even though 
function() is private for class B, still it gets invoked using the pointer 
from class A. I was not aware of this before.


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


Re: [gem5-dev] Query on inheritance and virtual functions

2011-06-08 Thread Jack Harvard

On 8 Jun 2011, at 23:28, Nilay Vaish wrote:

> On Wed, 8 Jun 2011, Jack Harvard wrote:
> 
>> 
>> 
>> On 8 Jun 2011, at 19:09, Nilay Vaish wrote:
>> 
>>> On Wed, 8 Jun 2011, Jack Harvard wrote:
>>> 
 When you declare your function private, you can't use instance.function() 
 to access it. Is it generating a compile time error?
 
 On 8 Jun 2011, at 00:31, Nilay Vaish wrote:
 
> Consider the following class declarations --
> 
> class A
> {
> public:
>  virtual void function() = 0;
> };
> 
> class B : public A
> {
> private:
>  void function();
> }
> 
> int main()
> {
> B b;
> b.function();
> }
> 
> Will this code compile correctly?
> 
> --
> Nilay
>>> 
>>> I should say that my example program was not what I intended it to be. The 
>>> main function should look like --
>>> 
>>> int main()
>>> {
>>> B* b = new B();
>>> A* a = b;
>>> a->function();
>>> return 0;
>>> }
>>> 
>>> Now what would happen?
>> 
>> This compiles. However, if you do b->function(), you would get the same 
>> error as your last example, due to the same reason.
>> 
> 
> It compiles and executes fine. What surprises me is that even though 
> function() is private for class B, still it gets invoked using the pointer 
> from class A. I was not aware of this before.

Overriding and access visibility is orthogonal, you use class A pointer to 
access its public function.   

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


Re: [gem5-dev] Query on inheritance and virtual functions

2011-06-08 Thread Nilay Vaish

On Wed, 8 Jun 2011, Jack Harvard wrote:



On 8 Jun 2011, at 23:28, Nilay Vaish wrote:


On Wed, 8 Jun 2011, Jack Harvard wrote:




On 8 Jun 2011, at 19:09, Nilay Vaish wrote:


On Wed, 8 Jun 2011, Jack Harvard wrote:


When you declare your function private, you can't use instance.function() to 
access it. Is it generating a compile time error?

On 8 Jun 2011, at 00:31, Nilay Vaish wrote:


Consider the following class declarations --

class A
{
public:
 virtual void function() = 0;
};

class B : public A
{
private:
 void function();
}

int main()
{
B b;
b.function();
}

Will this code compile correctly?

--
Nilay


I should say that my example program was not what I intended it to be. The main 
function should look like --

int main()
{
B* b = new B();
A* a = b;
a->function();
return 0;
}

Now what would happen?


This compiles. However, if you do b->function(), you would get the same error 
as your last example, due to the same reason.



It compiles and executes fine. What surprises me is that even though function() 
is private for class B, still it gets invoked using the pointer from class A. I 
was not aware of this before.


Overriding and access visibility is orthogonal, you use class A pointer to 
access its public function.


I won't term this is a overriding, the function that will be called would 
be the one defined in class B, as 'function()' is a virtual member of 
class A. But then, 'function()' is private to class B, so I would expect 
some error to occur. I think the reason is that visibility is tested only 
at compile time and never at run time.


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


Re: [gem5-dev] Query on inheritance and virtual functions

2011-06-08 Thread Jack Harvard

On 9 Jun 2011, at 00:10, Nilay Vaish wrote:

> On Wed, 8 Jun 2011, Jack Harvard wrote:
> 
>> 
>> On 8 Jun 2011, at 23:28, Nilay Vaish wrote:
>> 
>>> On Wed, 8 Jun 2011, Jack Harvard wrote:
>>> 
 
 
 On 8 Jun 2011, at 19:09, Nilay Vaish wrote:
 
> On Wed, 8 Jun 2011, Jack Harvard wrote:
> 
>> When you declare your function private, you can't use 
>> instance.function() to access it. Is it generating a compile time error?
>> 
>> On 8 Jun 2011, at 00:31, Nilay Vaish wrote:
>> 
>>> Consider the following class declarations --
>>> 
>>> class A
>>> {
>>> public:
>>> virtual void function() = 0;
>>> };
>>> 
>>> class B : public A
>>> {
>>> private:
>>> void function();
>>> }
>>> 
>>> int main()
>>> {
>>> B b;
>>> b.function();
>>> }
>>> 
>>> Will this code compile correctly?
>>> 
>>> --
>>> Nilay
> 
> I should say that my example program was not what I intended it to be. 
> The main function should look like --
> 
> int main()
> {
> B* b = new B();
> A* a = b;
> a->function();
> return 0;
> }
> 
> Now what would happen?
 
 This compiles. However, if you do b->function(), you would get the same 
 error as your last example, due to the same reason.
 
>>> 
>>> It compiles and executes fine. What surprises me is that even though 
>>> function() is private for class B, still it gets invoked using the pointer 
>>> from class A. I was not aware of this before.
>> 
>> Overriding and access visibility is orthogonal, you use class A pointer to 
>> access its public function.
> 
> I won't term this is a overriding, the function that will be called would be 
> the one defined in class B, as 'function()' is a virtual member of class A. 
> But then, 'function()' is private to class B, so I would expect some error to 
> occur. I think the reason is that visibility is tested only at compile time 
> and never at run time.

It's still overriding for the function() defined in B which is overriding the 
function defined in base class A (whether it's defined as virtual or pure 
virtual). In C++ it's allowed to override with a private member. That means you
can only call it via a pointer or reference to the base. This is occasionally 
useful (eg if the base is a private one), but it isn't very common in my 
experience.

(A long, long time ago there were rules in C++ like those in Java to
prevent derived classes reducing the visibility of members. They were
abandoned because they got in the way of reasonable code.)

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


Re: [gem5-dev] Review Request: Ruby: Correctly set access permissions for directory entries

2011-06-08 Thread Brad Beckmann

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/684/#review1301
---

Ship it!


This looks fine to me.  I assume that if a controller doesn't include a 
setPermission or getPermission function, the compiler error message is the same 
as when a controller doesn't specify a getState function.  Correct?

- Brad


On 2011-06-06 14:45:22, Nilay Vaish wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/684/
> ---
> 
> (Updated 2011-06-06 14:45:22)
> 
> 
> Review request for Default.
> 
> 
> Summary
> ---
> 
> Ruby: Correctly set access permissions for directory entries
> The access permissions for the directory entries are not being set correctly.
> This is because pointers are not used for handling directory entries.
> function. get and set functions for access permissions have been added to the
> Controller state machine. The changePermission() function provided by the
> AbstractEntry and AbstractCacheEntry classes has been exposed to SLICC
> code once again. The set_permission() functionality has been removed.
> 
> NOTE: Each protocol will have to define these get and set functions in order
> to compile successfully.
> 
> 
> Diffs
> -
> 
>   src/mem/protocol/MESI_CMP_directory-L1cache.sm b9ba22cb23f2 
>   src/mem/protocol/MESI_CMP_directory-L2cache.sm b9ba22cb23f2 
>   src/mem/protocol/MESI_CMP_directory-dir.sm b9ba22cb23f2 
>   src/mem/protocol/MESI_CMP_directory-dma.sm b9ba22cb23f2 
>   src/mem/protocol/MI_example-cache.sm b9ba22cb23f2 
>   src/mem/protocol/MI_example-dir.sm b9ba22cb23f2 
>   src/mem/protocol/MI_example-dma.sm b9ba22cb23f2 
>   src/mem/protocol/MOESI_CMP_directory-L1cache.sm b9ba22cb23f2 
>   src/mem/protocol/MOESI_CMP_directory-L2cache.sm b9ba22cb23f2 
>   src/mem/protocol/MOESI_CMP_directory-dir.sm b9ba22cb23f2 
>   src/mem/protocol/MOESI_CMP_directory-dma.sm b9ba22cb23f2 
>   src/mem/protocol/MOESI_CMP_token-L1cache.sm b9ba22cb23f2 
>   src/mem/protocol/MOESI_CMP_token-L2cache.sm b9ba22cb23f2 
>   src/mem/protocol/MOESI_CMP_token-dir.sm b9ba22cb23f2 
>   src/mem/protocol/MOESI_CMP_token-dma.sm b9ba22cb23f2 
>   src/mem/protocol/MOESI_hammer-cache.sm b9ba22cb23f2 
>   src/mem/protocol/MOESI_hammer-dir.sm b9ba22cb23f2 
>   src/mem/protocol/MOESI_hammer-dma.sm b9ba22cb23f2 
>   src/mem/protocol/Network_test-cache.sm b9ba22cb23f2 
>   src/mem/protocol/Network_test-dir.sm b9ba22cb23f2 
>   src/mem/protocol/RubySlicc_Types.sm b9ba22cb23f2 
>   src/mem/ruby/slicc_interface/AbstractController.hh b9ba22cb23f2 
>   src/mem/slicc/ast/MethodCallExprAST.py b9ba22cb23f2 
>   src/mem/slicc/symbols/StateMachine.py b9ba22cb23f2 
> 
> Diff: http://reviews.m5sim.org/r/684/diff
> 
> 
> Testing
> ---
> 
> Passes regression tests and 1 loads with ruby random tester.
> 
> 
> Thanks,
> 
> Nilay
> 
>

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


Re: [gem5-dev] Review Request: Ruby: Correctly set access permissions for directory entries

2011-06-08 Thread Nilay Vaish


> On 2011-06-08 17:11:26, Brad Beckmann wrote:
> > This looks fine to me.  I assume that if a controller doesn't include a 
> > setPermission or getPermission function, the compiler error message is the 
> > same as when a controller doesn't specify a getState function.  Correct?

Currently SLICC does not output any error if set/getState() or
set/getAccessPermission() are missing. But I have patch in the
queue which enables catching these errors in SLICC. For now
GCC outputs that a particular function has not been implemented.


- Nilay


---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/684/#review1301
---


On 2011-06-06 14:45:22, Nilay Vaish wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/684/
> ---
> 
> (Updated 2011-06-06 14:45:22)
> 
> 
> Review request for Default.
> 
> 
> Summary
> ---
> 
> Ruby: Correctly set access permissions for directory entries
> The access permissions for the directory entries are not being set correctly.
> This is because pointers are not used for handling directory entries.
> function. get and set functions for access permissions have been added to the
> Controller state machine. The changePermission() function provided by the
> AbstractEntry and AbstractCacheEntry classes has been exposed to SLICC
> code once again. The set_permission() functionality has been removed.
> 
> NOTE: Each protocol will have to define these get and set functions in order
> to compile successfully.
> 
> 
> Diffs
> -
> 
>   src/mem/protocol/MESI_CMP_directory-L1cache.sm b9ba22cb23f2 
>   src/mem/protocol/MESI_CMP_directory-L2cache.sm b9ba22cb23f2 
>   src/mem/protocol/MESI_CMP_directory-dir.sm b9ba22cb23f2 
>   src/mem/protocol/MESI_CMP_directory-dma.sm b9ba22cb23f2 
>   src/mem/protocol/MI_example-cache.sm b9ba22cb23f2 
>   src/mem/protocol/MI_example-dir.sm b9ba22cb23f2 
>   src/mem/protocol/MI_example-dma.sm b9ba22cb23f2 
>   src/mem/protocol/MOESI_CMP_directory-L1cache.sm b9ba22cb23f2 
>   src/mem/protocol/MOESI_CMP_directory-L2cache.sm b9ba22cb23f2 
>   src/mem/protocol/MOESI_CMP_directory-dir.sm b9ba22cb23f2 
>   src/mem/protocol/MOESI_CMP_directory-dma.sm b9ba22cb23f2 
>   src/mem/protocol/MOESI_CMP_token-L1cache.sm b9ba22cb23f2 
>   src/mem/protocol/MOESI_CMP_token-L2cache.sm b9ba22cb23f2 
>   src/mem/protocol/MOESI_CMP_token-dir.sm b9ba22cb23f2 
>   src/mem/protocol/MOESI_CMP_token-dma.sm b9ba22cb23f2 
>   src/mem/protocol/MOESI_hammer-cache.sm b9ba22cb23f2 
>   src/mem/protocol/MOESI_hammer-dir.sm b9ba22cb23f2 
>   src/mem/protocol/MOESI_hammer-dma.sm b9ba22cb23f2 
>   src/mem/protocol/Network_test-cache.sm b9ba22cb23f2 
>   src/mem/protocol/Network_test-dir.sm b9ba22cb23f2 
>   src/mem/protocol/RubySlicc_Types.sm b9ba22cb23f2 
>   src/mem/ruby/slicc_interface/AbstractController.hh b9ba22cb23f2 
>   src/mem/slicc/ast/MethodCallExprAST.py b9ba22cb23f2 
>   src/mem/slicc/symbols/StateMachine.py b9ba22cb23f2 
> 
> Diff: http://reviews.m5sim.org/r/684/diff
> 
> 
> Testing
> ---
> 
> Passes regression tests and 1 loads with ruby random tester.
> 
> 
> Thanks,
> 
> Nilay
> 
>

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


[gem5-dev] changeset in gem5: Ruby: Correctly set access permissions for di...

2011-06-08 Thread Nilay Vaish
changeset 30daf1dd5c91 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=30daf1dd5c91
description:
Ruby: Correctly set access permissions for directory entries
The access permissions for the directory entries are not being set 
correctly.
This is because pointers are not used for handling directory entries.
function. get and set functions for access permissions have been added 
to the
Controller state machine. The changePermission() function provided by 
the
AbstractEntry and AbstractCacheEntry classes has been exposed to SLICC
code once again. The set_permission() functionality has been removed.

NOTE: Each protocol will have to define these get and set functions in 
order
to compile successfully.

diffstat:

 src/mem/protocol/MESI_CMP_directory-L1cache.sm |  20 
 src/mem/protocol/MESI_CMP_directory-L2cache.sm |  21 -
 src/mem/protocol/MESI_CMP_directory-dir.sm |  15 ++-
 src/mem/protocol/MESI_CMP_directory-dma.sm |   7 +++
 src/mem/protocol/MI_example-cache.sm   |  20 
 src/mem/protocol/MI_example-dir.sm |  15 +++
 src/mem/protocol/MI_example-dma.sm |   7 +++
 src/mem/protocol/MOESI_CMP_directory-L1cache.sm|  20 
 src/mem/protocol/MOESI_CMP_directory-L2cache.sm|  20 
 src/mem/protocol/MOESI_CMP_directory-dir.sm|  14 ++
 src/mem/protocol/MOESI_CMP_directory-dma.sm|   7 +++
 src/mem/protocol/MOESI_CMP_token-L1cache.sm|  20 
 src/mem/protocol/MOESI_CMP_token-L2cache.sm|  15 +++
 src/mem/protocol/MOESI_CMP_token-dir.sm|  15 ++-
 src/mem/protocol/MOESI_CMP_token-dma.sm|   7 +++
 src/mem/protocol/MOESI_hammer-cache.sm |  20 
 src/mem/protocol/MOESI_hammer-dir.sm   |  15 ++-
 src/mem/protocol/MOESI_hammer-dma.sm   |   7 +++
 src/mem/protocol/Network_test-cache.sm |   7 +++
 src/mem/protocol/Network_test-dir.sm   |   7 +++
 src/mem/protocol/RubySlicc_Types.sm|   8 ++--
 src/mem/ruby/slicc_interface/AbstractController.hh |   4 
 src/mem/slicc/ast/MethodCallExprAST.py |   8 +++-
 src/mem/slicc/symbols/StateMachine.py  |  17 -
 24 files changed, 296 insertions(+), 20 deletions(-)

diffs (truncated from 604 to 300 lines):

diff -r e39a9c0493ad -r 30daf1dd5c91 
src/mem/protocol/MESI_CMP_directory-L1cache.sm
--- a/src/mem/protocol/MESI_CMP_directory-L1cache.smWed Jun 08 00:57:50 
2011 -0700
+++ b/src/mem/protocol/MESI_CMP_directory-L1cache.smWed Jun 08 11:58:09 
2011 -0500
@@ -183,6 +183,26 @@
 }
   }
 
+  AccessPermission getAccessPermission(Address addr) {
+TBE tbe := L1_TBEs[addr];
+if(is_valid(tbe)) {
+  return L1Cache_State_to_permission(tbe.TBEState);
+}
+
+Entry cache_entry := getCacheEntry(addr);
+if(is_valid(cache_entry)) {
+  return L1Cache_State_to_permission(cache_entry.CacheState);
+}
+
+return AccessPermission:NotPresent;
+  }
+
+  void setAccessPermission(Entry cache_entry, Address addr, State state) {
+if (is_valid(cache_entry)) {
+  cache_entry.changePermission(L1Cache_State_to_permission(state));
+}
+  }
+
   Event mandatory_request_type_to_event(RubyRequestType type) {
 if (type == RubyRequestType:LD) {
   return Event:Load;
diff -r e39a9c0493ad -r 30daf1dd5c91 
src/mem/protocol/MESI_CMP_directory-L2cache.sm
--- a/src/mem/protocol/MESI_CMP_directory-L2cache.smWed Jun 08 00:57:50 
2011 -0700
+++ b/src/mem/protocol/MESI_CMP_directory-L2cache.smWed Jun 08 11:58:09 
2011 -0500
@@ -202,7 +202,6 @@
 return L2Cache_State_to_string(getState(tbe, cache_entry, addr));
   }
 
-  // when is this called
   void setState(TBE tbe, Entry cache_entry, Address addr, State state) {
 
 // MUST CHANGE
@@ -215,6 +214,26 @@
 }
   }
 
+  AccessPermission getAccessPermission(Address addr) {
+TBE tbe := L2_TBEs[addr];
+if(is_valid(tbe)) {
+  return L2Cache_State_to_permission(tbe.TBEState);
+}
+
+Entry cache_entry := getCacheEntry(addr);
+if(is_valid(cache_entry)) {
+  return L2Cache_State_to_permission(cache_entry.CacheState);
+}
+
+return AccessPermission:NotPresent;
+  }
+
+  void setAccessPermission(Entry cache_entry, Address addr, State state) {
+if (is_valid(cache_entry)) {
+  cache_entry.changePermission(L2Cache_State_to_permission(state));
+}
+  }
+
   Event L1Cache_request_type_to_event(CoherenceRequestType type, Address addr,
   MachineID requestor, Entry cache_entry) {
 if(type == CoherenceRequestType:GETS) {
diff -r e39a9c0493ad -r 30daf1dd5c91 src/mem/protoco

Re: [gem5-dev] Query on inheritance and virtual functions

2011-06-08 Thread Gabriel Michael Black

Quoting Jack Harvard :



On 9 Jun 2011, at 00:10, Nilay Vaish wrote:


On Wed, 8 Jun 2011, Jack Harvard wrote:



On 8 Jun 2011, at 23:28, Nilay Vaish wrote:


On Wed, 8 Jun 2011, Jack Harvard wrote:




On 8 Jun 2011, at 19:09, Nilay Vaish wrote:


On Wed, 8 Jun 2011, Jack Harvard wrote:

When you declare your function private, you can't use  
instance.function() to access it. Is it generating a compile  
time error?


On 8 Jun 2011, at 00:31, Nilay Vaish wrote:


Consider the following class declarations --

class A
{
public:
virtual void function() = 0;
};

class B : public A
{
private:
void function();
}

int main()
{
B b;
b.function();
}

Will this code compile correctly?

--
Nilay


I should say that my example program was not what I intended it  
to be. The main function should look like --


int main()
{
B* b = new B();
A* a = b;
a->function();
return 0;
}

Now what would happen?


This compiles. However, if you do b->function(), you would get  
the same error as your last example, due to the same reason.




It compiles and executes fine. What surprises me is that even  
though function() is private for class B, still it gets invoked  
using the pointer from class A. I was not aware of this before.


Overriding and access visibility is orthogonal, you use class A  
pointer to access its public function.


I won't term this is a overriding, the function that will be called  
would be the one defined in class B, as 'function()' is a virtual  
member of class A. But then, 'function()' is private to class B, so  
I would expect some error to occur. I think the reason is that  
visibility is tested only at compile time and never at run time.


It's still overriding for the function() defined in B which is  
overriding the function defined in base class A (whether it's  
defined as virtual or pure virtual). In C++ it's allowed to override  
with a private member. That means you
can only call it via a pointer or reference to the base. This is  
occasionally useful (eg if the base is a private one), but it isn't  
very common in my experience.


(A long, long time ago there were rules in C++ like those in Java to
prevent derived classes reducing the visibility of members. They were
abandoned because they got in the way of reasonable code.)

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



Guys, lets try to keep conversations on the list related to gem5 please.

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


[gem5-dev] Single Header File for Debug Flags

2011-06-08 Thread Korey Sewell
What do people (mostly Nate) think about having a single header file for all
debug flags?

Instead of "#include "debug/MyFlag.hh" for every flag you want in a DPRINTF,
you could say "#include "debug/debugflags.hh" and that would cover all the
debug flags available for DPRINTF.

Would that (the old way?) not be more desirable then the new way of
including debug flags? Are there infrastructure things that make this
complicated?

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


Re: [gem5-dev] Single Header File for Debug Flags

2011-06-08 Thread nathan binkert
> What do people (mostly Nate) think about having a single header file for all
> debug flags?
>
> Instead of "#include "debug/MyFlag.hh" for every flag you want in a DPRINTF,
> you could say "#include "debug/debugflags.hh" and that would cover all the
> debug flags available for DPRINTF.
>
> Would that (the old way?) not be more desirable then the new way of
> including debug flags? Are there infrastructure things that make this
> complicated?

The whole reason I changed the flags around was to avoid the
centralized file :)  The main problem with the centralized file is
that if you add or remove a flag, you have to recompile just about
everything.  There is no reason that you couldn't do localized
includes for a set of flags though.  For example, you could add a file
to the src/cpu/inorder directory called debugflags and include the few
debug flags that you want and that way only the inorder CPU would be
rebuilt if you added a flag to it.  Adding the centralized file back
wouldn't be quite as bad as it was before since it would only be a
centralized .hh file and not a centralized .cc file (which makes doing
things like adding a flag for a unit test a real problem.)  I'm pretty
sure it's not worth it though and the localized files that include a
bunch of flags for each CPU model are probably as much as anyone
really needs.

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


Re: [gem5-dev] Single Header File for Debug Flags

2011-06-08 Thread nathan binkert
Oh, and I forgot.  Compound flags generate a header file as well.
debug/O3CPUAll.hh for example would have all of the flags that
O3CPUAll covers

On Wed, Jun 8, 2011 at 9:40 PM, nathan binkert  wrote:
>> What do people (mostly Nate) think about having a single header file for all
>> debug flags?
>>
>> Instead of "#include "debug/MyFlag.hh" for every flag you want in a DPRINTF,
>> you could say "#include "debug/debugflags.hh" and that would cover all the
>> debug flags available for DPRINTF.
>>
>> Would that (the old way?) not be more desirable then the new way of
>> including debug flags? Are there infrastructure things that make this
>> complicated?
>
> The whole reason I changed the flags around was to avoid the
> centralized file :)  The main problem with the centralized file is
> that if you add or remove a flag, you have to recompile just about
> everything.  There is no reason that you couldn't do localized
> includes for a set of flags though.  For example, you could add a file
> to the src/cpu/inorder directory called debugflags and include the few
> debug flags that you want and that way only the inorder CPU would be
> rebuilt if you added a flag to it.  Adding the centralized file back
> wouldn't be quite as bad as it was before since it would only be a
> centralized .hh file and not a centralized .cc file (which makes doing
> things like adding a flag for a unit test a real problem.)  I'm pretty
> sure it's not worth it though and the localized files that include a
> bunch of flags for each CPU model are probably as much as anyone
> really needs.
>
>  Nate
>
___
gem5-dev mailing list
gem5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/gem5-dev


Re: [gem5-dev] Single Header File for Debug Flags

2011-06-08 Thread Korey Sewell
Well, I guess the recompilation tradeoff is worth the temporary annoyance of
adding the specific debug flag header file everywhere.

I'm also hoping that the new changes will allow us to eventually make
compound flags of compound flags.

On Thu, Jun 9, 2011 at 12:42 AM, nathan binkert  wrote:

> Oh, and I forgot.  Compound flags generate a header file as well.
> debug/O3CPUAll.hh for example would have all of the flags that
> O3CPUAll covers
>
> On Wed, Jun 8, 2011 at 9:40 PM, nathan binkert  wrote:
> >> What do people (mostly Nate) think about having a single header file for
> all
> >> debug flags?
> >>
> >> Instead of "#include "debug/MyFlag.hh" for every flag you want in a
> DPRINTF,
> >> you could say "#include "debug/debugflags.hh" and that would cover all
> the
> >> debug flags available for DPRINTF.
> >>
> >> Would that (the old way?) not be more desirable then the new way of
> >> including debug flags? Are there infrastructure things that make this
> >> complicated?
> >
> > The whole reason I changed the flags around was to avoid the
> > centralized file :)  The main problem with the centralized file is
> > that if you add or remove a flag, you have to recompile just about
> > everything.  There is no reason that you couldn't do localized
> > includes for a set of flags though.  For example, you could add a file
> > to the src/cpu/inorder directory called debugflags and include the few
> > debug flags that you want and that way only the inorder CPU would be
> > rebuilt if you added a flag to it.  Adding the centralized file back
> > wouldn't be quite as bad as it was before since it would only be a
> > centralized .hh file and not a centralized .cc file (which makes doing
> > things like adding a flag for a unit test a real problem.)  I'm pretty
> > sure it's not worth it though and the localized files that include a
> > bunch of flags for each CPU model are probably as much as anyone
> > really needs.
> >
> >  Nate
> >
> ___
> gem5-dev mailing list
> gem5-dev@m5sim.org
> http://m5sim.org/mailman/listinfo/gem5-dev
>



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


[gem5-dev] changeset in gem5: sparc: compilation fixes for inorder

2011-06-08 Thread Korey Sewell
changeset 77d12d8f7971 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=77d12d8f7971
description:
sparc: compilation fixes for inorder
Add a few constants and functions that the InOrder model wants for 
SPARC.
* * *
sparc: add eaComp function
InOrder separates the address generation from the actual access so give
Sparc that functionality
* * *
sparc: add control flags for branches
branch predictors and other cpu model functions need to know specific 
information
about branches, so add the necessary flags here

diffstat:

 src/arch/sparc/isa/decoder.isa  |   6 +-
 src/arch/sparc/isa/formats/branch.isa   |   5 ++
 src/arch/sparc/isa/formats/mem/basicmem.isa |   6 ++
 src/arch/sparc/isa/formats/mem/swap.isa |   2 +-
 src/arch/sparc/isa/formats/mem/util.isa |  26 ++
 src/arch/sparc/mt.hh|  71 +
 src/arch/sparc/registers.hh |   2 +
 src/cpu/inorder/cpu.cc  |   1 +
 src/cpu/inorder/inorder_dyn_inst.cc |  19 +++
 9 files changed, 134 insertions(+), 4 deletions(-)

diffs (274 lines):

diff -r 30daf1dd5c91 -r 77d12d8f7971 src/arch/sparc/isa/decoder.isa
--- a/src/arch/sparc/isa/decoder.isaWed Jun 08 11:58:09 2011 -0500
+++ b/src/arch/sparc/isa/decoder.isaThu Jun 09 01:34:06 2011 -0400
@@ -141,7 +141,7 @@
 IntReg midVal;
 R15 = midVal = (Pstate<3:> ? (PC)<31:0> : PC);
 NNPC = midVal + disp;
-}});
+}},None, None, IsIndirectControl, IsCall);
 0x2: decode OP3 {
 format IntOp {
 0x00: add({{Rd = Rs1.sdw + Rs2_or_imm13;}});
@@ -1005,7 +1005,7 @@
 Rd = PC;
 NNPC = target;
 }
-}});
+}}, IsUncondControl, IsIndirectControl);
 0x39: Branch::return({{
 Addr target = Rs1 + Rs2_or_imm13;
 if (fault == NoFault) {
@@ -1025,7 +1025,7 @@
 Canrestore = Canrestore - 1;
 }
 }
-}});
+}}, IsUncondControl, IsIndirectControl, IsReturn);
 0x3A: decode CC
 {
 0x0: Trap::tcci({{
diff -r 30daf1dd5c91 -r 77d12d8f7971 src/arch/sparc/isa/formats/branch.isa
--- a/src/arch/sparc/isa/formats/branch.isa Wed Jun 08 11:58:09 2011 -0500
+++ b/src/arch/sparc/isa/formats/branch.isa Thu Jun 09 01:34:06 2011 -0400
@@ -262,6 +262,9 @@
 let {{
 def doBranch(name, Name, base, cond,
 code, annul_code, fail, annul_fail, opt_flags):
+if "IsIndirectControl" not in opt_flags:
+   opt_flags += ('IsDirectControl', )
+
 iop = InstObjParams(name, Name, base,
 {"code": code,
  "fail": fail,
@@ -289,12 +292,14 @@
 return (header_output, decoder_output, exec_output, decode_block)
 
 def doCondBranch(name, Name, base, cond, code, opt_flags):
+opt_flags += ('IsCondControl', )
 return doBranch(name, Name, base, cond, code, code,
 'NNPC = NNPC; NPC = NPC;\n',
 'NNPC = NPC + 8; NPC = NPC + 4;\n',
 opt_flags)
 
 def doUncondBranch(name, Name, base, code, annul_code, opt_flags):
+opt_flags += ('IsUncondControl', )
 return doBranch(name, Name, base, "true", code, annul_code,
 ";", ";", opt_flags)
 
diff -r 30daf1dd5c91 -r 77d12d8f7971 src/arch/sparc/isa/formats/mem/basicmem.isa
--- a/src/arch/sparc/isa/formats/mem/basicmem.isa   Wed Jun 08 11:58:09 
2011 -0500
+++ b/src/arch/sparc/isa/formats/mem/basicmem.isa   Thu Jun 09 01:34:06 
2011 -0400
@@ -1,3 +1,5 @@
+// -*- mode:c++ -*-
+
 // Copyright (c) 2006-2007 The Regents of The University of Michigan
 // All rights reserved.
 //
@@ -45,6 +47,8 @@
 
 %(BasicExecDeclare)s
 
+%(EACompDeclare)s
+
 %(InitiateAccDeclare)s
 
 %(CompleteAccDeclare)s
@@ -69,6 +73,8 @@
 exec_output = doDualSplitExecute(code, postacc_code, addrCalcReg,
 addrCalcImm, execute, faultCode, name, name + "Imm",
 Name, Name + "Imm", asi, opt_flags)
+exec_output +=  EACompExecute.subst(iop);
+exec_output +=  EACompExecute.subst(iop_imm);
 return (header_output, decoder_output, exec_output, decode_block)
 }};
 
diff -r 30daf1dd5c91 -r 77d12d8f7971 src/arch/sparc/isa/formats/mem/swap.isa
--- a/src/arch/sparc/isa/formats/mem/swap.isa   Wed Jun 08 11:58:09 2011 -0500
+++ b/src/arch/sparc/isa/formats/mem/swap.isa   Thu Jun 09 01:34:06 2011 -0400
@@ -163,7 +163,7 @@
 "EA_trunc" : TruncateEA}
 exec_output = doSplitExecute(execute, name, Name, mem_flags,
 ["IsStoreConditional"], microParams);
-return (header_output, decoder_output, exec_output, decode_block)
+return (

[gem5-dev] Review Request: cpus/isa: add a != operator for pcstate

2011-06-08 Thread Korey Sewell

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/738/
---

Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and Nathan 
Binkert.


Summary
---

cpus/isa: add a != operator for pcstate


Diffs
-

  src/arch/generic/types.hh 77d12d8f7971 

Diff: http://reviews.m5sim.org/r/738/diff


Testing
---


Thanks,

Korey

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


[gem5-dev] Review Request: sparc: init. cache state in TLB

2011-06-08 Thread Korey Sewell

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/739/
---

Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and Nathan 
Binkert.


Summary
---

sparc: init. cache state in TLB
valgrind complains and its a potential source of instability, so go ahead
and set it to 0 to start


Diffs
-

  src/arch/sparc/tlb.cc 77d12d8f7971 

Diff: http://reviews.m5sim.org/r/739/diff


Testing
---


Thanks,

Korey

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


Re: [gem5-dev] Review Request: cpus/isa: add a != operator for pcstate

2011-06-08 Thread Gabe Black

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/738/#review1303
---


I think you missed some (maybe just one) version of PC state defined in the 
ISAs themselves. ARM may be the only one, but you should double check to be 
sure. Also, for all these you could define them using ==, something like return 
!(*this == opc);

- Gabe


On 2011-06-08 22:46:05, Korey Sewell wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/738/
> ---
> 
> (Updated 2011-06-08 22:46:05)
> 
> 
> Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
> Nathan Binkert.
> 
> 
> Summary
> ---
> 
> cpus/isa: add a != operator for pcstate
> 
> 
> Diffs
> -
> 
>   src/arch/generic/types.hh 77d12d8f7971 
> 
> Diff: http://reviews.m5sim.org/r/738/diff
> 
> 
> Testing
> ---
> 
> 
> Thanks,
> 
> Korey
> 
>

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


Re: [gem5-dev] Review Request: sparc: init. cache state in TLB

2011-06-08 Thread Gabe Black

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/739/#review1304
---

Ship it!


- Gabe


On 2011-06-08 22:48:14, Korey Sewell wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/739/
> ---
> 
> (Updated 2011-06-08 22:48:14)
> 
> 
> Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
> Nathan Binkert.
> 
> 
> Summary
> ---
> 
> sparc: init. cache state in TLB
> valgrind complains and its a potential source of instability, so go ahead
> and set it to 0 to start
> 
> 
> Diffs
> -
> 
>   src/arch/sparc/tlb.cc 77d12d8f7971 
> 
> Diff: http://reviews.m5sim.org/r/739/diff
> 
> 
> Testing
> ---
> 
> 
> Thanks,
> 
> Korey
> 
>

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


Re: [gem5-dev] Review Request: sparc: init. cache state in TLB

2011-06-08 Thread Ali Saidi

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/739/#review1305
---

Ship it!


- Ali


On 2011-06-08 22:48:14, Korey Sewell wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/739/
> ---
> 
> (Updated 2011-06-08 22:48:14)
> 
> 
> Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
> Nathan Binkert.
> 
> 
> Summary
> ---
> 
> sparc: init. cache state in TLB
> valgrind complains and its a potential source of instability, so go ahead
> and set it to 0 to start
> 
> 
> Diffs
> -
> 
>   src/arch/sparc/tlb.cc 77d12d8f7971 
> 
> Diff: http://reviews.m5sim.org/r/739/diff
> 
> 
> Testing
> ---
> 
> 
> Thanks,
> 
> Korey
> 
>

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


[gem5-dev] Review Request: alpha: make hwrei a control inst

2011-06-08 Thread Korey Sewell

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/740/
---

Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and Nathan 
Binkert.


Summary
---

alpha: make hwrei a control inst
this always changes the PC and is basically an impromptu branch instruction. why
not speculate on this instead of always be forced to mispredict/squash after the
hwrei gets resolved?

The InOrder model needs this marked as "isControl" so it knows to update the PC
after the ALU executes it. If this isnt marked as control, then it's going to
force the model to check the PC of every instruction at commit (what O3 does?),
and that would be a wasteful check for a very high percentage of instructions.


Diffs
-

  src/arch/alpha/isa/decoder.isa 77d12d8f7971 

Diff: http://reviews.m5sim.org/r/740/diff


Testing
---


Thanks,

Korey

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


[gem5-dev] Review Request: alpha: naming for dtb faults

2011-06-08 Thread Korey Sewell

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/741/
---

Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and Nathan 
Binkert.


Summary
---

alpha: naming for dtb faults
Just "dfault" gets confusing while debugging. Why not
differentiate whether it's an access violation or page
fault


Diffs
-

  src/arch/alpha/faults.cc 77d12d8f7971 

Diff: http://reviews.m5sim.org/r/741/diff


Testing
---


Thanks,

Korey

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


[gem5-dev] Review Request: inorder/dtb: make sure DTB translate correct address

2011-06-08 Thread Korey Sewell

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/743/
---

Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and Nathan 
Binkert.


Summary
---

inorder/dtb: make sure DTB translate correct address
The DTB expects the correct PC in the ThreadContext
but how if the memory accesses are speculative? Shouldn't
we send along the requestor's PC to the translate functions?


Diffs
-

  src/cpu/inorder/resources/cache_unit.cc 77d12d8f7971 

Diff: http://reviews.m5sim.org/r/743/diff


Testing
---


Thanks,

Korey

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