Karthik,

I've never used the -enable-kvm switch (nor have I heard anyone talk about
it). Can you script your runs on our CS nodes, or any other private
cluster, to help counteract the slow boots?

Tyler

> Hi Tyler,
>
> Thanks for trying to simulate the problem. Actually I go to the
> qemu-monitor to start the simulation only after the OS is properly
> booted and after I log into it. But I would like to check whether you
> have used the '-enable-kvm' switch in the qemu command as below, as
> inclusion of this switch causes the problem.
>
> qemu/qemu-system-x86_64 -m [memory-size] -enable-kvm -hda
> [path-to-qemu-disk-image]
>
> I used memory size of 1024. I tried a fresh build of MARSS and with
> the above command I brought up the VM. Then when I tried to simulate
> "shared_l2" or "private_L2" it gave the same reported error and dumped
> core. Without the '-enable-kvm' everything works perfect.
>
> But I am trying to use '-enable-kvm' switch so that the QEMU emulation
> will be faster at higher core counts. This will make life easier when
> we use check points. Without '-enable-kvm' switch, QEMU emulation
> itself is very slow at higher core counts as it emulates each CPU in
> sequential order. Your comments are more welcome.
>
> Thanks a lot for pointing out the 'rootdelay' tip. Many times I
> wondered why the VM did not boot up when core count is more(8 or
> higher I think). Using the rootdelay parameter solved the issue.
>
> Regards,
> karthik
>
> On Wed, Jul 23, 2014 at 2:58 PM,  <[email protected]> wrote:
>> Karthik,
>>
>> Wait for the VM to boot up. MARSS is prone to crash if you try to
>> simulate
>> before init finishes booting services.
>>
>> I just checked out a clean copy of MARSS. After passing rootdelay=200
>> (as
>> documented: http://marss86.org/~marss86/index.php/QEMU_Tips), I passed
>> "simconfig -machine private_L2" as the VM was booting. When the VM got
>> to
>> the shell, I did
>>
>> ./start_sim; ls; ./stop_sim
>>
>> And it worked fine...
>> 1037eeaPTLCALL type PTLCALL_ENQUEUE
>> MARSSx86::Command received : -stop
>>
>> Stopped after 5854991 cycles, 7428498 instructions and 63 seconds of sim
>> time (cycle/sec: 92936 Hz, insns/sec: 117912, insns/cyc:
>> 1.2687462713435427)
>>
>> Tyler
>>
>>> Hi Tyler,
>>>
>>> Actually this error occurs very soon after I start the simulation from
>>> the QEMU monitor. The error occurs even before I get to the guest OS
>>> window. For both the machines (shared_l2 &private_L2) I get this
>>> error. More specifically I get the error message when I give the
>>> command "simconfig -run -machine MACHINE_NAME" in the QEMU monitor and
>>> when I press Ctrl+Alt+Shift-1 to switch to the guest OS. Hence I could
>>> not start any benchmarks too.
>>>
>>> Also please find the error message I while simulating both the
>>> "shared_l2" & "private_L2" machines provided in the 'default.conf'
>>> configuration file. I am using the disk images provided in the
>>> marss86.org website. Both the machines provide the same error message:
>>>
>>> shared_l2:
>>> ERROR: guest physical address 0xfffffff0 is out of bounds
>>> ERROR: guest physical address 0xfffffff0 is out of bounds
>>> ERROR: guest physical address 0xfffffff0 is out of bounds
>>> ERROR: guest physical address 0xfffffff0 is out of bounds
>>> ERROR: guest physical address 0xfffffff0 is out of bounds
>>> ERROR: guest physical address 0xfffffff0 is out of bounds
>>> ERROR: guest physical address 0xfffffff0 is out of bounds
>>> qemu-system-x86_64: ptlsim/build/core/ooo-core/ooo-pipe.cpp:2054: int
>>> ooo::ReorderBufferEntry::commit(): Assertion `ctx.get_cs_eip() ==
>>> uop.rip' failed.
>>>
>>> private_L2:
>>> ERROR: guest physical address 0xfffffff0 is out of bounds
>>> ERROR: guest physical address 0xfffffff0 is out of bounds
>>> ERROR: guest physical address 0xfffffff0 is out of bounds
>>> ERROR: guest physical address 0xfffffff0 is out of bounds
>>> ERROR: guest physical address 0xfffffff0 is out of bounds
>>> ERROR: guest physical address 0xfffffff0 is out of bounds
>>> ERROR: guest physical address 0xfffffff0 is out of bounds
>>> qemu-system-x86_64: ptlsim/build/core/ooo-core/ooo-pipe.cpp:2054: int
>>> ooo::ReorderBufferEntry::commit(): Assertion `ctx.get_cs_eip() ==
>>> uop.rip' failed.
>>>
>>> Your comments are more welcome.
>>>
>>> Thanks,
>>> karthik
>>>
>>> Note: In my previous mail there were differences in error messages for
>>> these same machines as I was using my own disk image instead of the
>>> disk image available for download from www.marss86.org website.
>>>
>>> On Wed, Jul 23, 2014 at 8:24 AM,  <[email protected]> wrote:
>>>> Karthik,
>>>>
>>>> Which benchmark(s) are you running? Kernel version? Are you using one
>>>> of
>>>> the stock images? This shouldn't happen in a stock configuration like
>>>> this...
>>>>
>>>> Tyler
>>>>
>>>>> Hi,
>>>>>
>>>>> Thanks a lot for taking your time to help me out amidst your busy
>>>>> schedule. Do you need any more data from my side? Kindly let me know.
>>>>>
>>>>> Regards,
>>>>> karthik
>>>>>
>>>>> On Mon, Jul 14, 2014 at 5:38 PM, karthik vm <[email protected]> wrote:
>>>>>> Hi Brendan &Tyler,
>>>>>>
>>>>>> I have compiled MARSS with C=32 and ran both shared_l2 and
>>>>>> private_L2.
>>>>>> Unfortunately both of them crashed. Please find below the assertions
>>>>>> I
>>>>>> got with the simulation of each of them:
>>>>>>
>>>>>> shared_l2:
>>>>>> ERROR: guest physical address 0xfffffff0 is out of bounds
>>>>>> qemu-system-x86_64: ptlsim/build/core/ooo-core/ooo-pipe.cpp:2054:
>>>>>> int
>>>>>> ooo::ReorderBufferEntry::commit(): Assertion `ctx.get_cs_eip() ==
>>>>>> uop.rip' failed.
>>>>>>
>>>>>> private_L2:
>>>>>> qemu-system-x86_64: ptlsim/build/core/ooo-core/ooo-pipe.cpp:2054:
>>>>>> int
>>>>>> ooo::ReorderBufferEntry::commit(): Assertion `ctx.get_cs_eip() ==
>>>>>> uop.rip' failed.
>>>>>>
>>>>>> I got the above assertions for the simulated machines consistently.
>>>>>> I
>>>>>> tried to simulate each one thrice.
>>>>>> Kindly let me know if you need any other data.
>>>>>>
>>>>>> Thanks,
>>>>>> karthik
>>>>>>
>>>>>> On Sun, Jul 13, 2014 at 10:51 PM, Brendan Fitzgerald
>>>>>> <[email protected]> wrote:
>>>>>>> Compile with c=32 then run either shared_l2 or private_L2 since
>>>>>>> they
>>>>>>> are
>>>>>>> configured with OoO cores.
>>>>>>>
>>>>>>> By sample he means it's the one we provide. The core doesn't
>>>>>>> reflect
>>>>>>> an
>>>>>>> actual machine, but it's close.
>>>>>>>
>>>>>>>
>>>>>>> On Sun, Jul 13, 2014 at 9:25 PM, karthik vm <[email protected]>
>>>>>>> wrote:
>>>>>>>>
>>>>>>>> Hi Tyler,
>>>>>>>>
>>>>>>>> I am not quite clear what you mean by sample OoO configurations.
>>>>>>>> Currently the 'shared_l2' or 'private_L2' machine configurations
>>>>>>>> are
>>>>>>>> configured as OoO cores. So you want me to compile MARRS for 32
>>>>>>>> cores
>>>>>>>> and simulate one of these machines? Can you clarify? Thanks.
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>> karthik
>>>>>>>>
>>>>>>>> On Sat, Jul 12, 2014 at 2:12 PM,  <[email protected]>
>>>>>>>> wrote:
>>>>>>>> > Karthik,
>>>>>>>> >
>>>>>>>> > Can you try one of the sample OoO configurations? The
>>>>>>>> configuration
>>>>>>>> > files
>>>>>>>> > are sensitive and currently not fully checked for validity.
>>>>>>>> >
>>>>>>>> > Compile with:
>>>>>>>> > scons c=32
>>>>>>>> >
>>>>>>>> > Then use the 'shared_l2" or 'private_L2' machine configuration
>>>>>>>> (be
>>>>>>>> aware
>>>>>>>> > of the capitalization differences...)
>>>>>>>> >
>>>>>>>> > That should give you a 32-core non-SMT configuration.
>>>>>>>> >
>>>>>>>> > Tyler
>>>>>>>> >
>>>>>>>> >> Hi Tyler,
>>>>>>>> >>
>>>>>>>> >> Thanks for your immediate reply. Great to know that MARSS is
>>>>>>>> suited
>>>>>>>> >> for analyzing lock contention.
>>>>>>>> >>
>>>>>>>> >> Basically I was trying to simulate the 'private_L2' machine
>>>>>>>> from
>>>>>>>> the
>>>>>>>> >> 'default' configuration file with enable-kvm switch in qemu.
>>>>>>>> The
>>>>>>>> >> configuration of 'cores' in private_L2 is below:
>>>>>>>> >>
>>>>>>>> >> cores:
>>>>>>>> >>       - type: ooo
>>>>>>>> >>         name_prefix: ooo_
>>>>>>>> >>
>>>>>>>> >> Since there are no option for # of threads. I guess the cores
>>>>>>>> are
>>>>>>>> >> single threaded or non SMT. Anyway to enforce this I added the
>>>>>>>> threads
>>>>>>>> >> option as below:
>>>>>>>> >>
>>>>>>>> >> cores:
>>>>>>>> >>       - type: ooo
>>>>>>>> >>         name_prefix: ooo_
>>>>>>>> >>         option:
>>>>>>>> >>             threads: 1
>>>>>>>> >>
>>>>>>>> >> When I ran the simulation I get the same error again:
>>>>>>>> >> qemu-system-x86_64:
>>>>>>>> ptlsim/build/core/ooo-core/ooo-pipe.cpp:2054:
>>>>>>>> int
>>>>>>>> >> ooo::ReorderBufferEntry::commit(): Assertion `ctx.get_cs_eip()
>>>>>>>> ==
>>>>>>>> >> uop.rip' failed.
>>>>>>>> >>
>>>>>>>> >> Then I tried to change the core type from 'ooo' to 'atom' which
>>>>>>>> is
>>>>>>>> non
>>>>>>>> >> SMT in the machine. Please find the configuration below:
>>>>>>>> >>
>>>>>>>> >> cores:
>>>>>>>> >>       - type: atom
>>>>>>>> >>         name_prefix: atom_
>>>>>>>> >>         option:
>>>>>>>> >>             threads: 1
>>>>>>>> >>
>>>>>>>> >> Now also I see that the simulation stops with the following
>>>>>>>> error
>>>>>>>> >> shortly after it started:
>>>>>>>> >> qemu-system-x86_64:
>>>>>>>> ptlsim/build/core/atom-core/atomcore.cpp:2128:
>>>>>>>> >> void atom::AtomThread::dtlb_walk(): Assertion `dtlb_miss_addr'
>>>>>>>> failed.
>>>>>>>> >>
>>>>>>>> >> Kindly let me know your comments.
>>>>>>>> >>
>>>>>>>> >> Thanks,
>>>>>>>> >> karthik
>>>>>>>> >>
>>>>>>>> >> On Thu, Jul 10, 2014 at 11:50 AM,  <[email protected]>
>>>>>>>> wrote:
>>>>>>>> >>> Karthik,
>>>>>>>> >>>
>>>>>>>> >>> This assertion:
>>>>>>>> >>> ooo::ReorderBufferEntry::commit(): Assertion `ctx.get_cs_eip()
>>>>>>>> ==
>>>>>>>> >>> uop.rip'
>>>>>>>> >>> failed.
>>>>>>>> >>>
>>>>>>>> >>> is a long-living bug in the current MARSS code. I believe it
>>>>>>>> may
>>>>>>>> been
>>>>>>>> >>> linked to SMT-based configurations, but I have not had the
>>>>>>>> time
>>>>>>>> to
>>>>>>>> >>> look
>>>>>>>> >>> into it. If your simulated machine uses SMT, can you try
>>>>>>>> disabling
>>>>>>>> SMT
>>>>>>>> >>> and
>>>>>>>> >>> please regenerate checkpoints and try again?
>>>>>>>> >>>
>>>>>>>> >>> As for your second question, MARSS is definitely suited to
>>>>>>>> giving
>>>>>>>> your
>>>>>>>> >>> more statistics than other options (i.e., instrumenting the
>>>>>>>> kernel,
>>>>>>>> >>> using
>>>>>>>> >>> hardware/machine counters, etc.). If you need detailed,
>>>>>>>> hardware-level
>>>>>>>> >>> statistics relating to lock contention, you can easily
>>>>>>>> instrument
>>>>>>>> the
>>>>>>>> >>> MARSS code base with some heuristics/counters that suit your
>>>>>>>> research.
>>>>>>>> >>>
>>>>>>>> >>> Tyler
>>>>>>>> >>>
>>>>>>>> >>>> Hi,
>>>>>>>> >>>>
>>>>>>>> >>>> I am trying to use MARlSS for analyzing lock contention in
>>>>>>>> >>>> multi-threaded apps and in linux OS code. I have successfully
>>>>>>>> built
>>>>>>>> >>>> the simulator and able to simulate the cores. Some of the
>>>>>>>> questions I
>>>>>>>> >>>> have are:
>>>>>>>> >>>>
>>>>>>>> >>>> 1) When I try to run MARSS configured with large number of
>>>>>>>> cores(e.g
>>>>>>>> >>>> 32), the simulation is very slow. From the discussion here
>>>>>>>> >>>>
>>>>>>>> >>>> "http://article.gmane.org/gmane.comp.emulators.marss86/112/match=enable+kvm";
>>>>>>>> >>>> I get that atleast for creating checkpoints we can use KVM
>>>>>>>> which
>>>>>>>> will
>>>>>>>> >>>> be much faster. But I do not understand where should we
>>>>>>>> enable
>>>>>>>> the
>>>>>>>> >>>> KVM? I tried the following:
>>>>>>>> >>>>
>>>>>>>> >>>> $ qemu/qemu-system-x86_64 -enable-kvm -m [memory_size] -hda
>>>>>>>> >>>> [path-to-qemu-disk-image]
>>>>>>>> >>>>
>>>>>>>> >>>> Then in qemu monitor mode I configured the simulator as
>>>>>>>> follows:
>>>>>>>> >>>> simconfig -run -machine private_L2
>>>>>>>> >>>>
>>>>>>>> >>>> But shortly after the simulator starts I get the following
>>>>>>>> error:
>>>>>>>> >>>> qemu-system-x86_64:
>>>>>>>> ptlsim/build/core/ooo-core/ooo-pipe.cpp:2054:
>>>>>>>> int
>>>>>>>> >>>> ooo::ReorderBufferEntry::commit(): Assertion
>>>>>>>> `ctx.get_cs_eip()
>>>>>>>> ==
>>>>>>>> >>>> uop.rip' failed.
>>>>>>>> >>>>
>>>>>>>> >>>> Can someone point me what I miss here and what Avadh was
>>>>>>>> talking
>>>>>>>> >>>> about
>>>>>>>> >>>> enabling KVM?
>>>>>>>> >>>>
>>>>>>>> >>>> 2) From the mailing list discussion
>>>>>>>> >>>>
>>>>>>>> >>>> (http://www.mail-archive.com/marss86-devel%40cs.binghamton.edu/msg01882.html)
>>>>>>>> >>>> I see that MARSS runs the cores concurrently. Hence I believe
>>>>>>>> MARSS
>>>>>>>> >>>> can simulate the lock contentions in both application & OS
>>>>>>>> code
>>>>>>>> >>>> needed
>>>>>>>> >>>> for my research. Kindly let me know your comments for
>>>>>>>> confirmation.
>>>>>>>> >>>>
>>>>>>>> >>>> Thanks for your time,
>>>>>>>> >>>> karthik
>>>>>>>> >>>>
>>>>>>>> >>>> _______________________________________________
>>>>>>>> >>>> http://www.marss86.org
>>>>>>>> >>>> Marss86-Devel mailing list
>>>>>>>> >>>> [email protected]
>>>>>>>> >>>> https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel
>>>>>>>> >>>>
>>>>>>>> >>>
>>>>>>>> >>>
>>>>>>>> >>
>>>>>>>> >
>>>>>>>> >
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> http://www.marss86.org
>>>>>>>> Marss86-Devel mailing list
>>>>>>>> [email protected]
>>>>>>>> https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel
>>>>>>>
>>>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>



_______________________________________________
http://www.marss86.org
Marss86-Devel mailing list
[email protected]
https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel

Reply via email to