Thanks for heads up Gabe.  Yep I missed that.

It turns out there a few things currently broken with the ruby config scripts.  
I'll be pushing some changes momentarily.

Brad


> -----Original Message-----
> From: m5-dev-boun...@m5sim.org [mailto:m5-dev-boun...@m5sim.org] On
> Behalf Of Gabe Black
> Sent: Friday, August 20, 2010 6:06 PM
> To: M5 Developer List
> Subject: Re: [m5-dev] changeset in m5: ruby: Resurrected Ruby's
> deterministic tests
>
> I'm glad to see you went with the name directedtest, but weren't you
> going to put that and the current memtest into a common directory?
> Also,
> your config script name is still determ_test.py. Maybe
> directed_ruby_test.py?
>
> Brad Beckmann wrote:
> > changeset fcdd99057b8a in /z/repo/m5
> > details: http://repo.m5sim.org/m5?cmd=changeset;node=fcdd99057b8a
> > description:
> >     ruby: Resurrected Ruby's deterministic tests
> >
> >     Added the request series and invalidate deterministic tests as
> new cpu models
> >     and removed the no longer needed ruby tests
> >
> > diffstat:
> >
> >  configs/example/determ_test.py                   |  126
> +++++++++++++
> >  src/cpu/directedtest/DirectedGenerator.cc        |   44 ++++
> >  src/cpu/directedtest/DirectedGenerator.hh        |   56 +++++
> >  src/cpu/directedtest/InvalidateGenerator.cc      |  142
> ++++++++++++++
> >  src/cpu/directedtest/InvalidateGenerator.hh      |   63 ++++++
> >  src/cpu/directedtest/RubyDirectedTester.cc       |  136
> ++++++++++++++
> >  src/cpu/directedtest/RubyDirectedTester.hh       |  118 ++++++++++++
> >  src/cpu/directedtest/RubyDirectedTester.py       |   52 +++++
> >  src/cpu/directedtest/SConscript                  |   48 +++++
> >  src/cpu/directedtest/SeriesRequestGenerator.cc   |  114 +++++++++++
> >  src/cpu/directedtest/SeriesRequestGenerator.hh   |   63 ++++++
> >  src/mem/protocol/RubySlicc_Exports.sm            |   45 +---
> >  src/mem/ruby/tester/DetermGETXGenerator.cc       |  176 ------------
> ------
> >  src/mem/ruby/tester/DetermGETXGenerator.hh       |  105 ----------
> >  src/mem/ruby/tester/DetermInvGenerator.cc        |  220 ------------
> -----------
> >  src/mem/ruby/tester/DetermInvGenerator.hh        |  105 ----------
> >  src/mem/ruby/tester/DetermSeriesGETSGenerator.cc |  150 ------------
> ---
> >  src/mem/ruby/tester/DetermSeriesGETSGenerator.hh |  102 ----------
> >  src/mem/ruby/tester/SConscript                   |    4 -
> >  19 files changed, 971 insertions(+), 898 deletions(-)
> >
> > diffs (truncated from 1960 to 300 lines):
> >
> > diff -r 2e4786ed3f90 -r fcdd99057b8a configs/example/determ_test.py
> > --- /dev/null       Thu Jan 01 00:00:00 1970 +0000
> > +++ b/configs/example/determ_test.py        Fri Aug 20 11:46:13 2010 -
> 0700
> > @@ -0,0 +1,126 @@
> > +# Copyright (c) 2006-2007 The Regents of The University of Michigan
> > +# Copyright (c) 2009 Advanced Micro Devices, Inc.
> > +# 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.
> > +#
> > +# Authors: Ron Dreslinski
> > +#          Brad Beckmann
> > +
> > +import m5
> > +from m5.objects import *
> > +from m5.defines import buildEnv
> > +from m5.util import addToPath
> > +import os, optparse, sys
> > +addToPath('../common')
> > +addToPath('../ruby')
> > +
> > +import Ruby
> > +
> > +if buildEnv['FULL_SYSTEM']:
> > +    panic("This script requires system-emulation mode (*_SE).")
> > +
> > +# Get paths we might need.  It's expected this file is in
> m5/configs/example.
> > +config_path = os.path.dirname(os.path.abspath(__file__))
> > +config_root = os.path.dirname(config_path)
> > +m5_root = os.path.dirname(config_root)
> > +
> > +parser = optparse.OptionParser()
> > +
> > +parser.add_option("-l", "--requests", metavar="N", default=100,
> > +                  help="Stop after N requests")
> > +parser.add_option("-f", "--wakeup_freq", metavar="N", default=10,
> > +                  help="Wakeup every N cycles")
> > +parser.add_option("--test-type", type="string",
> default="SeriesGetx",
> > +                  help="SeriesGetx|SeriesGets|Invalidate")
> > +
> > +#
> > +# Add the ruby specific and protocol specific options
> > +#
> > +Ruby.define_options(parser)
> > +
> > +execfile(os.path.join(config_root, "common", "Options.py"))
> > +
> > +(options, args) = parser.parse_args()
> > +
> > +if args:
> > +     print "Error: script doesn't take any positional arguments"
> > +     sys.exit(1)
> > +
> > +#
> > +# Select the directed generator
> > +#
> > +if options.test_type == "SeriesGetx":
> > +    generator = SeriesRequestGenerator(num_cpus = options.num_cpus,
> > +                                             issue_writes = True)
> > +elif options.test_type == "SeriesGets":
> > +    generator = SeriesRequestGenerator(num_cpus = options.num_cpus,
> > +                                             issue_writes = False)
> > +elif options.test_type == "Invalidate":
> > +    generator = InvalidateGenerator(num_cpus = options.num_cpus)
> > +else:
> > +    print "Error: unknown directed generator"
> > +    sys.exit(1)
> > +
> > +#
> > +# Create the M5 system.  Note that the PhysicalMemory Object isn't
> > +# actually used by the rubytester, but is included to support the
> > +# M5 memory size == Ruby memory size checks
> > +#
> > +system = System(physmem = PhysicalMemory())
> > +
> > +#
> > +# Create the ruby random tester
> > +#
> > +system.tester = RubyDirectedTester(requests_to_complete = \
> > +                                   options.requests,
> > +                                 generator = generator)
> > +
> > +system.ruby = Ruby.create_system(options, system)
> > +
> > +assert(options.num_cpus == len(system.ruby.cpu_ruby_ports))
> > +
> > +for ruby_port in system.ruby.cpu_ruby_ports:
> > +    #
> > +    # Tie the ruby tester ports to the ruby cpu ports
> > +    #
> > +    system.tester.cpuPort = ruby_port.port
> > +
> > +# -----------------------
> > +# run simulation
> > +# -----------------------
> > +
> > +root = Root( system = system )
> > +root.system.mem_mode = 'timing'
> > +
> > +# Not much point in this being higher than the L1 latency
> > +m5.ticks.setGlobalFrequency('1ns')
> > +
> > +# instantiate configuration
> > +m5.instantiate()
> > +
> > +# simulate until program terminates
> > +exit_event = m5.simulate(options.maxtick)
> > +
> > +print 'Exiting @ tick', m5.curTick(), 'because',
> exit_event.getCause()
> > diff -r 2e4786ed3f90 -r fcdd99057b8a
> src/cpu/directedtest/DirectedGenerator.cc
> > --- /dev/null       Thu Jan 01 00:00:00 1970 +0000
> > +++ b/src/cpu/directedtest/DirectedGenerator.cc     Fri Aug 20
> 11:46:13 2010 -0700
> > @@ -0,0 +1,44 @@
> > +/*
> > + * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
> > + * Copyright (c) 2009-2010 Advanced Micro Devices, Inc.
> > + * 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.
> > + */
> > +
> > +#include "cpu/directedtest/DirectedGenerator.hh"
> > +
> > +DirectedGenerator::DirectedGenerator(const Params *p)
> > +    : SimObject(p)
> > +{
> > +    m_num_cpus = p->num_cpus;
> > +    m_directed_tester = NULL;
> > +}
> > +
> > +void
> > +DirectedGenerator::setDirectedTester(RubyDirectedTester*
> directed_tester)
> > +{
> > +    assert(m_directed_tester == NULL);
> > +    m_directed_tester = directed_tester;
> > +}
> > diff -r 2e4786ed3f90 -r fcdd99057b8a
> src/cpu/directedtest/DirectedGenerator.hh
> > --- /dev/null       Thu Jan 01 00:00:00 1970 +0000
> > +++ b/src/cpu/directedtest/DirectedGenerator.hh     Fri Aug 20
> 11:46:13 2010 -0700
> > @@ -0,0 +1,56 @@
> > +/*
> > + * 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.
> > + */
> > +
> > +#ifndef __CPU_DIRECTEDTEST_DIRECTEDGENERATOR_HH__
> > +#define __CPU_DIRECTEDTEST_DIRECTEDGENERATOR_HH__
> > +
> > +#include "cpu/directedtest/DirectedGenerator.hh"
> > +#include "cpu/directedtest/RubyDirectedTester.hh"
> > +#include "params/DirectedGenerator.hh"
> > +#include "sim/sim_object.hh"
> > +
> > +class DirectedGenerator : public SimObject
> > +{
> > +  public:
> > +    typedef DirectedGeneratorParams Params;
> > +    DirectedGenerator(const Params *p);
> > +
> > +    virtual ~DirectedGenerator() {}
> > +
> > +    virtual bool initiate() = 0;
> > +    virtual void performCallback(uint proc, Addr address) = 0;
> > +
> > +    void setDirectedTester(RubyDirectedTester* directed_tester);
> > +
> > +  protected:
> > +    int m_num_cpus;
> > +    RubyDirectedTester* m_directed_tester;
> > +};
> > +
> > +#endif //__CPU_DIRECTEDTEST_DIRECTEDGENERATOR_HH__
> > +
> > diff -r 2e4786ed3f90 -r fcdd99057b8a
> src/cpu/directedtest/InvalidateGenerator.cc
> > --- /dev/null       Thu Jan 01 00:00:00 1970 +0000
> > +++ b/src/cpu/directedtest/InvalidateGenerator.cc   Fri Aug 20
> 11:46:13 2010 -0700
> > @@ -0,0 +1,142 @@
> > +/*
> > + * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
> > + * Copyright (c) 2009-2010 Advanced Micro Devices, Inc.
> > + * 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.
> > + */
> > +
> > +#include "cpu/directedtest/RubyDirectedTester.hh"
> > +#include "cpu/directedtest/DirectedGenerator.hh"
> > +#include "cpu/directedtest/InvalidateGenerator.hh"
> > +
> > +InvalidateGenerator::InvalidateGenerator(const Params *p)
> > +    : DirectedGenerator(p)
> > +{
> > +    //
> > +    // First, issue loads to bring the block into S state
> > +    //
> > +    m_status = InvalidateGeneratorStatus_Load_Waiting;
> > +    m_active_read_node = 0;
> > +    m_active_inv_node = 0;
> > +    m_address = 0x0;
> > +    m_addr_increment_size = p->addr_increment_size;
> > +}
> > +
> > +InvalidateGenerator::~InvalidateGenerator()
> > +{
> > +}
> > +
> > +bool
> > +InvalidateGenerator::initiate()
> > +{
> > +    RubyDirectedTester::CpuPort* port;
> > +    Request::Flags flags;
> > +    PacketPtr pkt;
> > +    Packet::Command cmd;
> > +
> > _______________________________________________
> > m5-dev mailing list
> > m5-dev@m5sim.org
> > http://m5sim.org/mailman/listinfo/m5-dev
> >
>
> _______________________________________________
> m5-dev mailing list
> m5-dev@m5sim.org
> http://m5sim.org/mailman/listinfo/m5-dev


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

Reply via email to