Skip to content

Commit

Permalink
Addressed PR feedback.
Browse files Browse the repository at this point in the history
  • Loading branch information
edeiana committed Dec 18, 2024
1 parent 0546b56 commit 7e02a78
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 29 deletions.
1 change: 1 addition & 0 deletions clients/drcachesim/tests/invariant_checker_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3603,6 +3603,7 @@ check_regdeps(void)
}

// Incorrect: TRACE_MARKER_TYPE_UNCOMPLETED_INSTRUCTION not allowed.
// XXX i#7155: Allow these markers once we update their values in record_filter.
{
std::vector<memref_t> memrefs = {
gen_marker(TID_A, TRACE_MARKER_TYPE_FILETYPE, OFFLINE_FILE_TYPE_ARCH_REGDEPS),
Expand Down
1 change: 1 addition & 0 deletions clients/drcachesim/tools/invariant_checker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1712,6 +1712,7 @@ invariant_checker_t::check_regdeps_invariants(per_shard_t *shard, const memref_t
"OFFLINE_FILE_TYPE_ARCH_REGDEPS traces cannot have "
"TRACE_MARKER_TYPE_SIGNAL_NUMBER markers");
break;
// XXX i#7155: Allow these markers once we update their values in record_filter.
case TRACE_MARKER_TYPE_UNCOMPLETED_INSTRUCTION:
report_if_false(shard, false,
"OFFLINE_FILE_TYPE_ARCH_REGDEPS traces cannot have "
Expand Down
42 changes: 13 additions & 29 deletions suite/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4838,45 +4838,29 @@ if (BUILD_CLIENTS)

if (X86 AND X64 AND UNIX AND NOT APPLE)
# Run the invariant_checker on an OFFLINE_FILE_TYPE_ARCH_REGDEPS trace of
# ci_shared_app.
# ci_shared_app and kernel_xfer_app. We expect no invariant errors.
# Generate an OFFLINE_FILE_TYPE_ARCH_REGDEPS trace by running record_filter
# with: 1) -filter_encodings2regdeps to change instruction encodings; 2)
# -filter_keep_func_ids 4294967498 (which is SYS_futex, associated to the only
# TRACE_MARKER_TYPE_FUNC_* markers we want to keep),
# -filter_marker_types 19,25,27,28,30,40,41 (which correspond to
# TRACE_MARKER_TYPE_SYSCALL_IDX, TRACE_MARKER_TYPE_SYSCALL,
# TRACE_MARKER_TYPE_SYSCALL_TRACE_START, TRACE_MARKER_TYPE_SYSCALL_TRACE_END,
# TRACE_MARKER_TYPE_SYSCALL_FAILED, TRACE_MARKER_TYPE_SIGNAL_NUMBER,
# TRACE_MARKER_TYPE_UNCOMPLETED_INSTRUCTION), note that the removal of
# TRACE_MARKER_TYPE_UNCOMPLETED_INSTRUCTION is only temporary (xref i#7155);
# 3) -filter_modify_marker_value 3,-1 (which changes the value of
# TRACE_MARKER_TYPE_CPU_ID == 3 to INVALID_CPU_MARKER_VALUE == (uintptr_t)-1).
set(testname "tool.invariant_checker_on_regdeps_trace_ci_shared_app")
torun_record_filter("${testname}" ${ci_shared_app}
"invariant_checker_on_regdeps_trace_ci_shared_app"
# Generate an OFFLINE_FILE_TYPE_ARCH_REGDEPS trace by running record_filter
# with -filter_encodings2regdeps to change instruction encodings,
# -filter_keep_func_ids 4294967498 (which is SYS_futex, associated to the only
# TRACE_MARKER_TYPE_FUNC_ markers we want to keep),
# -filter_marker_types 19,25,27,28,30 (which correspond to
# TRACE_MARKER_TYPE_SYSCALL_IDX, TRACE_MARKER_TYPE_SYSCALL,
# TRACE_MARKER_TYPE_SYSCALL_TRACE_START, TRACE_MARKER_TYPE_SYSCALL_TRACE_END,
# TRACE_MARKER_TYPE_SYSCALL_FAILED, TRACE_MARKER_TYPE_SIGNAL_NUMBER,
# TRACE_MARKER_TYPE_UNCOMPLETED_INSTRUCTION), and
# -filter_modify_marker_value 3,-1 (which changes the value of
# TRACE_MARKER_TYPE_CPU_ID == 3 to INVALID_CPU_MARKER_VALUE == (uintptr_t)-1).
"${drcachesim_path}@-simulator_type@record_filter@-filter_encodings2regdeps@-indir@${testname}.${ci_shared_app}.*.dir/trace@-outdir@${testname}.filtered.dir@-filter_marker_types@19,25,27,28,30,40,41@-filter_keep_func_ids@4294967498@-filter_modify_marker_value@3,-1"
# We run the invariant_checker analyzer on the REGDEPS filtered trace.
# We expect no invariant errors.
"invariant_checker")

# Run the invariant_checker on an OFFLINE_FILE_TYPE_ARCH_REGDEPS trace of
# kernel_xfer_app.
set(testname "tool.invariant_checker_on_regdeps_trace_kernel_xfer_app")
torun_record_filter("${testname}" ${kernel_xfer_app}
"invariant_checker_on_regdeps_trace_kernel_xfer_app"
# Generate an OFFLINE_FILE_TYPE_ARCH_REGDEPS trace by running record_filter
# with -filter_encodings2regdeps to change instruction encodings,
# -filter_keep_func_ids 4294967498 (which is SYS_futex, associated to the only
# TRACE_MARKER_TYPE_FUNC_ markers we want to keep),
# -filter_marker_types 19,25,27,28,30,40,41 (which correspond to
# TRACE_MARKER_TYPE_SYSCALL_IDX, TRACE_MARKER_TYPE_SYSCALL,
# TRACE_MARKER_TYPE_SYSCALL_TRACE_START, TRACE_MARKER_TYPE_SYSCALL_TRACE_END,
# TRACE_MARKER_TYPE_SYSCALL_FAILED, TRACE_MARKER_TYPE_SIGNAL_NUMBER,
# TRACE_MARKER_TYPE_UNCOMPLETED_INSTRUCTION), and
# -filter_modify_marker_value 3,-1 (which changes the value of
# TRACE_MARKER_TYPE_CPU_ID == 3 to INVALID_CPU_MARKER_VALUE == (uintptr_t)-1).
"${drcachesim_path}@-simulator_type@record_filter@-filter_encodings2regdeps@-indir@${testname}.${kernel_xfer_app}.*.dir/trace@-outdir@${testname}.filtered.dir@-filter_marker_types@19,25,27,28,30,40,41@-filter_keep_func_ids@4294967498@-filter_modify_marker_value@3,-1"
# We run the invariant_checker analyzer on the REGDEPS filtered trace.
# We expect no invariant errors.
"invariant_checker")
endif ()

Expand Down

0 comments on commit 7e02a78

Please sign in to comment.