Polina,

Please be very careful when you update files.  This update changed the
license text on a bunch of files. Please put the license text back the
way it was.  If there are other licenses you changed in other commits,
can you please fix those as well?

  Nate

On Thu, Jul 16, 2009 at 1:38 PM, <pdud...@gmail.com> wrote:
> changeset bd813379f121 in /z/repo/m5
> details: http://repo.m5sim.org/m5?cmd=changeset;node=bd813379f121
> description:
>        Tester update
>
> diffstat:
>
> 25 files changed, 1145 insertions(+), 969 deletions(-)
> src/mem/ruby/common/Driver.hh                    |   17 -
> src/mem/ruby/tester/DetermGETXGenerator.cc       |  120 +++++++++----
> src/mem/ruby/tester/DetermGETXGenerator.hh       |   92 ++++++---
> src/mem/ruby/tester/DetermInvGenerator.cc        |  102 +++++++----
> src/mem/ruby/tester/DetermInvGenerator.hh        |   91 ++++++---
> src/mem/ruby/tester/DetermSeriesGETSGenerator.cc |   91 ++++++---
> src/mem/ruby/tester/DetermSeriesGETSGenerator.hh |   90 ++++++---
> src/mem/ruby/tester/DeterministicDriver.cc       |  109 +++++++----
> src/mem/ruby/tester/DeterministicDriver.hh       |  102 +++++++----
> src/mem/ruby/tester/Driver_Tester.cc             |   44 ----
> src/mem/ruby/tester/Driver_Tester.hh             |   82 --------
> src/mem/ruby/tester/EventQueue_Tester.hh         |  118 ------------
> src/mem/ruby/tester/Global_Tester.hh             |   74 --------
> src/mem/ruby/tester/RaceyDriver.cc               |   87 ++++++---
> src/mem/ruby/tester/RaceyDriver.hh               |   92 ++++++---
> src/mem/ruby/tester/RaceyPseudoThread.cc         |   67 +++----
> src/mem/ruby/tester/RaceyPseudoThread.hh         |   49 ++---
> src/mem/ruby/tester/SpecifiedGenerator.cc        |   79 +++++---
> src/mem/ruby/tester/SpecifiedGenerator.hh        |   88 ++++++---
> src/mem/ruby/tester/Tester_Globals.hh            |   66 +++++++
> src/mem/ruby/tester/main.cc                      |   79 +++++---
> src/mem/ruby/tester/main.hh                      |   84 ++++++---
> src/mem/ruby/tester/test_framework.cc            |  203 +++++++++++-----------
> src/mem/ruby/tester/test_framework.hh            |   84 ++++++---
> src/mem/rubymem.cc                               |    4
>
> diffs (truncated from 3057 to 300 lines):
>
> diff -r ceb2e719e36c -r bd813379f121 src/mem/ruby/common/Driver.hh
> --- a/src/mem/ruby/common/Driver.hh     Mon Jul 13 18:39:32 2009 -0500
> +++ b/src/mem/ruby/common/Driver.hh     Wed Jul 15 10:46:22 2009 -0500
> @@ -40,13 +40,8 @@
>  #include "mem/ruby/common/Global.hh"
>  #include "mem/ruby/common/Consumer.hh"
>  #include "mem/ruby/system/NodeID.hh"
> -#include "mem/protocol/CacheRequestType.hh"
> +#include "mem/ruby/common/Address.hh"
>
> -class RubySystem;
> -class SubBlock;
> -class Address;
> -class MachineID;
> -class SimicsHypervisor;
>
>  class Driver {
>  public:
> @@ -58,15 +53,12 @@
>
>   // Public Methods
>   virtual void get_network_config() {}
> -  virtual void dmaHitCallback() = 0;
> -  virtual void hitCallback(NodeID proc, SubBlock& data, CacheRequestType 
> type, int thread) = 0; // Called by sequencer
> -  virtual void conflictCallback(NodeID proc, SubBlock& data, 
> CacheRequestType type, int thread) { assert(0); }; // Called by sequencer
> +  virtual void dmaHitCallback() {};
> +  virtual void hitCallback(int64_t id) = 0; // Called by sequencer
> +  virtual void go() = 0;
>   virtual integer_t getInstructionCount(int procID) const { return 1; }
>   virtual integer_t getCycleCount(int procID) const { return 1; }
>   virtual void addThreadDependency(int procID, int requestor_thread, int 
> conflict_thread) const { assert(0);}
> -  virtual int inTransaction(int procID, int thread ) const{
> -    cout << "Driver.hh inTransaction " << endl;
> -return false; } //called by Sequencer
>   virtual void printDebug(){}  //called by Sequencer
>
>   virtual void printStats(ostream& out) const = 0;
> @@ -74,7 +66,6 @@
>
>   virtual void printConfig(ostream& out) const = 0;
>
> -  //virtual void abortCallback(NodeID proc){}
>
>   virtual integer_t readPhysicalMemory(int procID, physical_address_t address,
>                                        int len ){ ASSERT(0); return 0; }
> diff -r ceb2e719e36c -r bd813379f121 
> src/mem/ruby/tester/DetermGETXGenerator.cc
> --- a/src/mem/ruby/tester/DetermGETXGenerator.cc        Mon Jul 13 18:39:32 
> 2009 -0500
> +++ b/src/mem/ruby/tester/DetermGETXGenerator.cc        Wed Jul 15 10:46:22 
> 2009 -0500
> @@ -1,31 +1,58 @@
>
>  /*
> - * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
> - * All rights reserved.
> - *
> - * Redistribution and use in source and binary forms, with or without
> - * modification, are permitted provided that the following conditions are
> - * met: redistributions of source code must retain the above copyright
> - * notice, this list of conditions and the following disclaimer;
> - * redistributions in binary form must reproduce the above copyright
> - * notice, this list of conditions and the following disclaimer in the
> - * documentation and/or other materials provided with the distribution;
> - * neither the name of the copyright holders nor the names of its
> - * contributors may be used to endorse or promote products derived from
> - * this software without specific prior written permission.
> - *
> - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
> - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
> - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
> - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
> - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
> - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
> - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
> - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> - */
> +    Copyright (C) 1999-2008 by Mark D. Hill and David A. Wood for the
> +    Wisconsin Multifacet Project.  Contact: g...@cs.wisc.edu
> +    http://www.cs.wisc.edu/gems/
> +
> +    --------------------------------------------------------------------
> +
> +    This file is part of the Ruby Multiprocessor Memory System Simulator,
> +    a component of the Multifacet GEMS (General Execution-driven
> +    Multiprocessor Simulator) software toolset originally developed at
> +    the University of Wisconsin-Madison.
> +
> +    Ruby was originally developed primarily by Milo Martin and Daniel
> +    Sorin with contributions from Ross Dickson, Carl Mauer, and Manoj
> +    Plakal.
> +
> +    Substantial further development of Multifacet GEMS at the
> +    University of Wisconsin was performed by Alaa Alameldeen, Brad
> +    Beckmann, Jayaram Bobba, Ross Dickson, Dan Gibson, Pacia Harper,
> +    Derek Hower, Milo Martin, Michael Marty, Carl Mauer, Michelle Moravan,
> +    Kevin Moore, Andrew Phelps, Manoj Plakal, Daniel Sorin, Haris Volos,
> +    Min Xu, and Luke Yen.
> +    --------------------------------------------------------------------
> +
> +    If your use of this software contributes to a published paper, we
> +    request that you (1) cite our summary paper that appears on our
> +    website (http://www.cs.wisc.edu/gems/) and (2) e-mail a citation
> +    for your published paper to g...@cs.wisc.edu.
> +
> +    If you redistribute derivatives of this software, we request that
> +    you notify us and either (1) ask people to register with us at our
> +    website (http://www.cs.wisc.edu/gems/) or (2) collect registration
> +    information and periodically send it to us.
> +
> +    --------------------------------------------------------------------
> +
> +    Multifacet GEMS is free software; you can redistribute it and/or
> +    modify it under the terms of version 2 of the GNU General Public
> +    License as published by the Free Software Foundation.
> +
> +    Multifacet GEMS is distributed in the hope that it will be useful,
> +    but WITHOUT ANY WARRANTY; without even the implied warranty of
> +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> +    General Public License for more details.
> +
> +    You should have received a copy of the GNU General Public License
> +    along with the Multifacet GEMS; if not, write to the Free Software
> +    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
> +    02111-1307, USA
> +
> +    The GNU General Public License is contained in the file LICENSE.
> +
> +### END HEADER ###
> +*/
>
>  /*
>  * $Id$
> @@ -38,7 +65,8 @@
>  #include "mem/ruby/tester/DetermGETXGenerator.hh"
>  #include "mem/protocol/DetermGETXGeneratorStatus.hh"
>  #include "mem/ruby/tester/DeterministicDriver.hh"
> -#include "mem/ruby/tester/Global_Tester.hh"
> +#include "mem/ruby/tester/Tester_Globals.hh"
> +#include "mem/ruby/common/Global.hh"
>  #include "mem/ruby/tester/SpecifiedGenerator.hh"
>  //#include "DMAController.hh"
>  #include "mem/ruby/libruby.hh"
> @@ -48,9 +76,11 @@
>  {
>   m_status = DetermGETXGeneratorStatus_Thinking;
>   m_last_transition = 0;
> +  counter = 0;
>   m_node = node;
> -  m_address = Address(9999);  // initialize to null value
> +  m_address = Address(1);  // initialize to null value
>   m_counter = 0;
> +  issued_load = false;
>   parent_driver = driver;
>   // don't know exactly when this node needs to request so just guess randomly
>   parent_driver->eventQueue->scheduleEvent(this, 1+(random() % 200));
> @@ -68,7 +98,9 @@
>   // determine if this node is next for the GETX round robin request
>   if (m_status == DetermGETXGeneratorStatus_Thinking) {
>     if (parent_driver->isStoreReady(m_node)) {
> -      pickAddress();
> +      if (!issued_load) {
> +        pickAddress();
> +      }
>       m_status = DetermGETXGeneratorStatus_Store_Pending;  // Store Pending
>       m_last_transition = parent_driver->eventQueue->getTime();
>       initiateStore();  // GETX
> @@ -85,13 +117,13 @@
>  void DetermGETXGenerator::performCallback(NodeID proc, Address address)
>  {
>   assert(proc == m_node);
> -  assert(address == m_address);
> +  assert(address == m_address);
>
>   DEBUG_EXPR(TESTER_COMP, LowPrio, proc);
>   DEBUG_EXPR(TESTER_COMP, LowPrio, m_status);
>   DEBUG_EXPR(TESTER_COMP, LowPrio, address);
>
> -  if (m_status == DetermGETXGeneratorStatus_Store_Pending) {
> +  if (m_status == DetermGETXGeneratorStatus_Store_Pending) {
>     parent_driver->recordStoreLatency(parent_driver->eventQueue->getTime() - 
> m_last_transition);
>     parent_driver->storeCompleted(m_node, address);  // advance the store 
> queue
>
> @@ -104,7 +136,7 @@
>       parent_driver->reportDone();
>       m_status = DetermGETXGeneratorStatus_Done;
>       m_last_transition = parent_driver->eventQueue->getTime();
> -    }
> +    }
>
>   } else {
>     WARN_EXPR(m_status);
> @@ -132,7 +164,6 @@
>  void DetermGETXGenerator::initiateStore()
>  {
>   DEBUG_MSG(TESTER_COMP, MedPrio, "initiating Store");
> -
>   uint8_t *write_data = new uint8_t[64];
>   for(int i=0; i < 64; i++) {
>       write_data[i] = m_node;
> @@ -141,12 +172,29 @@
>   char name [] = "Sequencer_";
>   char port_name [13];
>   sprintf(port_name, "%s%d", name, m_node);
> -
> -  int64_t request_id = 
> libruby_issue_request(libruby_get_port_by_name(port_name), 
> RubyRequest(m_address.getAddress(), write_data, 64, 0, RubyRequestType_ST, 
> RubyAccessMode_Supervisor));
> +  int64_t request_id;
> +  if (counter%10 == 0) {
> +    if (!issued_load) {
> +      cerr << m_node << " RMW_Read to address: " << m_address.getAddress() 
> << endl << flush;
> +      request_id = 
> libruby_issue_request(libruby_get_port_by_name(port_name), 
> RubyRequest(m_address.getAddress(), write_data, 64, 0, 
> RubyRequestType_RMW_Read, RubyAccessMode_Supervisor));
> +      issued_load = true;
> +    }
> +    else {
> +      cerr << m_node << " RMW_Write to address: " << m_address.getAddress() 
> << endl << flush;
> +      request_id = 
> libruby_issue_request(libruby_get_port_by_name(port_name), 
> RubyRequest(m_address.getAddress(), write_data, 64, 0, 
> RubyRequestType_RMW_Write, RubyAccessMode_Supervisor));
> +      issued_load = false;
> +      counter++;
> +    }
> +  }
> +  else {
> +      cerr << m_node << " ST to address: " << m_address.getAddress() << endl 
> << flush;
> +      request_id = 
> libruby_issue_request(libruby_get_port_by_name(port_name), 
> RubyRequest(m_address.getAddress(), write_data, 64, 0, RubyRequestType_ST, 
> RubyAccessMode_Supervisor));
> +      counter++;
> +  }
>
>   // delete [] write_data;
>
> -  ASSERT(parent_driver->requests.find(request_id) == 
> parent_driver->requests.end());
> +  ASSERT(parent_driver->requests.find(request_id) == 
> parent_driver->requests.end());
>   parent_driver->requests.insert(make_pair(request_id, make_pair(m_node, 
> m_address)));
>  }
>
> diff -r ceb2e719e36c -r bd813379f121 
> src/mem/ruby/tester/DetermGETXGenerator.hh
> --- a/src/mem/ruby/tester/DetermGETXGenerator.hh        Mon Jul 13 18:39:32 
> 2009 -0500
> +++ b/src/mem/ruby/tester/DetermGETXGenerator.hh        Wed Jul 15 10:46:22 
> 2009 -0500
> @@ -1,36 +1,63 @@
>
>  /*
> - * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
> - * All rights reserved.
> - *
> - * Redistribution and use in source and binary forms, with or without
> - * modification, are permitted provided that the following conditions are
> - * met: redistributions of source code must retain the above copyright
> - * notice, this list of conditions and the following disclaimer;
> - * redistributions in binary form must reproduce the above copyright
> - * notice, this list of conditions and the following disclaimer in the
> - * documentation and/or other materials provided with the distribution;
> - * neither the name of the copyright holders nor the names of its
> - * contributors may be used to endorse or promote products derived from
> - * this software without specific prior written permission.
> - *
> - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
> - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
> - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
> - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
> - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
> - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
> - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
> - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> - */
> +    Copyright (C) 1999-2008 by Mark D. Hill and David A. Wood for the
> +    Wisconsin Multifacet Project.  Contact: g...@cs.wisc.edu
> +    http://www.cs.wisc.edu/gems/
> +
> +    --------------------------------------------------------------------
> +
> +    This file is part of the Ruby Multiprocessor Memory System Simulator,
> +    a component of the Multifacet GEMS (General Execution-driven
> +    Multiprocessor Simulator) software toolset originally developed at
> +    the University of Wisconsin-Madison.
> +
> +    Ruby was originally developed primarily by Milo Martin and Daniel
> +    Sorin with contributions from Ross Dickson, Carl Mauer, and Manoj
> +    Plakal.
> +
> +    Substantial further development of Multifacet GEMS at the
> +    University of Wisconsin was performed by Alaa Alameldeen, Brad
> +    Beckmann, Jayaram Bobba, Ross Dickson, Dan Gibson, Pacia Harper,
> +    Derek Hower, Milo Martin, Michael Marty, Carl Mauer, Michelle Moravan,
> +    Kevin Moore, Andrew Phelps, Manoj Plakal, Daniel Sorin, Haris Volos,
> +    Min Xu, and Luke Yen.
> +    --------------------------------------------------------------------
> +
> +    If your use of this software contributes to a published paper, we
> +    request that you (1) cite our summary paper that appears on our
> +    website (http://www.cs.wisc.edu/gems/) and (2) e-mail a citation
> +    for your published paper to g...@cs.wisc.edu.
> +
> +    If you redistribute derivatives of this software, we request that
> +    you notify us and either (1) ask people to register with us at our
> +    website (http://www.cs.wisc.edu/gems/) or (2) collect registration
> +    information and periodically send it to us.
> +
> +    --------------------------------------------------------------------
> +
> _______________________________________________
> m5-dev mailing list
> m5-dev@m5sim.org
> http://m5sim.org/mailman/listinfo/m5-dev
>
>
_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to