max_insts_all_threads doesn't terminate individual threads, it just
terminates the entire simulation once all threads have reached at
least the specified value. Since the threads will progress at
different rates, many of them will be well past that value once the
last thread reaches that point.
I'm not sure why it stopped when cpu1 thread 0 had only 91 committed
instructions when you specified 100 though.
Steve
On Tue, Jun 24, 2008 at 9:22 AM, prannav shrestha <[EMAIL PROTECTED]> wrote:
> hi!!
> I am trying to simulate multicore-multithreading in o3cpu. I am using
> m5-ob3. I want the simulation to terminate exactly after reaching some fixed
> number of instructions. But the problem is not all threads thread terminated
> at same number of instructions. I also tried to solve the problem using the
> patch provided by Korey Swellel. But It gave me the segmentation fault, may
> be because the patch is not for m5-0b3.
>
> Here is the part of my configuration file:
>
>
> CPUClass.clock = '2GHz'
>
> np = 2
>
> system = System(cpu = [DerivO3CPU(cpu_id=i) for i in xrange(np)],
> physmem = PhysicalMemory(range=AddrRange("1024MB")),
> membus = Bus(), mem_mode = test_mem_mode)
>
> system.physmem.port = system.membus.port
>
> ## @bipin L3 Cache
> system.l3 = L3Cache(size='2MB')
> system.tol3Bus = Bus()
> system.l3.cpu_side = system.tol3Bus.port
> system.l3.mem_side = system.membus.port
> ## @bipin end of L3 Cache
>
> system.l2 = L2Cache(size='1MB')
> system.tol2Bus = Bus()
> system.l2.cpu_side = system.tol2Bus.port
> system.l2.mem_side = system.tol3Bus.port
>
> system.cpu[0].workload = [Benchmarks.SPECGCCEIO(),Benchmarks.SPECBZIP2EIO()]
> system.cpu[1].workload = [Benchmarks.SPECPARSEREIO(),
> Benchmarks.SPECPERLBMKEIO()]
> ## system.cpu[1].workload = [Benchmarks.SPECGCCEIO()]
> system.cpu[0].addPrivateSplitL1Caches(L1Cache(size = '16kB'),
> L1Cache(size = '8kB'))
> system.cpu[0].connectMemPorts(system.tol2Bus)
> system.cpu[0].max_insts_all_threads = 100
>
> system.cpu[1].addPrivateSplitL1Caches(L1Cache(size = '16kB'),
> L1Cache(size = '8kB'))
> system.cpu[1].connectMemPorts(system.tol2Bus)
> system.cpu[1].max_insts_all_threads = 100
>
> root = Root(system = system)
>
> Simulation.run(options, root, system, FutureClass)
>
>
> and the reading from m5stat file is:
> .......
> ..
> system.cpu0.commit.COM:count 557
> # Number of instructions committed
> system.cpu0.commit.COM:count_0 105
> # Number of instructions committed
> system.cpu0.commit.COM:count_1 452
> # Number of instructions committed
> .................
> ..............
> system.cpu1.commit.COM:count 206
> # Number of instructions committed
> system.cpu1.commit.COM:count_0 91
> # Number of instructions committed
> system.cpu1.commit.COM:count_1 115
> # Number of instructions committed
>
>
>
> even though i have used maximum number of instructions fixed to 100 why the
> result is so varying?
> any help would be appreciated
>
> regards,
> Prannav
>
> _______________________________________________
> m5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
>
_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users