diff options
author | Gabe Black <gabeblack@google.com> | 2018-12-05 18:02:14 -0800 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2018-12-10 06:44:43 +0000 |
commit | 9c1b329bc62ebf693cc4b23ddc7bd2225ef49e6a (patch) | |
tree | f39147117fc4b69313b62aedda0f7b46f9a49b89 /src/systemc/tests/systemc/kernel/process_control/test07/golden/test07.log | |
parent | d89f712d193dc977a13e937432578ebf03336277 (diff) | |
download | gem5-9c1b329bc62ebf693cc4b23ddc7bd2225ef49e6a.tar.xz |
systemc: Update test output for longer lived processes.
In the systemc spec, process handles can be invalidated if they have no
children and are terminated. The implementation is not required to do
so however, and for the sake of simplicity gem5 currently does not. To
quote:
"When the underlying process instance terminates, if the process
instance has no surviving children, an implementation may choose to
invalidate any associated process handles, but it is not obliged to do
so."
Two tests have reference output which is affected by this (legal)
difference in behavior. In one case, the test creates new processes
which reuse the names of processes that have been terminated. Since
gem5 doesn't invalidate the old processes, a standard mechanism is
activated which renames the processes to something which is unique.
The other test has this same problem, and also prints the hierarchy
of processes several times during the test. In that hierarchy, the
terminated tests with no live children are still present, where in the
old reference output they've been removed.
This change updates the reference output to match gem5's behavior.
Change-Id: I363448de10080bdce01a4df92f991c67b31a2401
Reviewed-on: https://gem5-review.googlesource.com/c/14919
Reviewed-by: Matthias Jung <jungma@eit.uni-kl.de>
Maintainer: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'src/systemc/tests/systemc/kernel/process_control/test07/golden/test07.log')
-rw-r--r-- | src/systemc/tests/systemc/kernel/process_control/test07/golden/test07.log | 64 |
1 files changed, 49 insertions, 15 deletions
diff --git a/src/systemc/tests/systemc/kernel/process_control/test07/golden/test07.log b/src/systemc/tests/systemc/kernel/process_control/test07/golden/test07.log index 07bc05603..3971e93ac 100644 --- a/src/systemc/tests/systemc/kernel/process_control/test07/golden/test07.log +++ b/src/systemc/tests/systemc/kernel/process_control/test07/golden/test07.log @@ -51,40 +51,74 @@ SystemC Simulation ------ (400 ns) ------ dut (sc_module) dut.parent (sc_thread_process) (running) + dut.parent.child0 (sc_thread_process) (terminated) + dut.parent.child0.grandchild (sc_thread_process) (terminated) dut.parent.child1 (sc_thread_process) (terminated) + dut.parent.child1.grandchild (sc_thread_process) (terminated) dut.parent.child1.dyn_obj (sc_object) ---------------------- +++ dut.parent.child1.dyn_obj deleted ------ (500 ns) ------ dut (sc_module) dut.parent (sc_thread_process) (running) + dut.parent.child0 (sc_thread_process) (terminated) + dut.parent.child0.grandchild (sc_thread_process) (terminated) + dut.parent.child1 (sc_thread_process) (terminated) + dut.parent.child1.grandchild (sc_thread_process) (terminated) ---------------------- -+++ dut.parent.child0 starting (500 ns) -+++ dut.parent.child1 starting (500 ns) + +Warning: (W505) object already exists: dut.parent.child0. Latter declaration will be renamed to dut.parent.child0_0 + +In process: dut.parent @ 500 ns + +Warning: (W505) object already exists: dut.parent.child1. Latter declaration will be renamed to dut.parent.child1_0 + +In process: dut.parent @ 500 ns ++++ dut.parent.child0_0 starting (500 ns) ++++ dut.parent.child1_0 starting (500 ns) ------ (600 ns) ------ dut (sc_module) dut.parent (sc_thread_process) (running) - dut.parent.child0 (sc_thread_process) (running) - dut.parent.child0.local (sc_object) - dut.parent.child1 (sc_thread_process) (running) - dut.parent.child1.local (sc_object) + dut.parent.child0 (sc_thread_process) (terminated) + dut.parent.child0.grandchild (sc_thread_process) (terminated) + dut.parent.child1 (sc_thread_process) (terminated) + dut.parent.child1.grandchild (sc_thread_process) (terminated) + dut.parent.child0_0 (sc_thread_process) (running) + dut.parent.child0_0.local (sc_object) + dut.parent.child1_0 (sc_thread_process) (running) + dut.parent.child1_0.local (sc_object) ---------------------- -+++ dut.parent.child1.grandchild starting (600 ns) -+++ dut.parent.child0.grandchild starting (600 ns) -+++ dut.parent.child0.local deleted -+++ dut.parent.child1.grandchild.local deleted -+++ dut.parent.child1.local deleted ++++ dut.parent.child0_0.grandchild starting (600 ns) ++++ dut.parent.child1_0.grandchild starting (600 ns) ++++ dut.parent.child0_0.local deleted ++++ dut.parent.child1_0.grandchild.local deleted ++++ dut.parent.child1_0.local deleted +++ kills sent ... (650 ns) ------ (700 ns) ------ dut (sc_module) dut.parent (sc_thread_process) (running) dut.parent.child0 (sc_thread_process) (terminated) - dut.parent.child0.grandchild (sc_thread_process) (running) - dut.parent.child0.grandchild.local (sc_object) + dut.parent.child0.grandchild (sc_thread_process) (terminated) + dut.parent.child1 (sc_thread_process) (terminated) + dut.parent.child1.grandchild (sc_thread_process) (terminated) + dut.parent.child0_0 (sc_thread_process) (terminated) + dut.parent.child0_0.grandchild (sc_thread_process) (running) + dut.parent.child0_0.grandchild.local (sc_object) + dut.parent.child1_0 (sc_thread_process) (terminated) + dut.parent.child1_0.grandchild (sc_thread_process) (terminated) ---------------------- +++ dut.parent exiting (700 ns) -+++ dut.parent.child0.grandchild exiting (800 ns) -+++ dut.parent.child0.grandchild.local deleted ++++ dut.parent.child0_0.grandchild exiting (800 ns) ++++ dut.parent.child0_0.grandchild.local deleted ------ (900 ns) ------ dut (sc_module) + dut.parent (sc_thread_process) (terminated) + dut.parent.child0 (sc_thread_process) (terminated) + dut.parent.child0.grandchild (sc_thread_process) (terminated) + dut.parent.child1 (sc_thread_process) (terminated) + dut.parent.child1.grandchild (sc_thread_process) (terminated) + dut.parent.child0_0 (sc_thread_process) (terminated) + dut.parent.child0_0.grandchild (sc_thread_process) (terminated) + dut.parent.child1_0 (sc_thread_process) (terminated) + dut.parent.child1_0.grandchild (sc_thread_process) (terminated) ---------------------- |