fs.py (3230:e86a03911728) fs.py (3304:c5917aeb8e2f)
1# Copyright (c) 2006 The Regents of The University of Michigan
2# All rights reserved.
3#
4# Redistribution and use in source and binary forms, with or without
5# modification, are permitted provided that the following conditions are
6# met: redistributions of source code must retain the above copyright
7# notice, this list of conditions and the following disclaimer;
8# redistributions in binary form must reproduce the above copyright

--- 50 unchanged lines hidden (view full) ---

59 help="restore from checkpoint <N>")
60
61(options, args) = parser.parse_args()
62
63if args:
64 print "Error: script doesn't take any positional arguments"
65 sys.exit(1)
66
1# Copyright (c) 2006 The Regents of The University of Michigan
2# All rights reserved.
3#
4# Redistribution and use in source and binary forms, with or without
5# modification, are permitted provided that the following conditions are
6# met: redistributions of source code must retain the above copyright
7# notice, this list of conditions and the following disclaimer;
8# redistributions in binary form must reproduce the above copyright

--- 50 unchanged lines hidden (view full) ---

59 help="restore from checkpoint <N>")
60
61(options, args) = parser.parse_args()
62
63if args:
64 print "Error: script doesn't take any positional arguments"
65 sys.exit(1)
66
67# client system CPU is always simple... note this is an assignment of
68# a class, not an instance.
69ClientCPUClass = AtomicSimpleCPU
70client_mem_mode = 'atomic'
71
67if options.detailed:
72if options.detailed:
68 cpu = DerivO3CPU()
69 cpu2 = DerivO3CPU()
70 mem_mode = 'timing'
73 ServerCPUClass = DerivO3CPU
74 server_mem_mode = 'timing'
71elif options.timing:
75elif options.timing:
72 cpu = TimingSimpleCPU()
73 cpu2 = TimingSimpleCPU()
74 mem_mode = 'timing'
76 ServerCPUClass = TimingSimpleCPU
77 server_mem_mode = 'timing'
75else:
78else:
76 cpu = AtomicSimpleCPU()
77 cpu2 = AtomicSimpleCPU()
78 mem_mode = 'atomic'
79 ServerCPUClass = AtomicSimpleCPU
80 server_mem_mode = 'atomic'
79
81
80cpu.clock = '2GHz'
81cpu2.clock = '2GHz'
82cpu.cpu_id = 0
83cpu2.cpu_id = 0
82ServerCPUClass.clock = '2GHz'
83ClientCPUClass.clock = '2GHz'
84
85if options.benchmark:
84
85if options.benchmark:
86 if options.benchmark not in Benchmarks:
86 try:
87 bm = Benchmarks[options.benchmark]
88 except KeyError:
87 print "Error benchmark %s has not been defined." % options.benchmark
88 print "Valid benchmarks are: %s" % DefinedBenchmarks
89 sys.exit(1)
89 print "Error benchmark %s has not been defined." % options.benchmark
90 print "Valid benchmarks are: %s" % DefinedBenchmarks
91 sys.exit(1)
90
91 bm = Benchmarks[options.benchmark]
92else:
93 if options.dual:
92else:
93 if options.dual:
94 bm = [Machine(), Machine()]
94 bm = [SysConfig(), SysConfig()]
95 else:
95 else:
96 bm = [Machine()]
96 bm = [SysConfig()]
97
97
98server_sys = makeLinuxAlphaSystem(server_mem_mode, bm[0])
99server_sys.cpu = ServerCPUClass(cpu_id=0)
100server_sys.cpu.connectMemPorts(server_sys.membus)
101server_sys.cpu.mem = server_sys.physmem
102
98if len(bm) == 2:
103if len(bm) == 2:
99 s1 = makeLinuxAlphaSystem(mem_mode, bm[0])
100 s1.cpu = cpu
101 cpu.connectMemPorts(s1.membus)
102 cpu.mem = s1.physmem
103 s2 = makeLinuxAlphaSystem(mem_mode, bm[1])
104 s2.cpu = cpu2
105 cpu2.connectMemPorts(s2.membus)
106 cpu2.mem = s2.physmem
107 root = makeDualRoot(s1, s2, options.etherdump)
104 client_sys = makeLinuxAlphaSystem(client_mem_mode, bm[1])
105 client_sys.cpu = ClientCPUClass(cpu_id=0)
106 client_sys.cpu.connectMemPorts(client_sys.membus)
107 client_sys.cpu.mem = client_sys.physmem
108 root = makeDualRoot(server_sys, client_sys, options.etherdump)
108elif len(bm) == 1:
109elif len(bm) == 1:
109 root = Root(clock = '1THz',
110 system = makeLinuxAlphaSystem(mem_mode, bm[0]))
111 root.system.cpu = cpu
112 cpu.connectMemPorts(root.system.membus)
113 cpu.mem = root.system.physmem
110 root = Root(clock = '1THz', system = server_sys)
114else:
115 print "Error I don't know how to create more than 2 systems."
116 sys.exit(1)
117
118m5.instantiate(root)
119
120if options.checkpoint:
121 from os.path import isdir

--- 46 unchanged lines hidden ---
111else:
112 print "Error I don't know how to create more than 2 systems."
113 sys.exit(1)
114
115m5.instantiate(root)
116
117if options.checkpoint:
118 from os.path import isdir

--- 46 unchanged lines hidden ---