[gem5-dev] Cron /z/m5/regression/do-regression quick

2020-01-18 Thread Cron Daemon
* 
build/ARM/tests/opt/quick/fs/10.linux-boot/arm/linux/realview-switcheroo-atomic:
 FAILED!
* 
build/ARM/tests/opt/quick/fs/10.linux-boot/arm/linux/realview-simple-atomic: 
FAILED!
* 
build/ARM/tests/opt/quick/fs/10.linux-boot/arm/linux/realview-simple-atomic-checkpoint:
 FAILED!
* 
build/ARM/tests/opt/quick/fs/10.linux-boot/arm/linux/realview-simple-timing-dual:
 FAILED!
* 
build/ARM/tests/opt/quick/fs/10.linux-boot/arm/linux/realview-switcheroo-timing:
 FAILED!
* 
build/ARM/tests/opt/quick/fs/10.linux-boot/arm/linux/realview-simple-timing: 
FAILED!
* 
build/ARM/tests/opt/quick/fs/10.linux-boot/arm/linux/realview-simple-atomic-dual:
 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-rv64c/simple-timing-ruby:
 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-rv64c/minor-timing: 
FAILED!
* 
build/RISCV/tests/opt/quick/se/02.insttest/riscv/linux-rv64c/simple-atomic: 
FAILED!
* build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/simple-timing-ruby: 
CHANGED!
* build/ALPHA/tests/opt/quick/se/01.hello-2T-smt/alpha/linux/o3-timing-mt: 
CHANGED!
* build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/o3-timing: CHANGED!
* build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/simple-timing: 
CHANGED!
* build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/minor-timing: CHANGED!
* build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/simple-atomic: 
CHANGED!
* 
build/ALPHA/tests/opt/quick/se/03.learning-gem5/alpha/linux/learning-gem5-p1-two-level:
 CHANGED!
* 
build/ALPHA/tests/opt/quick/se/03.learning-gem5/alpha/linux/learning-gem5-p1-simple:
 CHANGED!
* 
build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-atomic: 
CHANGED!
* 
build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-atomic-dual:
 CHANGED!
* 
build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-timing: 
CHANGED!
* build/MIPS/tests/opt/quick/se/00.hello/mips/linux/simple-atomic: CHANGED!
* 
build/MIPS/tests/opt/quick/se/03.learning-gem5/mips/linux/learning-gem5-p1-two-level:
 CHANGED!
* build/MIPS/tests/opt/quick/se/00.hello/mips/linux/simple-timing-ruby: 
CHANGED!
* 
build/MIPS/tests/opt/quick/se/03.learning-gem5/mips/linux/learning-gem5-p1-simple:
 CHANGED!
* build/MIPS/tests/opt/quick/se/00.hello/mips/linux/simple-timing: CHANGED!
* build/MIPS/tests/opt/quick/se/00.hello/mips/linux/o3-timing: CHANGED!
* 
build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-timing-dual:
 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!
* 
build/ALPHA/tests/opt/quick/fs/80.netperf-stream/alpha/linux/twosys-tsunami-simple-atomic:
 CHANGED!
* build/POWER/tests/opt/quick/se/00.hello/power/linux/simple-atomic: 
CHANGED!
* build/POWER/tests/opt/quick/se/00.hello/power/linux/o3-timing: CHANGED!
* 
build/SPARC/tests/opt/quick/se/03.learning-gem5/sparc/linux/learning-gem5-p1-simple:
 CHANGED!
* build/SPARC/tests/opt/quick/se/02.insttest/sparc/linux/simple-timing: 
CHANGED!
* build/SPARC/tests/opt/quick/se/00.hello/sparc/linux/simple-timing-ruby: 
CHANGED!
* build/SPARC/tests/opt/quick/se/02.insttest/sparc/linux/simple-atomic: 
CHANGED!
* build/SPARC/tests/opt/quick/se/00.hello/sparc/linux/simple-timing: 
CHANGED!
* 
build/SPARC/tests/opt/quick/se/03.learning-gem5/sparc/linux/learning-gem5-p1-two-level:
 CHANGED!
* build/SPARC/tests/opt/quick/se/02.insttest/sparc/linux/o3-timing: CHANGED!
* 
build/SPARC/tests/opt/quick/se/40.m5threads-test-atomic/sparc/linux/simple-timing-mp:
 CHANGED!
* 
build/SPARC/tests/opt/quick/se/40.m5threads-test-atomic/sparc/linux/simple-atomic-mp:
 CHANGED!
* 
build/SPARC/tests/opt/quick/se/40.m5threads-test-atomic/sparc/linux/o3-timing-mp:
 CHANGED!
* build/SPARC/tests/opt/quick/se/00.hello/sparc/linux/simple-atomic: 
CHANGED!
* build/X86/tests/opt/quick/se/00.hello/x86/linux/simple-timing: CHANGED!
* build/SPARC/tests/opt/quick/se/50.vortex/sparc/linux/simple-atomic: 
CHANGED!
* build/SPARC/tests/opt/quick/se/70.twolf/sparc/linux/simple-atomic: 
CHANGED!
* build/SPARC/tests/opt/quick/se/50.vortex/sparc/linux/simple-timing: 
CHANGED!
* 
build/X86/tests/opt/quick/se/03.learning-gem5/x86/linux/learning-gem5-p1-two-level:
 CHANGED!
* 

[gem5-dev] Cron /z/m5/regression/do-regression quick

2020-01-18 Thread Cron Daemon
* 
build/ARM/tests/opt/quick/fs/10.linux-boot/arm/linux/realview-switcheroo-atomic:
 FAILED!
* 
build/ARM/tests/opt/quick/fs/10.linux-boot/arm/linux/realview-simple-timing: 
FAILED!
* 
build/ARM/tests/opt/quick/fs/10.linux-boot/arm/linux/realview-simple-atomic-checkpoint:
 FAILED!
* 
build/ARM/tests/opt/quick/fs/10.linux-boot/arm/linux/realview-switcheroo-timing:
 FAILED!
* 
build/ARM/tests/opt/quick/fs/10.linux-boot/arm/linux/realview-simple-atomic-dual:
 FAILED!
* 
build/ARM/tests/opt/quick/fs/10.linux-boot/arm/linux/realview-simple-atomic: 
FAILED!
* 
build/ARM/tests/opt/quick/fs/10.linux-boot/arm/linux/realview-simple-timing-dual:
 FAILED!
* build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/o3-timing: CHANGED!
* build/ALPHA/tests/opt/quick/se/01.hello-2T-smt/alpha/linux/o3-timing-mt: 
CHANGED!
* build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/simple-timing-ruby: 
CHANGED!
* build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/simple-timing: 
CHANGED!
* build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/minor-timing: CHANGED!
* build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/simple-atomic: 
CHANGED!
* 
build/ALPHA/tests/opt/quick/se/03.learning-gem5/alpha/linux/learning-gem5-p1-two-level:
 CHANGED!
* 
build/ALPHA/tests/opt/quick/se/03.learning-gem5/alpha/linux/learning-gem5-p1-simple:
 CHANGED!
* 
build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-atomic: 
CHANGED!
* 
build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-atomic-dual:
 CHANGED!
* 
build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-timing: 
CHANGED!
* 
build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-timing-dual:
 CHANGED!
* build/MIPS/tests/opt/quick/se/00.hello/mips/linux/simple-atomic: CHANGED!
* 
build/MIPS/tests/opt/quick/se/03.learning-gem5/mips/linux/learning-gem5-p1-two-level:
 CHANGED!
* 
build/MIPS/tests/opt/quick/se/03.learning-gem5/mips/linux/learning-gem5-p1-simple:
 CHANGED!
* build/MIPS/tests/opt/quick/se/00.hello/mips/linux/simple-timing: CHANGED!
* build/MIPS/tests/opt/quick/se/00.hello/mips/linux/simple-timing-ruby: 
CHANGED!
* build/MIPS/tests/opt/quick/se/00.hello/mips/linux/o3-timing: CHANGED!
* 
build/ALPHA/tests/opt/quick/fs/80.netperf-stream/alpha/linux/twosys-tsunami-simple-atomic:
 CHANGED!
* build/NULL/tests/opt/quick/se/80.dram-openpage/null/none/dram-lowp: 
CHANGED!
* build/NULL/tests/opt/quick/se/80.dram-closepage/null/none/dram-lowp: 
CHANGED!
* build/NULL/tests/opt/quick/se/60.rubytest/null/none/rubytest-ruby: 
CHANGED!
* build/NULL/tests/opt/quick/se/70.tgen/null/none/tgen-simple-mem: 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!
* build/POWER/tests/opt/quick/se/00.hello/power/linux/simple-atomic: 
CHANGED!
* build/POWER/tests/opt/quick/se/00.hello/power/linux/o3-timing: CHANGED!
* build/X86/tests/opt/quick/se/00.hello/x86/linux/simple-timing-ruby: 
CHANGED!
* build/X86/tests/opt/quick/se/00.hello/x86/linux/simple-atomic: CHANGED!
* 
build/X86/tests/opt/quick/se/03.learning-gem5/x86/linux/learning-gem5-p1-simple:
 CHANGED!
* build/X86/tests/opt/quick/se/00.hello/x86/linux/o3-timing: CHANGED!
* build/X86/tests/opt/quick/se/00.hello/x86/linux/simple-timing: CHANGED!
* 
build/X86/tests/opt/quick/se/03.learning-gem5/x86/linux/learning-gem5-p1-two-level:
 CHANGED!
* build/X86/tests/opt/quick/se/70.twolf/x86/linux/simple-atomic: CHANGED!
* build/X86/tests/opt/quick/fs/10.linux-boot/x86/linux/pc-simple-timing: 
CHANGED!
* build/X86/tests/opt/quick/fs/10.linux-boot/x86/linux/pc-simple-atomic: 
CHANGED!
* build/X86/tests/opt/quick/se/10.mcf/x86/linux/simple-atomic: CHANGED!
* build/X86/tests/opt/quick/se/70.twolf/x86/linux/simple-timing: CHANGED!
* 
build/ARM/tests/opt/quick/se/03.learning-gem5/arm/linux/learning-gem5-p1-simple:
 CHANGED!
* build/ARM/tests/opt/quick/se/00.hello/arm/linux/o3-timing: CHANGED!
* build/ARM/tests/opt/quick/se/00.hello/arm/linux/simple-atomic: CHANGED!
* 
build/ARM/tests/opt/quick/se/03.learning-gem5/arm/linux/learning-gem5-p1-two-level:
 CHANGED!
* build/ARM/tests/opt/quick/se/00.hello/arm/linux/o3-timing-checker: 
CHANGED!
* 
build/ARM/tests/opt/quick/se/00.hello/arm/linux/simple-atomic-dummychecker: 
CHANGED!
* build/ARM/tests/opt/quick/se/00.hello/arm/linux/minor-timing: CHANGED!
* 

[gem5-dev] Change in gem5/gem5[master]: tests: Updated tests to download from http://dist.gem5.org

2020-01-18 Thread Bobby R. Bruce (Gerrit)
Bobby R. Bruce has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/24548 )


Change subject: tests: Updated tests to download from http://dist.gem5.org
..

tests: Updated tests to download from http://dist.gem5.org

Previously some tests, and test resources, downloaded content from
http://gem5.org . This is being migrated to http://dist.gem5.org.
http://dist.gem5.org should be used to store and retrieve resources
going forward.

Change-Id: I7162c76b9b8dc07657a6ba50d643fc93c9824fdf
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24548
Reviewed-by: Jason Lowe-Power 
Maintainer: Jason Lowe-Power 
Tested-by: kokoro 
---
M tests/gem5/cpu_tests/test.py
M tests/gem5/fs/linux/arm/test.py
M tests/gem5/m5_util/test_exit.py
M tests/test-progs/hello/src/Makefile.arm
M tests/test-progs/hello/src/Makefile.x86
M tests/test-progs/m5-exit/src/Makefile.x86
6 files changed, 7 insertions(+), 6 deletions(-)

Approvals:
  Jason Lowe-Power: Looks good to me, approved; Looks good to me, approved
  kokoro: Regressions pass



diff --git a/tests/gem5/cpu_tests/test.py b/tests/gem5/cpu_tests/test.py
index 58925de..1a61a73 100644
--- a/tests/gem5/cpu_tests/test.py
+++ b/tests/gem5/cpu_tests/test.py
@@ -43,7 +43,7 @@


 base_path = joinpath(absdirpath(__file__), 'benchmarks', 'bin')
-base_url = 'http://gem5.org/dist/current/gem5/cpu_tests/benchmarks/bin/'
+base_url  
= 'http://dist.gem5.org/dist/current/gem5/cpu_tests/benchmarks/bin/'

 for isa in valid_isas:
 path = joinpath(base_path, isa)
 for workload in workloads:
diff --git a/tests/gem5/fs/linux/arm/test.py  
b/tests/gem5/fs/linux/arm/test.py

index 4ed58ae..15a1c6f 100644
--- a/tests/gem5/fs/linux/arm/test.py
+++ b/tests/gem5/fs/linux/arm/test.py
@@ -84,7 +84,7 @@
 ]

 tarball = 'aarch-system-201901106.tar.bz2'
-url = "http://gem5.org/dist/current/arm/; + tarball
+url = "http://dist.gem5.org/dist/current/arm/; + tarball
 path = os.path.dirname(os.path.abspath(__file__))
 arm_fs_binaries = DownloadedArchive(url, path, tarball)

diff --git a/tests/gem5/m5_util/test_exit.py  
b/tests/gem5/m5_util/test_exit.py

index 3c99512..2268074 100644
--- a/tests/gem5/m5_util/test_exit.py
+++ b/tests/gem5/m5_util/test_exit.py
@@ -40,7 +40,8 @@
 path = joinpath(absdirpath(__file__), '..',
 'test-progs', 'hello', 'bin', 'x86', 'linux')
 filename = 'm5_exit'
-url  
= 'http://gem5.org/dist/current/test-progs/m5-exit/bin/x86/linux/m5_exit'

+url = 'http://dist.gem5.org/dist/current/test-progs/' +
+  'm5-exit/bin/x86/linux/m5_exit'
 test_program = DownloadedProgram(url, path, filename)

 a = verifier.MatchRegex(m5_exit_regex)
diff --git a/tests/test-progs/hello/src/Makefile.arm  
b/tests/test-progs/hello/src/Makefile.arm

index 2aad6f5..1f02246 100644
--- a/tests/test-progs/hello/src/Makefile.arm
+++ b/tests/test-progs/hello/src/Makefile.arm
@@ -1,6 +1,6 @@
 SERVER_USER=
 SERVER_PATH=/z/www/htdocs/dist/current/test-progs/hello/bin/arm/linux
-FETCH_PATH=http://gem5.org/dist/current/test-progs/hello/bin/arm/linux
+FETCH_PATH=http://dist.gem5.org/dist/current/test-progs/hello/bin/arm/linux
 UPLOAD_LOCATION=$(SERVER_USER)daystrom.gem5.org:$(SERVER_PATH)

 all: hello64-static hello32-static
diff --git a/tests/test-progs/hello/src/Makefile.x86  
b/tests/test-progs/hello/src/Makefile.x86

index 3eff291..3df2d23 100644
--- a/tests/test-progs/hello/src/Makefile.x86
+++ b/tests/test-progs/hello/src/Makefile.x86
@@ -1,6 +1,6 @@
 SERVER_USER=
 SERVER_PATH=/z/www/htdocs/dist/current/test-progs/hello/bin/x86/linux
-FETCH_PATH=http://gem5.org/dist/current/test-progs/hello/bin/x86/linux
+FETCH_PATH=http://dist.gem5.org/dist/current/test-progs/hello/bin/x86/linux

 UPLOAD_LOCATION=$(SERVER_USER)daystrom.gem5.org:$(SERVER_PATH)

diff --git a/tests/test-progs/m5-exit/src/Makefile.x86  
b/tests/test-progs/m5-exit/src/Makefile.x86

index eba7342..2c94a54 100644
--- a/tests/test-progs/m5-exit/src/Makefile.x86
+++ b/tests/test-progs/m5-exit/src/Makefile.x86
@@ -1,6 +1,6 @@
 SERVER_USER=
 SERVER_PATH=/z/www/htdocs/dist/current/test-progs/m5-exit/bin/x86/linux
-FETCH_PATH=http://gem5.org/dist/current/test-progs/m5-exit/bin/x86/linux
+FETCH_PATH=http://dist.gem5.org/dist/current/test-progs/m5-exit/bin/x86/linux

 UPLOAD_LOCATION=$(SERVER_USER)daystrom.gem5.org:$(SERVER_PATH)


--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/24548
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: I7162c76b9b8dc07657a6ba50d643fc93c9824fdf
Gerrit-Change-Number: 24548
Gerrit-PatchSet: 4
Gerrit-Owner: Bobby R. Bruce 
Gerrit-Reviewer: Bobby R. Bruce 
Gerrit-Reviewer: Jason Lowe-Power 
Gerrit-Reviewer: kokoro 
Gerrit-MessageType: merged
___
gem5-dev mailing list
gem5-dev@gem5.org

Re: [gem5-dev] Memory fence neglected/obviated after squashing a younger/later fence

2020-01-18 Thread Jason Lowe-Power
Hey Eduardo,

From a quick skim, I think what you are describing makes sense, and your
solution sounds like it's on the right track. Instead of attaching to email
(which is stripped on this mailing list), could you please create a
changeset on gerrit. See http://new.gem5.org/contributing and
https://gem5.googlesource.com/public/gem5/+/master/CONTRIBUTING.md on how
to contribute your improvements to gem5. Please include all of this detail
in the commit message. Once it's up on gerrit, I'll take a closer look at
the problem and your solution.

Sorry for the slow follow up here :). I'm looking forward to seeing your
contribution!

Cheers,
Jason

On Wed, Jan 15, 2020 at 12:37 AM Eduardo Jose Gomez Hernandez <
eduardojose.go...@um.es> wrote:

> Hi everybody,
>
> During  running  some  benchmarks  (actually, a  modified version  of
> ocean-contiguous-partitionsfrom Splash-3
> "https://github.com/SakalisC/Splash-3;), we encountered a deadlock.
>
> After diving into the trace files, we found that an atomic instruction
> was locking the  memory of the requested block. This  lock needs to be
> released using the 'stul' micro-op,  but its memory request was locked
> at the LSQ-Unit, because a load  is waiting for a cache response. This
> load will  never finish  because it  is referenced  to the  same cache
> block as the locked block.
>
> X86 atomics are defined surounded by two memory barriers:
>
> mfence
> ldstl
> ...
> stul
> mfence
>
> so,  a  later  memory  instruction   has  to  wait  until  the mfence
> finish. The memory dependence has a special handler for fences. When a
> fence is  added, it stores  that a fence  is enabled and  its sequence
> number.  Then,  it  will  add  the last  current  fence  as  a memory
> dependency for all the instructions until it commits:
>
> +---++-+
> |seq|Instructions|Fence|
> +---++-+
> |  0| add| |
> |  1| mfence |   1 |
> |  2| ldstl  |   1 |
> |  3| add|   1 |
> |  4| stul   |   1 |
> |  5| mfence |   5 |
> |  6| load   |   5 |
> |  7| mfence |   7 |
> +---++-+
>
> With this idea, everything should work,  but What happens when a later
> mfence is squashed?
>
> Looking at the memory dependence unit, we see that the fence checks if
> it is the  current fence, and if  it is, the fence is  disabled in the
> memory dependency unit. Therefore, What happens if a fence is squashed
> but a  previous fence did not  commit yet? In the  following table, we
> can see a possible case:
>
> +---++-+-+
> |seq|Instructions|Fence|Committed|
> +---++-+-+
> |  0| add| | Yes |
> |  1| mfence |   1 | Yes |
> |  2| ldstl  |   1 | Yes |
> |  3| add|   1 | Yes |
> |  4| stul   |   1 |  No |
> |  5| mfence |   5 |  No |
> |  6| load   |   5 |  No |
> |  7| beq|   5 |  No |---+
> |  8| mfence |   8 |  No |   |
> |  9| ldstl  |   5 |  No |   | Squashed
> | 10| sub|   5 |  No |   |
> | 11| stul   |   5 |  No |   |
> | 12| mfence |  12 |  No |<--+
> | 13| load   | |  No |
> +---++-+-+
>
> The branch instruction  is  mispredicted, but  new  fences  were set,
> therefore, the original fence at seq:5 is no longer active despite the
> fact it is  not committed. Now, the load instruction  at seq:13 can be
> executed, and if  it collides with the  unfinished 'stul' instruction,
> it can cause a memory dependency violation and later a deadlock.
>
> It should be like this:
>
> +---++-+-+
> |seq|Instructions|Fence|Committed|
> +---++-+-+
> |  0| add| | Yes |
> |  1| mfence |   1 | Yes |
> |  2| ldstl  |   1 | Yes |
> |  3| add|   1 | Yes |
> |  4| stul   |   1 |  No |
> |  5| mfence |   5 |  No |<-+
> |  6| load   |   5 |  No |  |
> |  7| beq|   5 |  No |---+  |
> |  8| mfence |   8 |  No |   |  |
> |  9| ldstl  |   5 |  No |   | Squashed | Dependency
> | 10| sub|   5 |  No |   |  | Recovered
> | 11| stul   |   5 |  No |   |  |
> | 12| mfence |  12 |  No |<--+  |
> | 13| load   |   5 |  No |--+
> +---++-+-+
>
> To solve this problem, we have multiple ideas:
> - Store all the active fences in  a "stack-like" structure, and when a
>fence is  removed/squashed recover the  last active fence. (This is
>the solution we implemented, find the patch attached)
> - Give to the branch the information  about the last active fence, and
>when it is squashed, recover it
> - Add to the new fence a  dependency with the current active fence and
>recover it when squashed
>
> We want to know 

Re: [gem5-dev] RFC: Removing authors from file headers

2020-01-18 Thread Jason Lowe-Power
This would be OK with me. However, I think it should be coupled with us
writing good release notes with each release which gives the code
contributors credit for their contributions.

IIRC, the purpose of the "author" field was to know who to call when things
broke. I agree that this purpose has now been subsumed by git blame.

On the other hand, I think it also served as the de facto way of giving
people credit for their contributions. We should be sure to find another
way to do this, too (e.g., release notes).

Cheers,
Jason

On Fri, Jan 17, 2020 at 6:00 PM Gabe Black  wrote:

> Hi folks. I would like to suggest dropping authors from the header comments
> in the various files in gem5. That field is not really maintained, and it's
> not clear even when it should be updated. The history is a much more
> accurate and complete record of who did what.
>
> What do people think about that?
>
> Gabe
> ___
> gem5-dev mailing list
> gem5-dev@gem5.org
> http://m5sim.org/mailman/listinfo/gem5-dev
___
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev