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
