So, what is the option to terminate each thread after running certain fixed
number of instruction, say 1M.

prannav

On Tue, Jun 24, 2008 at 11:58 AM, Steve Reinhardt <[EMAIL PROTECTED]> wrote:

> 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
>
_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

Reply via email to