Merge from changes to Memtype and Bustype and Automerge
--HG-- extra : convert_revision : 143fdcc333084c7ba04291e0c299f99566b73cc3
This commit is contained in:
commit
3edc239c13
6 changed files with 90 additions and 20 deletions
|
@ -65,6 +65,7 @@ base_sources = Split('''
|
||||||
base/pollevent.cc
|
base/pollevent.cc
|
||||||
base/python.cc
|
base/python.cc
|
||||||
base/range.cc
|
base/range.cc
|
||||||
|
base/random.cc
|
||||||
base/sat_counter.cc
|
base/sat_counter.cc
|
||||||
base/socket.cc
|
base/socket.cc
|
||||||
base/statistics.cc
|
base/statistics.cc
|
||||||
|
@ -413,12 +414,12 @@ else:
|
||||||
obj_desc_files += syscall_emulation_obj_desc_files
|
obj_desc_files += syscall_emulation_obj_desc_files
|
||||||
|
|
||||||
extra_libraries = []
|
extra_libraries = []
|
||||||
|
env.Append(LIBS=['z'])
|
||||||
if env['USE_MYSQL']:
|
if env['USE_MYSQL']:
|
||||||
sources += mysql_sources
|
sources += mysql_sources
|
||||||
env.Append(CPPDEFINES = 'USE_MYSQL')
|
env.Append(CPPDEFINES = 'USE_MYSQL')
|
||||||
env.Append(CPPDEFINES = 'STATS_BINNING')
|
env.Append(CPPDEFINES = 'STATS_BINNING')
|
||||||
env.Append(CPPPATH=['/usr/local/include/mysql', '/usr/include/mysql'])
|
env.Append(CPPPATH=['/usr/local/include/mysql', '/usr/include/mysql'])
|
||||||
env.Append(LIBS=['z'])
|
|
||||||
if os.path.isdir('/usr/lib64'):
|
if os.path.isdir('/usr/lib64'):
|
||||||
env.Append(LIBPATH=['/usr/lib64/mysql'])
|
env.Append(LIBPATH=['/usr/lib64/mysql'])
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -39,7 +39,7 @@ class RandomContext : public ParamContext
|
||||||
public:
|
public:
|
||||||
RandomContext(const string &_iniSection)
|
RandomContext(const string &_iniSection)
|
||||||
: ::ParamContext(_iniSection) {}
|
: ::ParamContext(_iniSection) {}
|
||||||
~RandomContext();
|
~RandomContext() {}
|
||||||
|
|
||||||
void checkParams();
|
void checkParams();
|
||||||
};
|
};
|
||||||
|
|
|
@ -26,8 +26,8 @@
|
||||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __RANDOM_HH__
|
#ifndef __BASE_RANDOM_HH__
|
||||||
#define __RANDOM_HH__
|
#define __BASE_RANDOM_HH__
|
||||||
|
|
||||||
#include "sim/host.hh"
|
#include "sim/host.hh"
|
||||||
|
|
||||||
|
@ -45,56 +45,56 @@ struct Random<int8_t>
|
||||||
|
|
||||||
struct Random<uint8_t>
|
struct Random<uint8_t>
|
||||||
{
|
{
|
||||||
uint8_t get()
|
static uint8_t get()
|
||||||
{ return getLong() & (uint8_t)-1; }
|
{ return getLong() & (uint8_t)-1; }
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Random<int16_t>
|
struct Random<int16_t>
|
||||||
{
|
{
|
||||||
int16_t get()
|
static int16_t get()
|
||||||
{ return getLong() & (int16_t)-1; }
|
{ return getLong() & (int16_t)-1; }
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Random<uint16_t>
|
struct Random<uint16_t>
|
||||||
{
|
{
|
||||||
uint16_t get()
|
static uint16_t get()
|
||||||
{ return getLong() & (uint16_t)-1; }
|
{ return getLong() & (uint16_t)-1; }
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Random<int32_t>
|
struct Random<int32_t>
|
||||||
{
|
{
|
||||||
int32_t get()
|
static int32_t get()
|
||||||
{ return (int32_t)getLong(); }
|
{ return (int32_t)getLong(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Random<uint32_t>
|
struct Random<uint32_t>
|
||||||
{
|
{
|
||||||
uint32_t get()
|
static uint32_t get()
|
||||||
{ return (uint32_t)getLong(); }
|
{ return (uint32_t)getLong(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Random<int64_t>
|
struct Random<int64_t>
|
||||||
{
|
{
|
||||||
int64_t get()
|
static int64_t get()
|
||||||
{ return (int64_t)getLong() << 32 || (uint64_t)getLong(); }
|
{ return (int64_t)getLong() << 32 || (uint64_t)getLong(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Random<uint64_t>
|
struct Random<uint64_t>
|
||||||
{
|
{
|
||||||
uint64_t get()
|
static uint64_t get()
|
||||||
{ return (uint64_t)getLong() << 32 || (uint64_t)getLong(); }
|
{ return (uint64_t)getLong() << 32 || (uint64_t)getLong(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Random<float>
|
struct Random<float>
|
||||||
{
|
{
|
||||||
float get()
|
static float get()
|
||||||
{ return getDouble(); }
|
{ return getDouble(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Random<double>
|
struct Random<double>
|
||||||
{
|
{
|
||||||
double get()
|
static double get()
|
||||||
{ return getDouble(); }
|
{ return getDouble(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // __RANDOM_HH__
|
#endif // __BASE_RANDOM_HH__
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
class BaseInterface;
|
class BaseInterface;
|
||||||
class Bus;
|
class Bus;
|
||||||
class HierParams;
|
class HierParams;
|
||||||
template <class Bus> class DMAInterface;
|
template <class BusType> class DMAInterface;
|
||||||
|
|
||||||
class PioDevice : public FunctionalMemory
|
class PioDevice : public FunctionalMemory
|
||||||
{
|
{
|
||||||
|
|
|
@ -171,7 +171,7 @@ class Database(object):
|
||||||
|
|
||||||
self.query('select * from formulas')
|
self.query('select * from formulas')
|
||||||
for id,formula in self.cursor.fetchall():
|
for id,formula in self.cursor.fetchall():
|
||||||
self.allFormulas[int(id)] = formula
|
self.allFormulas[int(id)] = formula.tostring()
|
||||||
|
|
||||||
StatData.db = self
|
StatData.db = self
|
||||||
self.query('select * from stats')
|
self.query('select * from stats')
|
||||||
|
|
|
@ -39,7 +39,73 @@ def unique(list):
|
||||||
map(set.__setitem__, list, [])
|
map(set.__setitem__, list, [])
|
||||||
return set.keys()
|
return set.keys()
|
||||||
|
|
||||||
|
def graphdata68(runs, options, tag, label, value):
|
||||||
|
import info
|
||||||
|
configs = ['ste', 'hte', 'htd', 'ocm', 'occ', 'ocp' ]
|
||||||
|
benchmarks = [ 'm', 's', 'snt', 'nb1', 'w1', 'w2', 'w3', 'w4', 'nm', 'ns', 'nw1', 'nw2', 'nw3' ]
|
||||||
|
dmas = [ 'x' ]
|
||||||
|
caches = [ '2', '4' ]
|
||||||
|
|
||||||
|
names = []
|
||||||
|
|
||||||
|
bench_system = {
|
||||||
|
'm' : 'client',
|
||||||
|
's' : 'client',
|
||||||
|
'snt' : 'client',
|
||||||
|
'nb1' : 'server',
|
||||||
|
'nb2' : 'server',
|
||||||
|
'nt1' : 'server',
|
||||||
|
'nt2' : 'server',
|
||||||
|
'w1' : 'server',
|
||||||
|
'w2' : 'server',
|
||||||
|
'w3' : 'server',
|
||||||
|
'w4' : 'server',
|
||||||
|
'w1s' : 'server',
|
||||||
|
'w2s' : 'server',
|
||||||
|
'w3s' : 'server',
|
||||||
|
'ns' : 'natbox',
|
||||||
|
'nm' : 'natbox',
|
||||||
|
'nw1' : 'natbox',
|
||||||
|
'nw2' : 'natbox',
|
||||||
|
'nw3' : 'natbox'
|
||||||
|
}
|
||||||
|
|
||||||
|
for bench in benchmarks:
|
||||||
|
if bench_system[bench] != options.system:
|
||||||
|
continue
|
||||||
|
|
||||||
|
for dma in dmas:
|
||||||
|
for cache in caches:
|
||||||
|
names.append([bench, dma, cache])
|
||||||
|
|
||||||
|
for bench,dma,cache in names:
|
||||||
|
base = '%s.%s.%s' % (bench, dma, cache)
|
||||||
|
fname = 'data/%s.%s.68.dat' % (tag, base)
|
||||||
|
f = open(fname, 'w')
|
||||||
|
print >>f, '#set TITLE = '
|
||||||
|
print >>f, '#set ylbl = %s' % label
|
||||||
|
#print >>f, '#set sublabels = %s' % ' '.join(configs)
|
||||||
|
print >>f, '#set sublabels = ste hte htd ocm occ ocs'
|
||||||
|
|
||||||
|
for speed,freq in zip(['s', '6', '8', 'q'],['4GHz', '6GHz','8GHz', '10GHz']):
|
||||||
|
print >>f, '"%s"' % freq,
|
||||||
|
for conf in configs:
|
||||||
|
name = '%s.%s.%s.%s.%s' % (conf, bench, dma, cache, speed)
|
||||||
|
run = info.source.allRunNames[name]
|
||||||
|
info.display_run = run.run;
|
||||||
|
val = float(value)
|
||||||
|
if val == 1e300*1e300:
|
||||||
|
print >>f, 0.0,
|
||||||
|
else:
|
||||||
|
print >>f, "%f" % val,
|
||||||
|
print >>f
|
||||||
|
f.close()
|
||||||
|
|
||||||
def graphdata(runs, options, tag, label, value):
|
def graphdata(runs, options, tag, label, value):
|
||||||
|
if options.graph68:
|
||||||
|
graphdata68(runs, options, tag, label, value)
|
||||||
|
return
|
||||||
|
|
||||||
import info
|
import info
|
||||||
configs = ['ste', 'hte', 'htd', 'ocm', 'occ', 'ocp' ]
|
configs = ['ste', 'hte', 'htd', 'ocm', 'occ', 'ocp' ]
|
||||||
#benchmarks = [ 'm', 's', 'nb1', 'nb2', 'nt1', 'nt2', 'w1', 'w2', 'w3', 'w4', 'ns', 'nm', 'nw1', 'nw2', 'nw3' ]
|
#benchmarks = [ 'm', 's', 'nb1', 'nb2', 'nt1', 'nt2', 'w1', 'w2', 'w3', 'w4', 'ns', 'nm', 'nw1', 'nw2', 'nw3' ]
|
||||||
|
@ -85,10 +151,10 @@ def graphdata(runs, options, tag, label, value):
|
||||||
base = '%s.%s.%s' % (bench, dma, cache)
|
base = '%s.%s.%s' % (bench, dma, cache)
|
||||||
fname = 'data/%s.%s.dat' % (tag, base)
|
fname = 'data/%s.%s.dat' % (tag, base)
|
||||||
f = open(fname, 'w')
|
f = open(fname, 'w')
|
||||||
print >>f, '#set TITLE = %s' % base
|
print >>f, '#set TITLE = '
|
||||||
print >>f, '#set xlbl = Configuration'
|
|
||||||
print >>f, '#set ylbl = %s' % label
|
print >>f, '#set ylbl = %s' % label
|
||||||
print >>f, '#set sublabels = %s' % ' '.join(configs)
|
#print >>f, '#set sublabels = %s' % ' '.join(configs)
|
||||||
|
print >>f, '#set sublabels = ste hte htd ocm occ ocs'
|
||||||
|
|
||||||
for speed,freq in zip(['s', 'q'],['4GHz','10GHz']):
|
for speed,freq in zip(['s', 'q'],['4GHz','10GHz']):
|
||||||
print >>f, '"%s"' % freq,
|
print >>f, '"%s"' % freq,
|
||||||
|
@ -578,9 +644,12 @@ if __name__ == '__main__':
|
||||||
options.get = None
|
options.get = None
|
||||||
options.binned = False
|
options.binned = False
|
||||||
options.graph = False
|
options.graph = False
|
||||||
|
options.graph68 = False
|
||||||
|
|
||||||
opts, args = getopts(sys.argv[1:], '-BEFGd:g:h:pr:s:u:')
|
opts, args = getopts(sys.argv[1:], '-6BEFGd:g:h:pr:s:u:')
|
||||||
for o,a in opts:
|
for o,a in opts:
|
||||||
|
if o == '-6':
|
||||||
|
options.graph68 = True
|
||||||
if o == '-B':
|
if o == '-B':
|
||||||
options.binned = True
|
options.binned = True
|
||||||
if o == '-E':
|
if o == '-E':
|
||||||
|
|
Loading…
Reference in a new issue