Commit 0fb0d615 authored by Ian Rogers's avatar Ian Rogers Committed by Arnaldo Carvalho de Melo
Browse files

perf test: Initialize memory in dwarf-unwind



Avoid a false positive caused by assembly code in arch/x86.

In tests, zero the perf_event to avoid uninitialized memory uses.

Warnings were caught using clang with -fsanitize=memory.

Signed-off-by: default avatarIan Rogers <irogers@google.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Quentin Monnet <quentin@isovalent.com>
Cc: Stephane Eranian <eranian@google.com>
Cc: clang-built-linux@googlegroups.com
Link: http://lore.kernel.org/lkml/20200530082015.39162-4-irogers@google.com


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 8617e2e3
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -55,6 +55,14 @@ int test__arch_unwind_sample(struct perf_sample *sample,
		return -1;
	}

#ifdef MEMORY_SANITIZER
	/*
	 * Assignments to buf in the assembly function perf_regs_load aren't
	 * seen by memory sanitizer. Zero the memory to convince memory
	 * sanitizer the memory is initialized.
	 */
	memset(buf, 0, sizeof(u64) * PERF_REGS_MAX);
#endif
	perf_regs_load(buf);
	regs->abi  = PERF_SAMPLE_REGS_ABI;
	regs->regs = buf;
+1 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ static int init_live_machine(struct machine *machine)
	union perf_event event;
	pid_t pid = getpid();

	memset(&event, 0, sizeof(event));
	return perf_event__synthesize_mmap_events(NULL, &event, pid, pid,
						  mmap_handler, machine, true);
}