[gem5-dev] open source full stack debugger?
Hi folks. Recently I was trying to track down what gem5 was doing when it seemed to get lost booting Android, and it occurred to me that debugging with gdb wouldn't help very much since presumably most of the time gem5 would be running in userspace which it wouldn't have symbols for. On top of that, while I might be able to see what was happening at right that instance (when I randomly stopped execution), I wouldn't be able to easily see what other processes were running and what they were doing, what the kernel was up to, etc. While writing a tool that would let you see all that sort of information is definitely technically possible and would be extremely useful, it would likely also be a lot of work. Does anybody know of anything out there already which does something like this? Or that's close and could be used as a starting point? GDB's options are limited since it wants to run as a server you pipe commands to and get text responses from, and (although it might be out of date) what I was reading made it sound like it didn't handle multiple simultaneous contexts of execution completely. The LLVM debugger lldb (I think?) looked like it would give better access to the nuts and bolts. Reading about it on its site made it sound like it was still in early stages though, where only a few arch/OS combinations that are supported. Maybe the parts they're relying on support everything we'd want, but just lldb which drives them is still incomplete? In any case, at this point this is just an intriguing idea I'm kicking around and looking at the feasibility of. Any helpful tips are welcome. Gabe ___ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev
[gem5-dev] Change in gem5/gem5[master]: mem: Remove unused variable
Tommaso Marinelli has submitted this change. ( https://gem5-review.googlesource.com/c/public/gem5/+/21380 ) Change subject: mem: Remove unused variable .. mem: Remove unused variable The variable *sys in dram_ctrl.cc was only used in an assert() check, therefore it has been removed to allow building gem5.fast without errors. A typo in a comment in abstract_mem.hh has also been corrected. Change-Id: I2663545449ecfdb5a27c3574b79dd42beb4a49c8 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21380 Tested-by: kokoro Reviewed-by: Anthony Gutierrez Maintainer: Anthony Gutierrez --- M src/mem/abstract_mem.hh M src/mem/dram_ctrl.cc 2 files changed, 2 insertions(+), 3 deletions(-) Approvals: Anthony Gutierrez: Looks good to me, approved; Looks good to me, approved kokoro: Regressions pass diff --git a/src/mem/abstract_mem.hh b/src/mem/abstract_mem.hh index 655fc01..d92e707 100644 --- a/src/mem/abstract_mem.hh +++ b/src/mem/abstract_mem.hh @@ -161,7 +161,7 @@ } } -/** Pointor to the System object. +/** Pointer to the System object. * This is used for getting the number of masters in the system which is * needed when registering stats */ diff --git a/src/mem/dram_ctrl.cc b/src/mem/dram_ctrl.cc index 1352dbf..37db27c 100644 --- a/src/mem/dram_ctrl.cc +++ b/src/mem/dram_ctrl.cc @@ -2535,8 +2535,7 @@ { using namespace Stats; -System *sys = dram._system; -assert(sys); +assert(dram._system); const auto max_masters = dram._system->maxMasters(); perBankRdBursts.init(dram.banksPerRank * dram.ranksPerChannel); -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/21380 To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings Gerrit-Project: public/gem5 Gerrit-Branch: master Gerrit-Change-Id: I2663545449ecfdb5a27c3574b79dd42beb4a49c8 Gerrit-Change-Number: 21380 Gerrit-PatchSet: 4 Gerrit-Owner: Tommaso Marinelli Gerrit-Reviewer: Anthony Gutierrez Gerrit-Reviewer: Tommaso Marinelli Gerrit-Reviewer: kokoro Gerrit-CC: Gabe Black Gerrit-CC: Jason Lowe-Power Gerrit-MessageType: merged ___ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev
[gem5-dev] Change in gem5/gem5[master]: tests: Fix a minor bug in fixture.py
Bobby R. Bruce has submitted this change. ( https://gem5-review.googlesource.com/c/public/gem5/+/19768 ) Change subject: tests: Fix a minor bug in fixture.py .. tests: Fix a minor bug in fixture.py debug is a part of test_log object. Signed-off-by: Ayaz Akram Change-Id: I56d950483c1d86b76b4f652741d2323c1b078e3e Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/19768 Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power Tested-by: kokoro --- M tests/gem5/fixture.py 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: Jason Lowe-Power: Looks good to me, approved; Looks good to me, approved kokoro: Regressions pass diff --git a/tests/gem5/fixture.py b/tests/gem5/fixture.py index d39296e..21ea3d8 100644 --- a/tests/gem5/fixture.py +++ b/tests/gem5/fixture.py @@ -321,7 +321,8 @@ t = self._getremotetime() except urllib2.URLError: # Problem checking the server, use the old files. -log.test_log.debug("Could not contact server. Binaries may be old.") +log.test_log.debug("Could not contact server. " + "Binaries may be old.") return # If the server version is more recent, download it if t > os.path.getmtime(self.filename): -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/19768 To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings Gerrit-Project: public/gem5 Gerrit-Branch: master Gerrit-Change-Id: I56d950483c1d86b76b4f652741d2323c1b078e3e Gerrit-Change-Number: 19768 Gerrit-PatchSet: 5 Gerrit-Owner: Ayaz Akram Gerrit-Reviewer: Bobby R. Bruce Gerrit-Reviewer: Jason Lowe-Power Gerrit-Reviewer: kokoro Gerrit-MessageType: merged ___ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev
[gem5-dev] Change in gem5/gem5[master]: dev, misc: Fixing "may be used unitialized" compilation error
Bobby R. Bruce has submitted this change. ( https://gem5-review.googlesource.com/c/public/gem5/+/21399 ) Change subject: dev, misc: Fixing "may be used unitialized" compilation error .. dev, misc: Fixing "may be used unitialized" compilation error When compiling using "scons build/X86/base", "error: 'tx_queue_size' may be used uninitialized in this function" is received (cc1plus: all warnings treated as errors). tx_queue_size is now initialized to zero to avoid this compilation error. Change-Id: I0e2a4fd9ad6053c4c4124c83da9a7919778bcc52 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21399 Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power Tested-by: kokoro --- M src/dev/net/etherlink.cc 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jason Lowe-Power: Looks good to me, approved; Looks good to me, approved kokoro: Regressions pass diff --git a/src/dev/net/etherlink.cc b/src/dev/net/etherlink.cc index 448bb88..e250639 100644 --- a/src/dev/net/etherlink.cc +++ b/src/dev/net/etherlink.cc @@ -242,7 +242,7 @@ parent->schedule(doneEvent, event_time); } -size_t tx_queue_size; +size_t tx_queue_size = 0; if (optParamIn(cp, base + ".tx_queue_size", tx_queue_size)) { for (size_t idx = 0; idx < tx_queue_size; ++idx) { Tick tick; -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/21399 To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings Gerrit-Project: public/gem5 Gerrit-Branch: master Gerrit-Change-Id: I0e2a4fd9ad6053c4c4124c83da9a7919778bcc52 Gerrit-Change-Number: 21399 Gerrit-PatchSet: 3 Gerrit-Owner: Bobby R. Bruce Gerrit-Reviewer: Bobby R. Bruce Gerrit-Reviewer: Gabe Black Gerrit-Reviewer: Jason Lowe-Power Gerrit-Reviewer: kokoro Gerrit-MessageType: merged ___ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev
[gem5-dev] Change in gem5/gem5[master]: configs: Isolate ISA related object lists
Daniel Carvalho has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/21439 ) Change subject: configs: Isolate ISA related object lists .. configs: Isolate ISA related object lists Some objects are not compiled when using NULL ISA, and therefore their object lists cannot exist. Change-Id: I93ec576229916c892de50bb6c73cd602e18a3654 Signed-off-by: Daniel R. Carvalho --- M configs/common/ObjectList.py 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/configs/common/ObjectList.py b/configs/common/ObjectList.py index c197439..c477837 100644 --- a/configs/common/ObjectList.py +++ b/configs/common/ObjectList.py @@ -153,10 +153,11 @@ self._is_obj_class): self._sub_classes[name] = cls -bp_list = ObjectList(m5.objects.BranchPredictor) -cpu_list = CPUList(m5.objects.BaseCPU) +if m5.defines.buildEnv['TARGET_ISA'] != "null": +bp_list = ObjectList(m5.objects.BranchPredictor) +cpu_list = CPUList(m5.objects.BaseCPU) +indirect_bp_list = ObjectList(m5.objects.IndirectPredictor) hwp_list = ObjectList(m5.objects.BasePrefetcher) -indirect_bp_list = ObjectList(m5.objects.IndirectPredictor) mem_list = ObjectList(m5.objects.AbstractMemory) # Platform aliases. The platforms listed here might not be compiled, -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/21439 To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings Gerrit-Project: public/gem5 Gerrit-Branch: master Gerrit-Change-Id: I93ec576229916c892de50bb6c73cd602e18a3654 Gerrit-Change-Number: 21439 Gerrit-PatchSet: 1 Gerrit-Owner: Daniel Carvalho Gerrit-MessageType: newchange ___ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev
[gem5-dev] Change in gem5/gem5[master]: tests: Fix a minor bug in fixture.py
Bobby R. Bruce has uploaded a new patch set (#4) to the change originally created by Ayaz Akram. ( https://gem5-review.googlesource.com/c/public/gem5/+/19768 ) Change subject: tests: Fix a minor bug in fixture.py .. tests: Fix a minor bug in fixture.py debug is a part of test_log object. Signed-off-by: Ayaz Akram Change-Id: I56d950483c1d86b76b4f652741d2323c1b078e3e --- M tests/gem5/fixture.py 1 file changed, 2 insertions(+), 1 deletion(-) -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/19768 To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings Gerrit-Project: public/gem5 Gerrit-Branch: master Gerrit-Change-Id: I56d950483c1d86b76b4f652741d2323c1b078e3e Gerrit-Change-Number: 19768 Gerrit-PatchSet: 4 Gerrit-Owner: Ayaz Akram Gerrit-Reviewer: Bobby R. Bruce Gerrit-Reviewer: Jason Lowe-Power Gerrit-Reviewer: kokoro Gerrit-MessageType: newpatchset ___ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev
[gem5-dev] Change in gem5/gem5[master]: tests: Fix a minor bug in fixture.py
Bobby R. Bruce has uploaded a new patch set (#3) to the change originally created by Ayaz Akram. ( https://gem5-review.googlesource.com/c/public/gem5/+/19768 ) Change subject: tests: Fix a minor bug in fixture.py .. tests: Fix a minor bug in fixture.py debug is a part of test_log object. Signed-off-by: Ayaz Akram Change-Id: I56d950483c1d86b76b4f652741d2323c1b078e3e --- M tests/gem5/fixture.py 1 file changed, 2 insertions(+), 1 deletion(-) -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/19768 To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings Gerrit-Project: public/gem5 Gerrit-Branch: master Gerrit-Change-Id: I56d950483c1d86b76b4f652741d2323c1b078e3e Gerrit-Change-Number: 19768 Gerrit-PatchSet: 3 Gerrit-Owner: Ayaz Akram Gerrit-Reviewer: Bobby R. Bruce Gerrit-Reviewer: Jason Lowe-Power Gerrit-Reviewer: kokoro Gerrit-MessageType: newpatchset ___ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev
[gem5-dev] Change in gem5/gem5[master]: dev, misc: Fixing "may be used unitialized" compilation error
Bobby R. Bruce has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/21399 ) Change subject: dev, misc: Fixing "may be used unitialized" compilation error .. dev, misc: Fixing "may be used unitialized" compilation error When compiling using "scons build/X86/base", "error: 'tx_queue_size' may be used uninitialized in this function" is received (cc1plus: all warnings treated as errors). tx_queue_size is now initialized to zero to avoid this compilation error. Change-Id: I0e2a4fd9ad6053c4c4124c83da9a7919778bcc52 --- M src/dev/net/etherlink.cc 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dev/net/etherlink.cc b/src/dev/net/etherlink.cc index 448bb88..e250639 100644 --- a/src/dev/net/etherlink.cc +++ b/src/dev/net/etherlink.cc @@ -242,7 +242,7 @@ parent->schedule(doneEvent, event_time); } -size_t tx_queue_size; +size_t tx_queue_size = 0; if (optParamIn(cp, base + ".tx_queue_size", tx_queue_size)) { for (size_t idx = 0; idx < tx_queue_size; ++idx) { Tick tick; -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/21399 To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings Gerrit-Project: public/gem5 Gerrit-Branch: master Gerrit-Change-Id: I0e2a4fd9ad6053c4c4124c83da9a7919778bcc52 Gerrit-Change-Number: 21399 Gerrit-PatchSet: 1 Gerrit-Owner: Bobby R. Bruce Gerrit-MessageType: newchange ___ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev
[gem5-dev] Change in gem5/gem5[master]: sim-se: Fix invalid delete of params on clone
Brandon Potter has submitted this change. ( https://gem5-review.googlesource.com/c/public/gem5/+/18068 ) Change subject: sim-se: Fix invalid delete of params on clone .. sim-se: Fix invalid delete of params on clone The params pointer is kept by the SimObject and should not be deleted until gem5 exits. Added a to do to remember this object is leaked. Change-Id: I46cc23a09e4e9b6bc2fdcd961148324c41820815 Signed-off-by: Jason Lowe-Power Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18068 Tested-by: kokoro Maintainer: Brandon Potter Reviewed-by: Brandon Potter --- M src/sim/syscall_emul.hh 1 file changed, 3 insertions(+), 1 deletion(-) Approvals: Brandon Potter: Looks good to me, approved; Looks good to me, approved Jason Lowe-Power: Looks good to me, approved kokoro: Regressions pass diff --git a/src/sim/syscall_emul.hh b/src/sim/syscall_emul.hh index 130791d..fb6e9a1 100644 --- a/src/sim/syscall_emul.hh +++ b/src/sim/syscall_emul.hh @@ -1562,7 +1562,9 @@ pp->useArchPT = p->useArchPT; pp->kvmInSE = p->kvmInSE; Process *cp = pp->create(); -delete pp; +// TODO: there is no way to know when the Process SimObject is done with +// the params pointer. Both the params pointer (pp) and the process +// pointer (cp) are normally managed in python and are never cleaned up. Process *owner = ctc->getProcessPtr(); ctc->setProcessPtr(cp); -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/18068 To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings Gerrit-Project: public/gem5 Gerrit-Branch: master Gerrit-Change-Id: I46cc23a09e4e9b6bc2fdcd961148324c41820815 Gerrit-Change-Number: 18068 Gerrit-PatchSet: 6 Gerrit-Owner: Jason Lowe-Power Gerrit-Reviewer: Alexandru Duțu Gerrit-Reviewer: Brandon Potter Gerrit-Reviewer: Daniel Carvalho Gerrit-Reviewer: Jason Lowe-Power Gerrit-Reviewer: kokoro Gerrit-MessageType: merged ___ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev
[gem5-dev] Change in gem5/gem5[master]: mem: Remove unused variable
Tommaso Marinelli has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/21380 ) Change subject: mem: Remove unused variable .. mem: Remove unused variable The variable *sys in dram_ctrl.cc was only used in an assert() check, therefore it has been removed to allow building gem5.fast without errors. A typo in a comment in abstract_mem.hh has also been corrected. Change-Id: I2663545449ecfdb5a27c3574b79dd42beb4a49c8 --- M src/mem/abstract_mem.hh M src/mem/dram_ctrl.cc 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/mem/abstract_mem.hh b/src/mem/abstract_mem.hh index 655fc01..d92e707 100644 --- a/src/mem/abstract_mem.hh +++ b/src/mem/abstract_mem.hh @@ -161,7 +161,7 @@ } } -/** Pointor to the System object. +/** Pointer to the System object. * This is used for getting the number of masters in the system which is * needed when registering stats */ diff --git a/src/mem/dram_ctrl.cc b/src/mem/dram_ctrl.cc index 1352dbf..37db27c 100644 --- a/src/mem/dram_ctrl.cc +++ b/src/mem/dram_ctrl.cc @@ -2535,8 +2535,7 @@ { using namespace Stats; -System *sys = dram._system; -assert(sys); +assert(dram._system); const auto max_masters = dram._system->maxMasters(); perBankRdBursts.init(dram.banksPerRank * dram.ranksPerChannel); -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/21380 To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings Gerrit-Project: public/gem5 Gerrit-Branch: master Gerrit-Change-Id: I2663545449ecfdb5a27c3574b79dd42beb4a49c8 Gerrit-Change-Number: 21380 Gerrit-PatchSet: 1 Gerrit-Owner: Tommaso Marinelli Gerrit-MessageType: newchange ___ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev
[gem5-dev] Cron /z/m5/regression/do-regression quick
* build/ALPHA/tests/opt/quick/se/50.memtest/alpha/linux/memtest-ruby: FAILED! * build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-timing-dual: FAILED! * build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-timing: FAILED! * build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/simple-atomic: FAILED! * build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/simple-timing: FAILED! * build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-atomic: FAILED! * build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-atomic-dual: FAILED! * build/ALPHA/tests/opt/quick/se/03.learning-gem5/alpha/linux/learning-gem5-p1-two-level: FAILED! * build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/simple-timing-ruby: FAILED! * build/ALPHA/tests/opt/quick/se/03.learning-gem5/alpha/linux/learning-gem5-p1-simple: FAILED! * build/ALPHA/tests/opt/quick/se/01.hello-2T-smt/alpha/linux/o3-timing-mt: FAILED! * build/ALPHA/tests/opt/quick/fs/80.netperf-stream/alpha/linux/twosys-tsunami-simple-atomic: FAILED! * build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/o3-timing: FAILED! * build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/minor-timing: FAILED! * build/MIPS/tests/opt/quick/se/00.hello/mips/linux/o3-timing: FAILED! * build/MIPS/tests/opt/quick/se/00.hello/mips/linux/simple-timing-ruby: FAILED! * build/MIPS/tests/opt/quick/se/00.hello/mips/linux/simple-timing: FAILED! * build/MIPS/tests/opt/quick/se/03.learning-gem5/mips/linux/learning-gem5-p1-two-level: FAILED! * build/MIPS/tests/opt/quick/se/00.hello/mips/linux/simple-atomic: FAILED! * build/MIPS/tests/opt/quick/se/03.learning-gem5/mips/linux/learning-gem5-p1-simple: FAILED! * build/NULL/tests/opt/quick/se/70.tgen/null/none/tgen-dram-ctrl: FAILED! * build/NULL/tests/opt/quick/se/80.dram-openpage/null/none/dram-lowp: FAILED! * build/NULL/tests/opt/quick/se/70.tgen/null/none/tgen-simple-mem: FAILED! * build/NULL/tests/opt/quick/se/50.memtest/null/none/memtest-filter: FAILED! * build/NULL/tests/opt/quick/se/50.memtest/null/none/memtest: FAILED! * build/NULL/tests/opt/quick/se/51.memcheck/null/none/memcheck: FAILED! * build/NULL/tests/opt/quick/se/60.rubytest/null/none/rubytest-ruby: FAILED! * build/NULL/tests/opt/quick/se/80.dram-closepage/null/none/dram-lowp: FAILED! * build/NULL_MOESI_hammer/tests/opt/quick/se/60.rubytest/null/none/rubytest-ruby-MOESI_hammer: FAILED! * build/NULL_MESI_Two_Level/tests/opt/quick/se/60.rubytest/null/none/rubytest-ruby-MESI_Two_Level: FAILED! * build/NULL_MOESI_CMP_token/tests/opt/quick/se/60.rubytest/null/none/rubytest-ruby-MOESI_CMP_token: FAILED! * build/POWER/tests/opt/quick/se/00.hello/power/linux/simple-atomic: FAILED! * build/POWER/tests/opt/quick/se/00.hello/power/linux/o3-timing: FAILED! * build/SPARC/tests/opt/quick/se/10.mcf/sparc/linux/simple-atomic: FAILED! * build/SPARC/tests/opt/quick/se/70.twolf/sparc/linux/simple-atomic: FAILED! * build/SPARC/tests/opt/quick/se/70.twolf/sparc/linux/simple-timing: FAILED! * build/SPARC/tests/opt/quick/se/40.m5threads-test-atomic/sparc/linux/simple-timing-mp: FAILED! * build/SPARC/tests/opt/quick/se/02.insttest/sparc/linux/simple-timing: FAILED! * build/SPARC/tests/opt/quick/se/40.m5threads-test-atomic/sparc/linux/simple-atomic-mp: FAILED! * build/SPARC/tests/opt/quick/se/40.m5threads-test-atomic/sparc/linux/o3-timing-mp: FAILED! * build/SPARC/tests/opt/quick/se/00.hello/sparc/linux/simple-timing: FAILED! * build/SPARC/tests/opt/quick/se/02.insttest/sparc/linux/o3-timing: FAILED! * build/SPARC/tests/opt/quick/se/50.vortex/sparc/linux/simple-atomic: FAILED! * build/SPARC/tests/opt/quick/se/02.insttest/sparc/linux/simple-atomic: FAILED! * build/SPARC/tests/opt/quick/se/03.learning-gem5/sparc/linux/learning-gem5-p1-two-level: FAILED! * build/SPARC/tests/opt/quick/se/00.hello/sparc/linux/simple-timing-ruby: FAILED! * build/SPARC/tests/opt/quick/se/50.vortex/sparc/linux/simple-timing: FAILED! * build/SPARC/tests/opt/quick/se/00.hello/sparc/linux/simple-atomic: FAILED! * build/SPARC/tests/opt/quick/se/03.learning-gem5/sparc/linux/learning-gem5-p1-simple: FAILED! * build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64m/simple-atomic: FAILED! * build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64f/o3-timing: FAILED! * build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64m/minor-timing: FAILED! * build/RISCV/tests/opt/quick/se/00.hello/riscv/linux/simple-atomic: FAILED! * build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64m/simple-timing-ruby: FAILED! * build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64i/simple-timing-ruby: FAILED! * build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64d/minor-timing: FAILED! *
[gem5-dev] Change in gem5/gem5[master]: arch-arm: Set CM bit in DataAbort
Giacomo Travaglini has submitted this change. ( https://gem5-review.googlesource.com/c/public/gem5/+/21305 ) Change subject: arch-arm: Set CM bit in DataAbort .. arch-arm: Set CM bit in DataAbort The CM bit in a DataAbort ISS indicates whether the Data Abort came from a cache maintenance or address translation instruction. Change-Id: I520446550581c8dd0507a8989935db7047be Signed-off-by: Giacomo Travaglini Reviewed-by: Andreas Sandberg Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21305 Maintainer: Andreas Sandberg Tested-by: kokoro --- M src/arch/arm/faults.cc M src/arch/arm/faults.hh 2 files changed, 9 insertions(+), 1 deletion(-) Approvals: Andreas Sandberg: Looks good to me, approved; Looks good to me, approved kokoro: Regressions pass diff --git a/src/arch/arm/faults.cc b/src/arch/arm/faults.cc index c5858c9..b006d12 100644 --- a/src/arch/arm/faults.cc +++ b/src/arch/arm/faults.cc @@ -1369,6 +1369,9 @@ // Add on the data abort specific fields to the generic abort ISS value val = AbortFault::iss(); + +val |= cm << 8; + // ISS is valid if not caused by a stage 1 page table walk, and when taken // to AArch64 only when directed to EL2 if (!s1ptw && stage2 && (!to64 || toEL == EL2)) { @@ -1412,6 +1415,9 @@ isv = true; ar = val; break; + case CM: +cm = val; +break; // Just ignore unknown ID's default: break; diff --git a/src/arch/arm/faults.hh b/src/arch/arm/faults.hh index 5e68875..645a461 100644 --- a/src/arch/arm/faults.hh +++ b/src/arch/arm/faults.hh @@ -136,6 +136,7 @@ SAS, // DataAbort: Syndrome Access Size SSE, // DataAbort: Syndrome Sign Extend SRT, // DataAbort: Syndrome Register Transfer +CM,// DataAbort: Cache Maintenance/Address Translation Op // AArch64 only SF,// DataAbort: width of the accessed register is SixtyFour @@ -482,6 +483,7 @@ uint8_t sas; uint8_t sse; uint8_t srt; +uint8_t cm; // AArch64 only bool sf; @@ -491,7 +493,7 @@ bool _stage2 = false, ArmFault::TranMethod _tranMethod = ArmFault::UnknownTran) : AbortFault(_addr, _write, _domain, _source, _stage2, _tranMethod), -isv(false), sas (0), sse(0), srt(0), sf(false), ar(false) +isv(false), sas (0), sse(0), srt(0), cm(0), sf(false), ar(false) {} ExceptionClass ec(ThreadContext *tc) const override; -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/21305 To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings Gerrit-Project: public/gem5 Gerrit-Branch: master Gerrit-Change-Id: I520446550581c8dd0507a8989935db7047be Gerrit-Change-Number: 21305 Gerrit-PatchSet: 2 Gerrit-Owner: Giacomo Travaglini Gerrit-Reviewer: Andreas Sandberg Gerrit-Reviewer: Giacomo Travaglini Gerrit-Reviewer: kokoro Gerrit-MessageType: merged ___ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev
[gem5-dev] Change in gem5/gem5[master]: arch-arm: Annotate CM flag in AA64 CM Instructions
Giacomo Travaglini has submitted this change. ( https://gem5-review.googlesource.com/c/public/gem5/+/21306 ) Change subject: arch-arm: Annotate CM flag in AA64 CM Instructions .. arch-arm: Annotate CM flag in AA64 CM Instructions DC ZVA instruction is not classified as a cache maintenance instruction, and therefore its execution cannot cause this field to be set to 1. Change-Id: I0f30db1e6fc629dc52293edfb2bac4cf99ee49cc Signed-off-by: Giacomo Travaglini Reviewed-by: Andreas Sandberg Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21306 Tested-by: kokoro Maintainer: Andreas Sandberg --- M src/arch/arm/isa/insts/data64.isa 1 file changed, 14 insertions(+), 4 deletions(-) Approvals: Andreas Sandberg: Looks good to me, approved; Looks good to me, approved kokoro: Regressions pass diff --git a/src/arch/arm/isa/insts/data64.isa b/src/arch/arm/isa/insts/data64.isa index f5be476..fcce011 100644 --- a/src/arch/arm/isa/insts/data64.isa +++ b/src/arch/arm/isa/insts/data64.isa @@ -410,6 +410,12 @@ exec_output += DCStore64InitiateAcc.subst(msrDCZVAIop); exec_output += Store64CompleteAcc.subst(msrDCZVAIop); +# Cache maintenance fault annotation +# The DC ZVA instruction is not classified as a cache maintenance +# instruction, and therefore we shouldn't annotate it +cachem_fa = ''' +fault->annotate(ArmFault::CM, 1); +''' msrdccvau_ea_code = msr_check_code msrdccvau_ea_code += ''' @@ -425,7 +431,8 @@ { "ea_code" : msrdccvau_ea_code, "memacc_code" : ';', "use_uops" : 0, - "op_wb" : ";", "fa_code" : ";"}, + "op_wb" : ";", + "fa_code" : cachem_fa}, ['IsStore', 'IsMemRef']); header_output += DCStore64Declare.subst(msrDCCVAUIop); decoder_output += DCStore64Constructor.subst(msrDCCVAUIop); @@ -448,7 +455,8 @@ { "ea_code" : msrdccvac_ea_code, "memacc_code" : ';', "use_uops" : 0, - "op_wb" : ";", "fa_code" : ";"}, + "op_wb" : ";", + "fa_code" : cachem_fa}, ['IsStore', 'IsMemRef']); header_output += DCStore64Declare.subst(msrDCCVACIop); decoder_output += DCStore64Constructor.subst(msrDCCVACIop); @@ -471,7 +479,8 @@ { "ea_code" : msrdccivac_ea_code, "memacc_code" : ';', "use_uops" : 0, -"op_wb" : ";", "fa_code" : ";"}, +"op_wb" : ";", +"fa_code" : cachem_fa}, ['IsStore', 'IsMemRef']); header_output += DCStore64Declare.subst(msrDCCIVACIop); decoder_output += DCStore64Constructor.subst(msrDCCIVACIop); @@ -500,7 +509,8 @@ { "ea_code" : msrdcivac_ea_code, "memacc_code" : ';', "use_uops" : 0, - "op_wb" : ";", "fa_code" : ";"}, + "op_wb" : ";", + "fa_code" : cachem_fa}, ['IsStore', 'IsMemRef']); header_output += DCStore64Declare.subst(msrDCIVACIop); decoder_output += DCStore64Constructor.subst(msrDCIVACIop); -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/21306 To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings Gerrit-Project: public/gem5 Gerrit-Branch: master Gerrit-Change-Id: I0f30db1e6fc629dc52293edfb2bac4cf99ee49cc Gerrit-Change-Number: 21306 Gerrit-PatchSet: 4 Gerrit-Owner: Giacomo Travaglini Gerrit-Reviewer: Andreas Sandberg Gerrit-Reviewer: Giacomo Travaglini Gerrit-Reviewer: kokoro Gerrit-CC: Bobby R. Bruce Gerrit-MessageType: merged ___ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev