Re: [gem5-users] Multiprogrammed simulation in x86 SE in O3CPU is broken
Hi, I will try my best to get the fix and share with the community. Also, if you guys need help in testing the commit when submitted to review, please let the community know. So however is interested can run tests and post the result on online which is viewable by the maintainer and when important features like multi core/multithreaded/multi programmed simulations and others more have problem the developer can fix it so that previous developers commit are not nullified In this particular scenario someone did develop the environment for multi core/multi threaded/multi programmed and now his/her effort needs to be redone because we as community as whole did not pay attention when a commit is submitted. Currently in my free time I have personally started testing all the merged commit in git review and test atleast the applications which is there in gem5 directory. And I have already submitted a Jira ticket. And in the mailing list I did mention which gem5 commit is still supporting multi programmed simulations. I will try to fix the problem and submit On Thu, Feb 13, 2020 at 9:12 AM Giacomo Travaglini < giacomo.travagl...@arm.com> wrote: > Hi Abhishek, > > Let me first thank you for finding and reporting the problem. > Since you are asking > > > *"please also inform all the developers to not push commit if their commit > disturbs the dependencies then try to fix them and after everything is > fixed then only merge to public gem5!" * > > I'd like to take the opportunity to explain which is the gem5 contribution > workflow. > > Every time we post a patch for review, before it gets merged we > automatically run a set of tests to verify the patch isn't breaking anything > . > If one (or more) of the tests fails, it won't be possible to merge the > patch. > Please have a look at > > https://github.com/gem5/gem5/blob/master/TESTING.md > > to have an idea on how this works. > > So why things break? > > Gem5 has a lot of features that could be tested (SE mode, FS mode, Ruby > mem, Classic mem, AtomicCPU, TimingCPU, MinorCPU, O3CPU, Checkpointing, > FastForwarding, SMT, SMP ... just to mention few) > > We try to cover the most significant ones but the combination of all this > parameters makes it IMPOSSIBLE to test EVERYTHING. > What we can do though is to prioritize some tests over some others. Or, if > the test is fairly simple, we can consider adding it to the regression list. > > If you find that a feature is broken, you can use JIRA ( > https://gem5.atlassian.net/jira/your-work) to raise a ticket. > We try to address the problems in a reasonable amount of time. It usually > helps if, rather than saying "things are broken", we actually get a link to > the commit which breaks the feature you are interested on (you can easilly > bisect until you find the culprit). > > This will make it very likely for the bug to get a quick fix; or, by being > an open source project, we would be very happy to receive a contribution > fix from you if you feel like handling it yourself. I would be happy to > provide all the support needed so it is up to you. > > Once the issue has been solved we can discuss to add an SMT test to the > list so that we are sure things won't break again. > > Kind Regards > > Giacomo > > <https://github.com/gem5/gem5/blob/master/TESTING.md> > gem5/TESTING.md at master · gem5/gem5 · GitHub > <https://github.com/gem5/gem5/blob/master/TESTING.md> > With this method, you can only run a single suite at a time. If you want > to run more than one uid, you must call ./main.py multiple times.. > Currently, you must specify --skip-build if you want to run a single suite > or run in batch mode. Otherwise, you will build gem5 for all architectures. > github.com > > > > > > > -- > *From:* gem5-users on behalf of Abhishek > Singh > *Sent:* 11 February 2020 19:34 > *To:* gem5 users mailing list > *Subject:* [gem5-users] Multiprogrammed simulation in x86 SE in O3CPU is > broken > > Hello Everyone, > > The latest commit *135595a* is unable to support multi-core > (multi-programmed) simulation on x86 O3CPU. I am pasting the terminal > output showing a simple hello world program. The older commits of gem5 do > support such multi-core (multi-programmed) simulation. > Please note if we do not use SMT and use the number of CPUs as 2 for 2 > core simulation, the simulation reaches a point and goes in a never-ending > loop. > > These problems are due to cause of recent commits, *please also inform > all the developers *to not push commit if their commit disturbs the > dependencies then try to fix them and after everything is fixed then only > merge to public gem5! >
Re: [gem5-users] Multiprogrammed simulation in x86 SE in O3CPU is broken
Hi Abhishek, Let me first thank you for finding and reporting the problem. Since you are asking "please also inform all the developers to not push commit if their commit disturbs the dependencies then try to fix them and after everything is fixed then only merge to public gem5!" I'd like to take the opportunity to explain which is the gem5 contribution workflow. Every time we post a patch for review, before it gets merged we automatically run a set of tests to verify the patch isn't breaking anything. If one (or more) of the tests fails, it won't be possible to merge the patch. Please have a look at https://github.com/gem5/gem5/blob/master/TESTING.md to have an idea on how this works. So why things break? Gem5 has a lot of features that could be tested (SE mode, FS mode, Ruby mem, Classic mem, AtomicCPU, TimingCPU, MinorCPU, O3CPU, Checkpointing, FastForwarding, SMT, SMP ... just to mention few) We try to cover the most significant ones but the combination of all this parameters makes it IMPOSSIBLE to test EVERYTHING. What we can do though is to prioritize some tests over some others. Or, if the test is fairly simple, we can consider adding it to the regression list. If you find that a feature is broken, you can use JIRA (https://gem5.atlassian.net/jira/your-work) to raise a ticket. We try to address the problems in a reasonable amount of time. It usually helps if, rather than saying "things are broken", we actually get a link to the commit which breaks the feature you are interested on (you can easilly bisect until you find the culprit). This will make it very likely for the bug to get a quick fix; or, by being an open source project, we would be very happy to receive a contribution fix from you if you feel like handling it yourself. I would be happy to provide all the support needed so it is up to you. Once the issue has been solved we can discuss to add an SMT test to the list so that we are sure things won't break again. Kind Regards Giacomo [https://avatars2.githubusercontent.com/u/1524926?s=400&v=4]<https://github.com/gem5/gem5/blob/master/TESTING.md> gem5/TESTING.md at master · gem5/gem5 · GitHub<https://github.com/gem5/gem5/blob/master/TESTING.md> With this method, you can only run a single suite at a time. If you want to run more than one uid, you must call ./main.py multiple times.. Currently, you must specify --skip-build if you want to run a single suite or run in batch mode. Otherwise, you will build gem5 for all architectures. github.com From: gem5-users on behalf of Abhishek Singh Sent: 11 February 2020 19:34 To: gem5 users mailing list Subject: [gem5-users] Multiprogrammed simulation in x86 SE in O3CPU is broken Hello Everyone, The latest commit 135595a is unable to support multi-core (multi-programmed) simulation on x86 O3CPU. I am pasting the terminal output showing a simple hello world program. The older commits of gem5 do support such multi-core (multi-programmed) simulation. Please note if we do not use SMT and use the number of CPUs as 2 for 2 core simulation, the simulation reaches a point and goes in a never-ending loop. These problems are due to cause of recent commits, please also inform all the developers to not push commit if their commit disturbs the dependencies then try to fix them and after everything is fixed then only merge to public gem5! Using SMT: /build/X86/gem5.opt configs/example/se.py -c 'tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello' --caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB --l1d_assoc=8 --l1i_assoc=8 --l2_assoc=16 --cacheline_size=64 --cpu-type=DerivO3CPU --mem-type=DDR4_2400_8x8 --mem-size=8GB --sys-clock=2.6GHz --cpu-clock=2.6GHz --smt Global frequency set at 1 ticks per second warn: DRAM device capacity (16384 Mbytes) does not match the address range assigned (8192 Mbytes) 0: system.remote_gdb: listening for remote gdb on port 7002 0: system.remote_gdb: listening for remote gdb on port 7003 panic: panic condition Memory Usage: 8560136 KBytes Program aborted at tick 0 — BEGIN LIBC BACKTRACE — ./build/X86/gem5.opt(_Z15print_backtracev+0x29)[0x55b3ff0e54e9] ./build/X86/gem5.opt(_Z12abortHandleri+0x4a)[0x55b3ff0f7d9a] /lib/x86_64-linux-gnu/libpthread.so.0(+0x12890)[0x7f379da2f890] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7)[0x7f379b999e97] /lib/x86_64-linux-gnu/libc.so.6(abort+0x141)[0x7f379b99b801] ./build/X86/gem5.opt(+0x59bd8f)[0x55b3fe8cdd8f] ./build/X86/gem5.opt(_ZN6X86ISA10Interrupts4initEv+0x110)[0x55b3feb80820] ./build/X86/gem5.opt(+0x15feaaa)[0x55b3ff930aaa] ./build/X86/gem5.opt(+0x6d960e)[0x55b3fea0b60e] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x7a70)[0x7f379dceb010] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7d8)[0x7f379de1bbf8] /usr/lib/x86_64-linux-gnu/libpython2.7
[gem5-users] Multiprogrammed simulation in x86 SE in O3CPU is broken
Hello Everyone, The latest commit *135595a* is unable to support multi-core (multi-programmed) simulation on x86 O3CPU. I am pasting the terminal output showing a simple hello world program. The older commits of gem5 do support such multi-core (multi-programmed) simulation. Please note if we do not use SMT and use the number of CPUs as 2 for 2 core simulation, the simulation reaches a point and goes in a never-ending loop. These problems are due to cause of recent commits, *please also inform all the developers *to not push commit if their commit disturbs the dependencies then try to fix them and after everything is fixed then only merge to public gem5! *Using SMT:* /build/X86/gem5.opt configs/example/se.py -c 'tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello' --caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB --l1d_assoc=8 --l1i_assoc=8 --l2_assoc=16 --cacheline_size=64 --cpu-type=DerivO3CPU --mem-type=DDR4_2400_8x8 --mem-size=8GB --sys-clock=2.6GHz --cpu-clock=2.6GHz --smt Global frequency set at 1 ticks per second warn: DRAM device capacity (16384 Mbytes) does not match the address range assigned (8192 Mbytes) 0: system.remote_gdb: listening for remote gdb on port 7002 0: system.remote_gdb: listening for remote gdb on port 7003 panic: panic condition Memory Usage: 8560136 KBytes Program aborted at tick 0 — BEGIN LIBC BACKTRACE — ./build/X86/gem5.opt(_Z15print_backtracev+0x29)[0x55b3ff0e54e9] ./build/X86/gem5.opt(_Z12abortHandleri+0x4a)[0x55b3ff0f7d9a] /lib/x86_64-linux-gnu/libpthread.so.0(+0x12890)[0x7f379da2f890] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7)[0x7f379b999e97] /lib/x86_64-linux-gnu/libc.so.6(abort+0x141)[0x7f379b99b801] ./build/X86/gem5.opt(+0x59bd8f)[0x55b3fe8cdd8f] ./build/X86/gem5.opt(_ZN6X86ISA10Interrupts4initEv+0x110)[0x55b3feb80820] ./build/X86/gem5.opt(+0x15feaaa)[0x55b3ff930aaa] ./build/X86/gem5.opt(+0x6d960e)[0x55b3fea0b60e] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x7a70)[0x7f379dceb010] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7d8)[0x7f379de1bbf8] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x6364)[0x7f379dce9904] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7d8)[0x7f379de1bbf8] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x6364)[0x7f379dce9904] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7d8)[0x7f379de1bbf8] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCode+0x19)[0x7f379dce3409] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x68a5)[0x7f379dce9e45] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7d8)[0x7f379de1bbf8] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x6364)[0x7f379dce9904] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7d8)[0x7f379de1bbf8] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCode+0x19)[0x7f379dce3409] /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyRun_StringFlags+0x76)[0x7f379dd936d6] ./build/X86/gem5.opt(_Z6m5MainiPPc+0x8f)[0x55b3ff0f66ff] ./build/X86/gem5.opt(main+0x38)[0x55b3fe864a68] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7)[0x7f379b97cb97] ./build/X86/gem5.opt(_start+0x2a)[0x55b3fe88c1aa] — END LIBC BACKTRACE — Aborted (core dumped) *Using 2 CPUs* ./build/X86/gem5.opt configs/example/se.py -c "tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello" --caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB --l1d_assoc=8 --l1i_assoc=8 --l2_assoc=16 --cacheline_size=64 --cpu-type=DerivO3CPU --mem-type=DDR4_2400_8x8 --mem-size=8GB --sys-clock='2.6GHz' --cpu-clock='2.6GHz' -n 2 gem5 Simulator System. http://gem5.org gem5 is copyrighted software; use the --copyright option for details. gem5 compiled Feb 11 2020 13:57:48 gem5 started Feb 11 2020 14:21:49 gem5 executing on comparchT640, pid 17942 command line: ./build/X86/gem5.opt configs/example/se.py -c 'tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello' --caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB --l1d_assoc=8 --l1i_assoc=8 --l2_assoc=16 --cacheline_size=64 --cpu-type=DerivO3CPU --mem-type=DDR4_2400_8x8 --mem-size=8GB --sys-clock=2.6GHz --cpu-clock=2.6GHz -n 2 Global frequency set at 1 ticks per second warn: DRAM device capacity (16384 Mbytes) does not match the address range assigned (8192 Mbytes) 0: system.remote_gdb: listening for remote gdb on port 7000 0: system.remote_gdb: listening for remote gdb on port 7001 - - - - REAL SIMULATION info: Entering event queue @ 0. Starting simulation... Hello world! Hello world! Best regards, Abhishek ___ gem5-users mailing list gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users