Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 883f4def authored by Ingo Molnar's avatar Ingo Molnar
Browse files

Merge tag 'perf-core-for-mingo-4.21-20181218' of...

Merge tag 'perf-core-for-mingo-4.21-20181218' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux

 into perf/core

Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:

- Implement BPF based syscall filtering in 'perf trace', using BPF maps and
  the augmented_raw_syscalls.c BPF proggie (Arnaldo Carvalho de Melo)

- Allow specifying in .perfconfig a set of events use in 'perf trace' in
  addition to any other specified from the command line. This initially
  will be used to always use the augmented_raw_syscalls.o precompiled
  BPF program for getting pointer contents. (Arnaldo Carvalho de Melo)

- Allow fine grained control about how the syscall output should be
  formatted. This will be used to allow producing the same output produced
  by the 'strace' tool, to then use in regression tests comparing the
  output of 'perf trace' with the one produced from 'strace' (Arnaldo Carvalho de Melo)

- Beautify the renameat2 olddirfd, newdirfd and flags arguments (Arnaldo Carvalho de Melo)

- Beautify arch_prctl 'code' syscall arg (Arnaldo Carvalho de Melo)

- Beautify fadvise64 'advice' syscall arg (Arnaldo Carvalho de Melo)

- Relax checks on perf-PID.map ownership, resulting in symbols in
  executable anonymous maps setup by JITs in things like node.js to
  be resolved in a 'perf top' session run by root without the need
  for --force to be used (Arnaldo Carvalho de Melo)

- Update asm-generic/unistd.h copy (Arnaldo Carvalho de Melo)

- Do not use the first and last symbols when setting up address filters in
  auxtrace, this fails when we don't have a symbol table, filter the entire
  area based on the dso size. (Adrian Hunter)

- Do not use kernel headers to build libsubcmd, we shouldn't use
  anything from outside tools/, fixes the build with the Android NDK (Arnaldo Carvalho de Melo)

- Add several prototypes for systems lacking those, such as open_memstream(),
  sigqueue(), fixing warnings building with Android's bionic libc that were
  preventing the use of -Werror there (Arnaldo Carvalho de Melo)

- Use LDFLAGS in the libtraceevent build commands, allowing developers
  to override its values (Jiri Olsa)

- Link libperf-jvmti.so with LDFLAGS variable, allowing distro
  packages to propagate its settings when building this library (Jiri Olsa)

- cs-etm (ARM CoreSight) fixes: (Leo Yan)

  - Correct packets swapping in cs_etm__flush()
  - Avoid stale branch samples when flush packet
  - Remove unused 'trace_on' in cs_etm_decoder
  - Refactor enumeration cs_etm_sample_type
  - Rename CS_ETM_TRACE_ON to CS_ETM_DISCONTINUITY
  - Treat NO_SYNC element as trace discontinuity
  - Treat EO_TRACE element as trace discontinuity
  - Generate branch sample for exception packet

- Use shebangs in the 'perf test' shell scripts, making them identifiable as
  shell scripts (Michael Petlan)

- Avoid segfaults caused by negated options in 'perf stat' (Michael Petlan)

- Fix processing of dereferenced args in bprintk events in libtracevent (Steven Rostedt)

Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parents ca46afdb 89a09489
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef _ASM_X86_PRCTL_H
#define _ASM_X86_PRCTL_H

#define ARCH_SET_GS		0x1001
#define ARCH_SET_FS		0x1002
#define ARCH_GET_FS		0x1003
#define ARCH_GET_GS		0x1004

#define ARCH_GET_CPUID		0x1011
#define ARCH_SET_CPUID		0x1012

#define ARCH_MAP_VDSO_X32	0x2001
#define ARCH_MAP_VDSO_32	0x2002
#define ARCH_MAP_VDSO_64	0x2003

#endif /* _ASM_X86_PRCTL_H */
+4 −0
Original line number Diff line number Diff line
@@ -760,8 +760,10 @@ __SYSCALL(__NR_rseq, sys_rseq)
#define __NR_ftruncate __NR3264_ftruncate
#define __NR_lseek __NR3264_lseek
#define __NR_sendfile __NR3264_sendfile
#if defined(__ARCH_WANT_NEW_STAT) || defined(__ARCH_WANT_STAT64)
#define __NR_newfstatat __NR3264_fstatat
#define __NR_fstat __NR3264_fstat
#endif
#define __NR_mmap __NR3264_mmap
#define __NR_fadvise64 __NR3264_fadvise64
#ifdef __NR3264_stat
@@ -776,8 +778,10 @@ __SYSCALL(__NR_rseq, sys_rseq)
#define __NR_ftruncate64 __NR3264_ftruncate
#define __NR_llseek __NR3264_lseek
#define __NR_sendfile64 __NR3264_sendfile
#if defined(__ARCH_WANT_NEW_STAT) || defined(__ARCH_WANT_STAT64)
#define __NR_fstatat64 __NR3264_fstatat
#define __NR_fstat64 __NR3264_fstat
#endif
#define __NR_mmap2 __NR3264_mmap
#define __NR_fadvise64_64 __NR3264_fadvise64
#ifdef __NR3264_stat
+22 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef FADVISE_H_INCLUDED
#define FADVISE_H_INCLUDED

#define POSIX_FADV_NORMAL	0 /* No further special treatment.  */
#define POSIX_FADV_RANDOM	1 /* Expect random page references.  */
#define POSIX_FADV_SEQUENTIAL	2 /* Expect sequential page references.  */
#define POSIX_FADV_WILLNEED	3 /* Will need these pages.  */

/*
 * The advise values for POSIX_FADV_DONTNEED and POSIX_ADV_NOREUSE
 * for s390-64 differ from the values for the rest of the world.
 */
#if defined(__s390x__)
#define POSIX_FADV_DONTNEED	6 /* Don't need these pages.  */
#define POSIX_FADV_NOREUSE	7 /* Data will be accessed once.  */
#else
#define POSIX_FADV_DONTNEED	4 /* Don't need these pages.  */
#define POSIX_FADV_NOREUSE	5 /* Data will be accessed once.  */
#endif

#endif	/* FADVISE_H_INCLUDED */
+0 −2
Original line number Diff line number Diff line
@@ -36,8 +36,6 @@ endif
CFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE

CFLAGS += -I$(srctree)/tools/include/
CFLAGS += -I$(srctree)/include/uapi
CFLAGS += -I$(srctree)/include

SUBCMD_IN := $(OUTPUT)libsubcmd-in.o

+2 −2
Original line number Diff line number Diff line
@@ -177,7 +177,7 @@ $(TE_IN): force
	$(Q)$(MAKE) $(build)=libtraceevent

$(OUTPUT)libtraceevent.so.$(EVENT_PARSE_VERSION): $(TE_IN)
	$(QUIET_LINK)$(CC) --shared $^ -Wl,-soname,libtraceevent.so.$(EP_VERSION) -o $@
	$(QUIET_LINK)$(CC) --shared $(LDFLAGS) $^ -Wl,-soname,libtraceevent.so.$(EP_VERSION) -o $@
	@ln -sf $(@F) $(OUTPUT)libtraceevent.so
	@ln -sf $(@F) $(OUTPUT)libtraceevent.so.$(EP_VERSION)

@@ -196,7 +196,7 @@ $(PLUGINS_IN): force
	$(Q)$(MAKE) $(build)=$(plugin_obj)

$(OUTPUT)%.so: $(OUTPUT)%-in.o
	$(QUIET_LINK)$(CC) $(CFLAGS) -shared -nostartfiles -o $@ $^
	$(QUIET_LINK)$(CC) $(CFLAGS) -shared $(LDFLAGS) -nostartfiles -o $@ $^

define make_version.h
  (echo '/* This file is automatically generated. Do not modify. */';		\
Loading