[gem5-dev] Change in gem5/gem5[master]: scons: Fix an error about an unrecognized compiler.

2020-02-07 Thread Gabe Black (Gerrit)
Gabe Black has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/25203 )



Change subject: scons: Fix an error about an unrecognized compiler.
..

scons: Fix an error about an unrecognized compiler.

join was being passed a series of strings to join as separate
arguments like os.path.join, but it expects to get them as members of a
single sequence.

Change-Id: Id88ce4e9c5400f256a1af6351b4a964af0036b72
---
M SConstruct
1 file changed, 2 insertions(+), 2 deletions(-)



diff --git a/SConstruct b/SConstruct
index f378227..eb3a9e4 100755
--- a/SConstruct
+++ b/SConstruct
@@ -389,7 +389,7 @@
  '-Wno-error=deprecated',
 ])
 else:
-error('\n'.join(
+error('\n'.join((
   "Don't know what compiler options to use for your compiler.",
   "compiler: " + main['CXX'],
   "version: " + CXX_version.replace('\n', '') if
@@ -400,7 +400,7 @@
   "",
   "If you are trying to use a compiler other than those listed",
   "above you will need to ease fix SConstruct and ",
-  "src/SConscript to support that compiler."))
+  "src/SConscript to support that compiler.")))

 if main['GCC']:
 # Check for a supported version of gcc. >= 4.8 is chosen for its

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/25203
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: Id88ce4e9c5400f256a1af6351b4a964af0036b72
Gerrit-Change-Number: 25203
Gerrit-PatchSet: 1
Gerrit-Owner: Gabe Black 
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

2020-02-07 Thread Cron Daemon
* 
build/MIPS/tests/opt/quick/se/03.learning-gem5/mips/linux/learning-gem5-p1-simple:
 FAILED!
* 
build/MIPS/tests/opt/quick/se/03.learning-gem5/mips/linux/learning-gem5-p1-two-level:
 FAILED!
* 
build/SPARC/tests/opt/quick/se/40.m5threads-test-atomic/sparc/linux/simple-timing-mp:
 FAILED!
* 
build/SPARC/tests/opt/quick/se/40.m5threads-test-atomic/sparc/linux/o3-timing-mp:
 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-timing: 
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/03.learning-gem5/sparc/linux/learning-gem5-p1-simple:
 FAILED!
* build/SPARC/tests/opt/quick/se/50.vortex/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/02.insttest/sparc/linux/o3-timing: FAILED!
* 
build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64c/simple-atomic: 
FAILED!
* build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64a/o3-timing: 
FAILED!
* build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64c/o3-timing: 
FAILED!
* 
build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64d/simple-timing: 
FAILED!
* build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64m/o3-timing: 
FAILED!
* 
build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64c/simple-timing: 
FAILED!
* 
build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64i/minor-timing: 
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/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-rv64a/minor-timing: 
FAILED!
* 
build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64i/simple-atomic: 
FAILED!
* 
build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64d/simple-timing-ruby:
 FAILED!
* 
build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64c/minor-timing: 
FAILED!
* 
build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64f/minor-timing: 
FAILED!
* 
build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64c/simple-timing-ruby:
 FAILED!
* 
build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64a/simple-timing: 
FAILED!
* build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64d/o3-timing: 
FAILED!
* 
build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64i/simple-timing: 
FAILED!
* 
build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64f/simple-timing: 
FAILED!
* 
build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64d/simple-atomic: 
FAILED!
* 
build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64f/simple-atomic: 
FAILED!
* 
build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64m/minor-timing: 
FAILED!
* 
build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64a/simple-timing-ruby:
 FAILED!
* 
build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64d/minor-timing: 
FAILED!
* build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64i/o3-timing: 
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-rv64a/simple-atomic: 
FAILED!
* 
build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64f/simple-timing-ruby:
 FAILED!
* 
build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64m/simple-timing: 
FAILED!
* build/NULL/tests/opt/quick/se/80.dram-openpage/null/none/dram-lowp: 
CHANGED!
* build/NULL/tests/opt/quick/se/70.tgen/null/none/tgen-simple-mem: CHANGED!
* build/NULL/tests/opt/quick/se/60.rubytest/null/none/rubytest-ruby: 
CHANGED!
* build/NULL/tests/opt/quick/se/80.dram-closepage/null/none/dram-lowp: 
CHANGED!
* build/NULL/tests/opt/quick/se/70.tgen/null/none/tgen-dram-ctrl: CHANGED!
* 
build/NULL_MOESI_hammer/tests/opt/quick/se/60.rubytest/null/none/rubytest-ruby-MOESI_hammer:
 CHANGED!
* 
build/NULL_MESI_Two_Level/tests/opt/quick/se/60.rubytest/null/none/rubytest-ruby-MESI_Two_Level:
 CHANGED!
* 
build/NULL_MOESI_CMP_directory/tests/opt/quick/se/60.rubytest/null/none/rubytest-ruby-MOESI_CMP_directory:
 CHANGED!
* 
build/NULL_MOESI_CMP_token/tests/opt/quick/se/60.rubytest/null/none/rubytest-ruby-MOESI_CMP_token:
 CHANGED!
scons: *** [build/HSAIL_X86/gpu-compute/gpu_static_inst.do] Error 1
scons: *** [build/HSAIL_X86/gpu-compute/gpu_dyn_inst.do] Error 1
scons: *** [build/HSAIL_X86/arch/hsail/insts/gpu_static_inst.do] Error 1
scons: *** [build/HSAIL_X86/arch/hsail/i

[gem5-dev] Change in gem5/gem5[master]: configs: Using VExpress_GEM5_V1 as a default for Options.py

2020-02-07 Thread Giacomo Travaglini (Gerrit)

Hello Nikos Nikoleris,

I'd like you to do a code review. Please visit

https://gem5-review.googlesource.com/c/public/gem5/+/25183

to review the following change.


Change subject: configs: Using VExpress_GEM5_V1 as a default for Options.py
..

configs: Using VExpress_GEM5_V1 as a default for Options.py

This is replacing deprecated VExpress_EMM for scripts using Options.py,
like fs.py.

Change-Id: I2ba01b248bb9baf49e1f2217d623f3b9bc8a35f9
Signed-off-by: Giacomo Travaglini 
Reviewed-by: Nikos Nikoleris 
---
M configs/common/Options.py
1 file changed, 1 insertion(+), 1 deletion(-)



diff --git a/configs/common/Options.py b/configs/common/Options.py
index 4943486..a126f3c 100644
--- a/configs/common/Options.py
+++ b/configs/common/Options.py
@@ -434,7 +434,7 @@
   help="List available platform types")
 parser.add_option("--machine-type", action="store", type="choice",
 choices=ObjectList.platform_list.get_names(),
-default="VExpress_EMM")
+default="VExpress_GEM5_V1")
 parser.add_option("--dtb-filename", action="store", type="string",
   help="Specifies device tree blob file to use with  
device-tree-"\

   "enabled kernels")

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/25183
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: I2ba01b248bb9baf49e1f2217d623f3b9bc8a35f9
Gerrit-Change-Number: 25183
Gerrit-PatchSet: 1
Gerrit-Owner: Giacomo Travaglini 
Gerrit-Reviewer: Nikos Nikoleris 
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]: x86: Handle m5 op accesses directly in the mmapped IPR handlers.

2020-02-07 Thread Gabe Black (Gerrit)
Gabe Black has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/23184 )


Change subject: x86: Handle m5 op accesses directly in the mmapped IPR  
handlers.

..

x86: Handle m5 op accesses directly in the mmapped IPR handlers.

The common handlers only handle the m5ops, and it takes more plumbing
to get to them than to just handle the m5ops directly from x86.

Also, centralizing the call to PseudoInst::pseudoInst prevents
specializing the ABI per-ISA.

Jira Issue: https://gem5.atlassian.net/browse/GEM5-187

Change-Id: Ife9cf0d61ac87605ddc9cf9c84feebb8b23cc33a
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23184
Reviewed-by: Gabe Black 
Maintainer: Gabe Black 
Tested-by: kokoro 
---
M src/arch/x86/mmapped_ipr.hh
M src/arch/x86/tlb.cc
2 files changed, 27 insertions(+), 22 deletions(-)

Approvals:
  Gabe Black: Looks good to me, approved; Looks good to me, approved
  kokoro: Regressions pass



diff --git a/src/arch/x86/mmapped_ipr.hh b/src/arch/x86/mmapped_ipr.hh
index 27cb4de..53690d9 100644
--- a/src/arch/x86/mmapped_ipr.hh
+++ b/src/arch/x86/mmapped_ipr.hh
@@ -46,47 +46,55 @@
  * ISA-specific helper functions for memory mapped IPR accesses.
  */

-#include "arch/generic/mmapped_ipr.hh"
 #include "arch/x86/regs/misc.hh"
 #include "cpu/base.hh"
 #include "cpu/thread_context.hh"
 #include "mem/packet.hh"
+#include "mem/packet_access.hh"
+#include "sim/pseudo_inst.hh"

 namespace X86ISA
 {
 inline Cycles
-handleIprRead(ThreadContext *xc, Packet *pkt)
+handleIprRead(ThreadContext *tc, Packet *pkt)
 {
-if (GenericISA::isGenericIprAccess(pkt)) {
-return GenericISA::handleGenericIprRead(xc, pkt);
+Addr addr = pkt->getAddr();
+auto m5opRange = tc->getSystemPtr()->m5opRange();
+if (m5opRange.contains(addr)) {
+uint8_t func;
+PseudoInst::decodeAddrOffset(addr - m5opRange.start(), func);
+uint64_t ret = PseudoInst::pseudoInst(tc, func);
+pkt->setLE(ret);
 } else {
-Addr offset = pkt->getAddr() & mask(3);
-MiscRegIndex index = (MiscRegIndex)(
-pkt->getAddr() / sizeof(RegVal));
-RegVal data = htole(xc->readMiscReg(index));
+Addr offset = addr & mask(3);
+MiscRegIndex index = (MiscRegIndex)(addr / sizeof(RegVal));
+RegVal data = htole(tc->readMiscReg(index));
 // Make sure we don't trot off the end of data.
 assert(offset + pkt->getSize() <= sizeof(RegVal));
 pkt->setData(((uint8_t *)&data) + offset);
-return Cycles(1);
 }
+return Cycles(1);
 }

 inline Cycles
-handleIprWrite(ThreadContext *xc, Packet *pkt)
+handleIprWrite(ThreadContext *tc, Packet *pkt)
 {
-if (GenericISA::isGenericIprAccess(pkt)) {
-return GenericISA::handleGenericIprWrite(xc, pkt);
+Addr addr = pkt->getAddr();
+auto m5opRange = tc->getSystemPtr()->m5opRange();
+if (m5opRange.contains(addr)) {
+uint8_t func;
+PseudoInst::decodeAddrOffset(addr - m5opRange.start(), func);
+PseudoInst::pseudoInst(tc, func);
 } else {
-Addr offset = pkt->getAddr() & mask(3);
-MiscRegIndex index = (MiscRegIndex)(
-pkt->getAddr() / sizeof(RegVal));
-RegVal data = htole(xc->readMiscRegNoEffect(index));
+Addr offset = addr & mask(3);
+MiscRegIndex index = (MiscRegIndex)(addr / sizeof(RegVal));
+RegVal data = htole(tc->readMiscRegNoEffect(index));
 // Make sure we don't trot off the end of data.
 assert(offset + pkt->getSize() <= sizeof(RegVal));
 pkt->writeData(((uint8_t *)&data) + offset);
-xc->setMiscReg(index, letoh(data));
-return Cycles(1);
+tc->setMiscReg(index, letoh(data));
 }
+return Cycles(1);
 }
 }

diff --git a/src/arch/x86/tlb.cc b/src/arch/x86/tlb.cc
index 65ed9c0..a649871 100644
--- a/src/arch/x86/tlb.cc
+++ b/src/arch/x86/tlb.cc
@@ -230,10 +230,7 @@
 Addr paddr = req->getPaddr();

 if (m5opRange.contains(paddr)) {
-req->setFlags(Request::MMAPPED_IPR | Request::GENERIC_IPR |
-  Request::STRICT_ORDER);
-req->setPaddr(GenericISA::iprAddressPseudoInst((paddr >> 8) & 0xFF,
-   paddr & 0xFF));
+req->setFlags(Request::MMAPPED_IPR | Request::STRICT_ORDER);
 } else if (FullSystem) {
 // Check for an access to the local APIC
 LocalApicBase localApicBase =

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/23184
To unsubscribe, or for help writing mail filters, visit  
https://gem5-review.googlesource.com/settings


Gerrit-Project: public/gem5
Gerrit-Branch: master
Ge

[gem5-dev] Change in gem5/gem5[master]: systemc: gem5_to_tlm: treat non-rw as ignorable command

2020-02-07 Thread Earl Ou (Gerrit)
Earl Ou has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/25163 )



Change subject: systemc: gem5_to_tlm: treat non-rw as ignorable command
..

systemc: gem5_to_tlm: treat non-rw as ignorable command

Treat all kinds of non read/write requests in gem5_to_tlm bridge as  
ignorable

commands.

Change-Id: I5236e1b31f9a57470dc666d01cbe96249f48ed5d
---
M src/systemc/tlm_bridge/gem5_to_tlm.cc
1 file changed, 1 insertion(+), 8 deletions(-)



diff --git a/src/systemc/tlm_bridge/gem5_to_tlm.cc  
b/src/systemc/tlm_bridge/gem5_to_tlm.cc

index f6ea811..8c11c97 100644
--- a/src/systemc/tlm_bridge/gem5_to_tlm.cc
+++ b/src/systemc/tlm_bridge/gem5_to_tlm.cc
@@ -105,13 +105,10 @@
 trans->set_command(tlm::TLM_IGNORE_COMMAND);
 } else if (packet->isRead()) {
 trans->set_command(tlm::TLM_READ_COMMAND);
-} else if (packet->isInvalidate()) {
-/* Do nothing */
-trans->set_command(tlm::TLM_IGNORE_COMMAND);
 } else if (packet->isWrite()) {
 trans->set_command(tlm::TLM_WRITE_COMMAND);
 } else {
-SC_REPORT_FATAL("Gem5ToTlmBridge", "No R/W packet");
+trans->set_command(tlm::TLM_IGNORE_COMMAND);
 }

 // Attach the packet pointer to the TLM transaction to keep track.
@@ -284,10 +281,6 @@
 panic_if(packet->cacheResponding(),
  "Should not see packets where cache is responding");

-panic_if(!(packet->isRead() || packet->isWrite()),
- "Should only see read and writes at TLM memory\n");
-
-
 // We should never get a second request after noting that a retry is
 // required.
 sc_assert(!needToSendRequestRetry);

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/25163
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: I5236e1b31f9a57470dc666d01cbe96249f48ed5d
Gerrit-Change-Number: 25163
Gerrit-PatchSet: 1
Gerrit-Owner: Earl Ou 
Gerrit-MessageType: newchange
___
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev