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 --- |