Hi
To run a multiprogram simulation in SE mode, I changed cmp.py to this:

process = []
benchmarks = options.benchmark.split(',')
for bench_name in benchmarks:
        process.append(bench_name)

instead of "if elif else", I wrote the above code. So in the command
line I pass wokloads like this:

-b b1,b2,b3,b4

Problem is in this part of code:
for i in xrange(np):
    print "i=", i , "and process=", process[i]
    if options.caches:
        system.cpu[i].addPrivateSplitL1Caches(L1Cache(size = '64kB'),
                                              L1Cache(size = '64kB'))
    if options.l2cache:
        system.l2 = L2Cache()
        system.tol2bus = Bus()
        system.l2.cpu_side = system.tol2bus.port
        system.l2.mem_side = system.membus.port
        system.cpu[i].connectAllPorts(system.tol2bus)
    else:
        system.cpu[i].connectAllPorts(system.membus)
    system.cpu[i].workload = process[i]

I get this error:
  File "configs/example/cmp.py", line 82, in <module>
    system.cpu[i].workload = process[i]
  File "/home/mahmood/gem5/src/python/m5/SimObject.py", line 627, in __setattr__
    value = param.convert(value)
  File "/home/mahmood/gem5/src/python/m5/params.py", line 236, in convert
    tmp_list = [ ParamDesc.convert(self, value) ]
  File "/home/mahmood/gem5/src/python/m5/params.py", line 159, in convert
    return self.ptype(value)
TypeError: __init__() takes exactly 1 argument (2 given)
Error setting param TmpClass.workload to bzip2_chicken


As you can see in the first line of loop, I wrote
    print "i=", i , "and process=", process[i]

and the output shows it works fine:
i= 0 and process= b1

It says there is an error in  gem5/src/python/m5/params.py
An idea is appreciated.

--
// Naderan *Mahmood;
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to