gem5-users@gem5.org

The gem5 Users mailing list

View all threads

Why does gem5 run parsec3.0 encounter deadlock error?

-
-17
Mon, Oct 26, 2020 7:55 AM

Hi all

I run gem5 full system mode on a multi-core system, use AtomicCPU to establish a checkpoint, and then turn to O3CPU to start, and execute a command similar to the following:

./build/ARM_MOESI_hammer/gem5.opt -d fs_results/simple/begin configs/example/fs.py --ruby --cpu-clock='2.2GHz' --ruby-clock='2.2GHz' --num-cpus=4 --caches --l2cache --num-dirs=4 --num-l2caches=4 --cpu-type=AtomicSimpleCPU --mem-type=DDR4_2400_16x4 --network=simple --topology=Mesh_XY --mesh-rows=2 --garnet-deadlock-threshold=100000 --sys-clock='2.2GHz' --l1d_size=32kB --l1i_size=32kB --l2_size=2MB --l1d_assoc=2 --l1i_assoc=2 --l2_assoc=16 --cacheline_size=64 --link-latency=3 --routing-algorithm=1 --disk-image=$M5_PATH/disks/ex-linaro-minimal-aarch64.img --kernel=/home/fusiqing/GEM5/gem5/2017sys/binaries/64core.vmlinux --param 'system.realview.gic.gem5_extensions = True'

Next, establish a checkpoint, and use the following command to restore the checkpoint and run PARSEC.

./build/ARM_MOESI_hammer/gem5.opt -d fs_results/at_dead/blackscholes configs/example/fs.py --ruby --cpu-clock='2.2GHz' --ruby-clock='2.2GHz' --num-cpus=4 --caches --l2cache --num-dirs=4 --num-l2caches=4 --cpu-type=DeriveO3CPU --mem-type=DDR4_2400_16x4 --network=garnet2.0 --topology=Mesh_XY --mesh-rows=2 --garnet-deadlock-threshold=100000 --sys-clock='2.2GHz' --l1d_size=32kB --l1i_size=32kB --l2_size=2MB --l1d_assoc=2 --l1i_assoc=2 --l2_assoc=16 --cacheline_size=64 --link-latency=3 --routing-algorithm=1 --disk-image=$M5_PATH/disks/ex-linaro-minimal-aarch64.img --kernel=/home/fusiqing/GEM5/gem5/2017sys/binaries/64core.vmlinux --param 'system.realview.gic.gem5_extensions = True' -r 1 --restore-with-cpu=DeriveO3CPU

But I encountered the following problems:

First of all, the rcs file is not executed. Does the startup checkpoint conflict with the --script command?

The second point, I manually enter in the operating system booted by gem5:

parsecmgmt -a run -c gcc-hooks -i simsmall -n 1 -p blackscholes

 I got the following error:

panic: Possible Deadlock detected. Aborting!

I tried to find the solution from the internet,it seems that there used to be a way to add parameters--garnet-network=flexible,but this method is no longer applicable in gem5-20.0 version.

Can someone help me solve this deadlock problem? By the way, when running the facesim program, I can get the correct running result by using 'test' input.

Hi all I run gem5 full system mode on a multi-core system, use AtomicCPU to establish a checkpoint, and then turn to O3CPU to start, and execute a command similar to the following: ./build/ARM_MOESI_hammer/gem5.opt -d fs_results/simple/begin configs/example/fs.py --ruby --cpu-clock='2.2GHz' --ruby-clock='2.2GHz' --num-cpus=4 --caches --l2cache --num-dirs=4 --num-l2caches=4 --cpu-type=AtomicSimpleCPU --mem-type=DDR4_2400_16x4 --network=simple --topology=Mesh_XY --mesh-rows=2 --garnet-deadlock-threshold=100000 --sys-clock='2.2GHz' --l1d_size=32kB --l1i_size=32kB --l2_size=2MB --l1d_assoc=2 --l1i_assoc=2 --l2_assoc=16 --cacheline_size=64 --link-latency=3 --routing-algorithm=1 --disk-image=$M5_PATH/disks/ex-linaro-minimal-aarch64.img --kernel=/home/fusiqing/GEM5/gem5/2017sys/binaries/64core.vmlinux --param 'system.realview.gic.gem5_extensions = True' Next, establish a checkpoint, and use the following command to restore the checkpoint and run PARSEC. ./build/ARM_MOESI_hammer/gem5.opt -d fs_results/at_dead/blackscholes configs/example/fs.py --ruby --cpu-clock='2.2GHz' --ruby-clock='2.2GHz' --num-cpus=4 --caches --l2cache --num-dirs=4 --num-l2caches=4 --cpu-type=DeriveO3CPU --mem-type=DDR4_2400_16x4 --network=garnet2.0 --topology=Mesh_XY --mesh-rows=2 --garnet-deadlock-threshold=100000 --sys-clock='2.2GHz' --l1d_size=32kB --l1i_size=32kB --l2_size=2MB --l1d_assoc=2 --l1i_assoc=2 --l2_assoc=16 --cacheline_size=64 --link-latency=3 --routing-algorithm=1 --disk-image=$M5_PATH/disks/ex-linaro-minimal-aarch64.img --kernel=/home/fusiqing/GEM5/gem5/2017sys/binaries/64core.vmlinux --param 'system.realview.gic.gem5_extensions = True' -r 1 --restore-with-cpu=DeriveO3CPU But I encountered the following problems: First of all, the rcs file is not executed. Does the startup checkpoint conflict with the --script command? The second point, I manually enter in the operating system booted by gem5: parsecmgmt -a run -c gcc-hooks -i simsmall -n 1 -p blackscholes  I got the following error: panic: Possible Deadlock detected. Aborting! I tried to find the solution from the internet,it seems that there used to be a way to add parameters--garnet-network=flexible,but this method is no longer applicable in gem5-20.0 version. Can someone help me solve this deadlock problem? By the way, when running the facesim program, I can get the correct running result by using 'test' input.
-
-17
Mon, Oct 26, 2020 8:42 AM

Last email was incomplete sorry for that.There is no --scripts option in the command line I gave, so we won't discuss it first. The key problem is that even if I do not modify the source code at all, I cannot run ARM+garnet2.0+FS. I want to know if such a deadlock problem is due to support problems or other problems. The debugging of the conformance protocol is very complicated, and it may not be needed without any source code modification.

/**************************************/NUDT                    Siqing Fu

 

------------------ 原始邮件 ------------------
发件人:                                                                                                                        "gem5 users mailing list"                                                                                    <gem5-users(a)gem5.org>;
发送时间: 2020年10月26日(星期一) 下午3:55
收件人: "gem5-users"<gem5-users(a)gem5.org>;
抄送: "-17"<657029715(a)qq.com>;
主题: [gem5-users] Why does gem5 run parsec3.0 encounter deadlock error?

Hi all

I run gem5 full system mode on a multi-core system, use AtomicCPU to establish a checkpoint, and then turn to O3CPU to start, and execute a command similar to the following:

./build/ARM_MOESI_hammer/gem5.opt -d fs_results/simple/begin configs/example/fs.py --ruby --cpu-clock='2.2GHz' --ruby-clock='2.2GHz' --num-cpus=4 --caches --l2cache --num-dirs=4 --num-l2caches=4 --cpu-type=AtomicSimpleCPU --mem-type=DDR4_2400_16x4 --network=simple --topology=Mesh_XY --mesh-rows=2 --garnet-deadlock-threshold=100000 --sys-clock='2.2GHz' --l1d_size=32kB --l1i_size=32kB --l2_size=2MB --l1d_assoc=2 --l1i_assoc=2 --l2_assoc=16 --cacheline_size=64 --link-latency=3 --routing-algorithm=1 --disk-image=$M5_PATH/disks/ex-linaro-minimal-aarch64.img --kernel=/home/fusiqing/GEM5/gem5/2017sys/binaries/64core.vmlinux --param 'system.realview.gic.gem5_extensions = True'

Next, establish a checkpoint, and use the following command to restore the checkpoint and run PARSEC.

./build/ARM_MOESI_hammer/gem5.opt -d fs_results/at_dead/blackscholes configs/example/fs.py --ruby --cpu-clock='2.2GHz' --ruby-clock='2.2GHz' --num-cpus=4 --caches --l2cache --num-dirs=4 --num-l2caches=4 --cpu-type=DeriveO3CPU --mem-type=DDR4_2400_16x4 --network=garnet2.0 --topology=Mesh_XY --mesh-rows=2 --garnet-deadlock-threshold=100000 --sys-clock='2.2GHz' --l1d_size=32kB --l1i_size=32kB --l2_size=2MB --l1d_assoc=2 --l1i_assoc=2 --l2_assoc=16 --cacheline_size=64 --link-latency=3 --routing-algorithm=1 --disk-image=$M5_PATH/disks/ex-linaro-minimal-aarch64.img --kernel=/home/fusiqing/GEM5/gem5/2017sys/binaries/64core.vmlinux --param 'system.realview.gic.gem5_extensions = True' -r 1 --restore-with-cpu=DeriveO3CPU

But I encountered the following problems:

First of all, the rcs file is not executed. Does the startup checkpoint conflict with the --script command?

The second point, I manually enter in the operating system booted by gem5:

parsecmgmt -a run -c gcc-hooks -i simsmall -n 1 -p blackscholes

 I got the following error:

panic: Possible Deadlock detected. Aborting!

I tried to find the solution from the internet,it seems that there used to be a way to add parameters--garnet-network=flexible,but this method is no longer applicable in gem5-20.0 version.

Can someone help me solve this deadlock problem? By the way, when running the facesim program, I can get the correct running result by using 'test' input.

Last email was incomplete sorry for that.There is no --scripts option in the command line I gave, so we won't discuss it first. The key problem is that even if I do not modify the source code at all, I cannot run ARM+garnet2.0+FS. I want to know if such a deadlock problem is due to support problems or other problems. The debugging of the conformance protocol is very complicated, and it may not be needed without any source code modification. /**************************************/NUDT&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Siqing Fu &nbsp; ------------------&nbsp;原始邮件&nbsp;------------------ 发件人: "gem5 users mailing list" <gem5-users(a)gem5.org&gt;; 发送时间:&nbsp;2020年10月26日(星期一) 下午3:55 收件人:&nbsp;"gem5-users"<gem5-users(a)gem5.org&gt;; 抄送:&nbsp;"-17"<657029715(a)qq.com&gt;; 主题:&nbsp;[gem5-users] Why does gem5 run parsec3.0 encounter deadlock error? Hi all I run gem5 full system mode on a multi-core system, use AtomicCPU to establish a checkpoint, and then turn to O3CPU to start, and execute a command similar to the following: ./build/ARM_MOESI_hammer/gem5.opt -d fs_results/simple/begin configs/example/fs.py --ruby --cpu-clock='2.2GHz' --ruby-clock='2.2GHz' --num-cpus=4 --caches --l2cache --num-dirs=4 --num-l2caches=4 --cpu-type=AtomicSimpleCPU --mem-type=DDR4_2400_16x4 --network=simple --topology=Mesh_XY --mesh-rows=2 --garnet-deadlock-threshold=100000 --sys-clock='2.2GHz' --l1d_size=32kB --l1i_size=32kB --l2_size=2MB --l1d_assoc=2 --l1i_assoc=2 --l2_assoc=16 --cacheline_size=64 --link-latency=3 --routing-algorithm=1 --disk-image=$M5_PATH/disks/ex-linaro-minimal-aarch64.img --kernel=/home/fusiqing/GEM5/gem5/2017sys/binaries/64core.vmlinux --param 'system.realview.gic.gem5_extensions = True' Next, establish a checkpoint, and use the following command to restore the checkpoint and run PARSEC. ./build/ARM_MOESI_hammer/gem5.opt -d fs_results/at_dead/blackscholes configs/example/fs.py --ruby --cpu-clock='2.2GHz' --ruby-clock='2.2GHz' --num-cpus=4 --caches --l2cache --num-dirs=4 --num-l2caches=4 --cpu-type=DeriveO3CPU --mem-type=DDR4_2400_16x4 --network=garnet2.0 --topology=Mesh_XY --mesh-rows=2 --garnet-deadlock-threshold=100000 --sys-clock='2.2GHz' --l1d_size=32kB --l1i_size=32kB --l2_size=2MB --l1d_assoc=2 --l1i_assoc=2 --l2_assoc=16 --cacheline_size=64 --link-latency=3 --routing-algorithm=1 --disk-image=$M5_PATH/disks/ex-linaro-minimal-aarch64.img --kernel=/home/fusiqing/GEM5/gem5/2017sys/binaries/64core.vmlinux --param 'system.realview.gic.gem5_extensions = True' -r 1 --restore-with-cpu=DeriveO3CPU But I encountered the following problems: First of all, the rcs&nbsp;file is not executed. Does the startup checkpoint conflict with the --script&nbsp;command? The second point, I manually enter in the operating system booted by gem5: parsecmgmt -a run -c gcc-hooks -i simsmall -n 1 -p blackscholes &nbsp;I got the following error: panic: Possible Deadlock detected. Aborting! I tried to find the solution from the internet,it seems that there used to be a way to add parameters--garnet-network=flexible,but this method is no longer applicable in gem5-20.0 version. Can someone help me solve this deadlock problem? By the way, when running the facesim program, I can get the correct running result by using 'test' input.