1. 20 Aug, 2018 5 commits
  2. 18 Aug, 2018 1 commit
    • Ingo Molnar's avatar
      Merge tag 'perf-core-for-mingo-4.19-20180815' of... · 5804b110
      Ingo Molnar authored
      Merge tag 'perf-core-for-mingo-4.19-20180815' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
      
      Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:
      
      kernel:
      
      - kallsyms, x86: Export addresses of PTI entry trampolines (Alexander Shishkin)
      
      - kallsyms: Simplify update_iter_mod() (Adrian Hunter)
      
      - x86: Add entry trampolines to kcore (Adrian Hunter)
      
      Hardware tracing:
      
      - Fix auxtrace queue resize (Adrian Hunter)
      
      Arch specific:
      
      - Fix uninitialized ARM SPE record error variable (Kim Phillips)
      
      - Fix trace event post-processing in powerpc (Sandipan Das)
      
      Build:
      
      - Fix check-headers.sh AND list path of execution (Alexander Kapshuk)
      
      - Remove -mcet and -fcf-protection when building the python binding
        with older clang versions (Arnaldo Carvalho de Melo)
      
      - Make check-headers.sh check based on kernel dir (Jiri Olsa)
      
      - Move syscall_64.tbl check into check-headers.sh (Jiri Olsa)
      
      Infrastructure:
      
      - Check for null when copying nsinfo.  (Benno Evers)
      
      Libraries:
      
      - Rename libtraceevent prefixes, prep work for making it a shared
        library generaly available (Tzvetomir Stoyanov (VMware))
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      5804b110
  3. 14 Aug, 2018 12 commits
    • Adrian Hunter's avatar
      x86: Add entry trampolines to kcore · 6855dc41
      Adrian Hunter authored
      Without program headers for PTI entry trampoline pages, the trampoline
      virtual addresses do not map to anything.
      
      Example before:
      
       sudo gdb --quiet vmlinux /proc/kcore
       Reading symbols from vmlinux...done.
       [New process 1]
       Core was generated by `BOOT_IMAGE=/boot/vmlinuz-4.16.0 root=UUID=a6096b83-b763-4101-807e-f33daff63233'.
       #0  0x0000000000000000 in irq_stack_union ()
       (gdb) x /21ib 0xfffffe0000006000
          0xfffffe0000006000:  Cannot access memory at address 0xfffffe0000006000
       (gdb) quit
      
      After:
      
       sudo gdb --quiet vmlinux /proc/kcore
       [sudo] password for ahunter:
       Reading symbols from vmlinux...done.
       [New process 1]
       Core was generated by `BOOT_IMAGE=/boot/vmlinuz-4.16.0-fix-4-00005-gd6e65a8b4072 root=UUID=a6096b83-b7'.
       #0  0x0000000000000000 in irq_stack_union ()
       (gdb) x /21ib 0xfffffe0000006000
          0xfffffe0000006000:  swapgs
          0xfffffe0000006003:  mov    %rsp,-0x3e12(%rip)        # 0xfffffe00000021f8
          0xfffffe000000600a:  xchg   %ax,%ax
          0xfffffe000000600c:  mov    %cr3,%rsp
          0xfffffe000000600f:  bts    $0x3f,%rsp
          0xfffffe0000006014:  and    $0xffffffffffffe7ff,%rsp
          0xfffffe000000601b:  mov    %rsp,%cr3
          0xfffffe000000601e:  mov    -0x3019(%rip),%rsp        # 0xfffffe000000300c
          0xfffffe0000006025:  pushq  $0x2b
          0xfffffe0000006027:  pushq  -0x3e35(%rip)        # 0xfffffe00000021f8
          0xfffffe000000602d:  push   %r11
          0xfffffe000000602f:  pushq  $0x33
          0xfffffe0000006031:  push   %rcx
          0xfffffe0000006032:  push   %rdi
          0xfffffe0000006033:  mov    $0xffffffff91a00010,%rdi
          0xfffffe000000603a:  callq  0xfffffe0000006046
          0xfffffe000000603f:  pause
          0xfffffe0000006041:  lfence
          0xfffffe0000006044:  jmp    0xfffffe000000603f
          0xfffffe0000006046:  mov    %rdi,(%rsp)
          0xfffffe000000604a:  retq
       (gdb) quit
      
      In addition, entry trampolines all map to the same page.  Represent that
      by giving the corresponding program headers in kcore the same offset.
      
      This has the benefit that, when perf tools uses /proc/kcore as a source
      for kernel object code, samples from different CPU trampolines are
      aggregated together.  Note, such aggregation is normal for profiling
      i.e. people want to profile the object code, not every different virtual
      address the object code might be mapped to (across different processes
      for example).
      
      Notes by PeterZ:
      
      This also adds the KCORE_REMAP functionality.
      Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Acked-by: default avatarAndi Kleen <ak@linux.intel.com>
      Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Joerg Roedel <joro@8bytes.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: x86@kernel.org
      Link: http://lkml.kernel.org/r/1528289651-4113-4-git-send-email-adrian.hunter@intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      6855dc41
    • Alexander Shishkin's avatar
      kallsyms, x86: Export addresses of PTI entry trampolines · d83212d5
      Alexander Shishkin authored
      Currently, the addresses of PTI entry trampolines are not exported to
      user space. Kernel profiling tools need these addresses to identify the
      kernel code, so add a symbol and address for each CPU's PTI entry
      trampoline.
      Signed-off-by: default avatarAlexander Shishkin <alexander.shishkin@linux.intel.com>
      Acked-by: default avatarAndi Kleen <ak@linux.intel.com>
      Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Joerg Roedel <joro@8bytes.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: x86@kernel.org
      Link: http://lkml.kernel.org/r/1528289651-4113-3-git-send-email-adrian.hunter@intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      d83212d5
    • Adrian Hunter's avatar
      kallsyms: Simplify update_iter_mod() · b9667942
      Adrian Hunter authored
      The logic in update_iter_mod() is overcomplicated and gets worse every
      time another get_ksymbol_* function is added.
      
      In preparation for adding another get_ksymbol_* function, simplify logic
      in update_iter_mod().
      Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Tested-by: default avatar(ftrace changes only) Steven Rostedt (VMware) <rostedt@goodmis.org>
      Acked-by: default avatarAndi Kleen <ak@linux.intel.com>
      Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Joerg Roedel <joro@8bytes.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: x86@kernel.org
      Link: http://lkml.kernel.org/r/1528289651-4113-2-git-send-email-adrian.hunter@intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      b9667942
    • Adrian Hunter's avatar
      perf auxtrace: Fix queue resize · 99cbbe56
      Adrian Hunter authored
      When the number of queues grows beyond 32, the array of queues is
      resized but not all members were being copied. Fix by also copying
      'tid', 'cpu' and 'set'.
      Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: stable@vger.kernel.org
      Fixes: e5027893 ("perf auxtrace: Add helpers for queuing AUX area tracing data")
      Link: http://lkml.kernel.org/r/20180814084608.6563-1-adrian.hunter@intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      99cbbe56
    • Arnaldo Carvalho de Melo's avatar
      perf python: Remove -mcet and -fcf-protection when building with clang · 5508672d
      Arnaldo Carvalho de Melo authored
      These options are not present in older clang versions, so when we build
      for a distro that has a gcc new enough to have these options and that
      the distro python build config settings use them but clang doesn't
      support, b00m.
      
      This is the case with fedora 28 and rawhide, so check if clang has the
      options and remove the missing ones from CFLAGS.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: https://lkml.kernel.org/n/tip-7asds7yn6gzg6ns1lw17ukul@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      5508672d
    • Kim Phillips's avatar
      perf arm spe: Fix uninitialized record error variable · 34435336
      Kim Phillips authored
      The auxtrace init variable 'err' was not being initialized, leading perf
      to abort early in an SPE record command when there was no explicit
      error, rather only based whatever memory contents were on the stack.
      Initialize it explicitly on getting an SPE successfully, the same way
      cs-etm does.
      Signed-off-by: default avatarKim Phillips <kim.phillips@arm.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Dongjiu Geng <gengdongjiu@huawei.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Fixes: ffd3d18c ("perf tools: Add ARM Statistical Profiling Extensions (SPE) support")
      Link: http://lkml.kernel.org/r/20180810174512.52900813e57cbccf18ce99a2@arm.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      34435336
    • Jiri Olsa's avatar
      perf tools: Move syscall_64.tbl check into check-headers.sh · c9b51a01
      Jiri Olsa authored
      Probably leftover from the time we introducd the check-headers.sh script.
      
      Committer testing:
      
      Remove the 'rseq' syscall from tools/perf/arch/x86/entry/syscalls/syscall_64.tbl
      to fake a diff:
      
      make: Entering directory '/home/acme/git/perf/tools/perf'
        BUILD:   Doing 'make -j4' parallel build
      Warning: Kernel ABI header at 'tools/perf/arch/x86/entry/syscalls/syscall_64.tbl' differs from latest version at 'arch/x86/entry/syscalls/syscall_64.tbl'
      diff -u tools/perf/arch/x86/entry/syscalls/syscall_64.tbl arch/x86/entry/syscalls/syscall_64.tbl
        CC       /tmp/build/perf/util/syscalltbl.o
        INSTALL  trace_plugins
      <SNIP>
        $ diff -u tools/perf/arch/x86/entry/syscalls/syscall_64.tbl arch/x86/entry/syscalls/syscall_64.tbl
        --- tools/perf/arch/x86/entry/syscalls/syscall_64.tbl	2018-08-13 15:49:50.896585176 -0300
        +++ arch/x86/entry/syscalls/syscall_64.tbl	2018-07-20 12:04:04.536858304 -0300
        @@ -342,6 +342,7 @@
         331	common	pkey_free		__x64_sys_pkey_free
         332	common	statx			__x64_sys_statx
         333	common	io_pgetevents		__x64_sys_io_pgetevents
        +334	common	rseq			__x64_sys_rseq
      
        #
        # x32-specific system call numbers start at 512 to avoid cache impact
        $
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Alexander Kapshuk <alexander.kapshuk@gmail.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/20180813111504.3568-2-jolsa@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      c9b51a01
    • Jiri Olsa's avatar
      perf tools: Make check-headers.sh check based on kernel dir · 7ea6e983
      Jiri Olsa authored
      Changing the logic to compare files with paths relative to kernel source
      base dir. This way we can keep the output message for 2 unrelated files,
      which is coming in following patch.
      
      Committer testing:
      
      Remove a line from tools/arch/x86/lib/memcpy_64.S to have it detected:
      
      make: Entering directory '/home/acme/git/perf/tools/perf'
        BUILD:   Doing 'make -j4' parallel build
      Warning: Kernel ABI header at 'tools/arch/x86/lib/memcpy_64.S' differs from latest version at 'arch/x86/lib/memcpy_64.S'
      diff -u tools/arch/x86/lib/memcpy_64.S arch/x86/lib/memcpy_64.S
        INSTALL  GTK UI
        INSTALL  binaries
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Alexander Kapshuk <alexander.kapshuk@gmail.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/20180813111504.3568-1-jolsa@kernel.org
      Link: http://lkml.kernel.org/r/20180814072726.GA13931@krava
      [ Do not use pushd/popd, its a bashism, reported by Michael Ellerman, fixed by Jiri Olsa ]
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      7ea6e983
    • Linus Torvalds's avatar
      Merge branch 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 13e091b6
      Linus Torvalds authored
      Pull x86 timer updates from Thomas Gleixner:
       "Early TSC based time stamping to allow better boot time analysis.
      
        This comes with a general cleanup of the TSC calibration code which
        grew warts and duct taping over the years and removes 250 lines of
        code. Initiated and mostly implemented by Pavel with help from various
        folks"
      
      * 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (37 commits)
        x86/kvmclock: Mark kvm_get_preset_lpj() as __init
        x86/tsc: Consolidate init code
        sched/clock: Disable interrupts when calling generic_sched_clock_init()
        timekeeping: Prevent false warning when persistent clock is not available
        sched/clock: Close a hole in sched_clock_init()
        x86/tsc: Make use of tsc_calibrate_cpu_early()
        x86/tsc: Split native_calibrate_cpu() into early and late parts
        sched/clock: Use static key for sched_clock_running
        sched/clock: Enable sched clock early
        sched/clock: Move sched clock initialization and merge with generic clock
        x86/tsc: Use TSC as sched clock early
        x86/tsc: Initialize cyc2ns when tsc frequency is determined
        x86/tsc: Calibrate tsc only once
        ARM/time: Remove read_boot_clock64()
        s390/time: Remove read_boot_clock64()
        timekeeping: Default boot time offset to local_clock()
        timekeeping: Replace read_boot_clock64() with read_persistent_wall_and_boot_offset()
        s390/time: Add read_persistent_wall_and_boot_offset()
        x86/xen/time: Output xen sched_clock time from 0
        x86/xen/time: Initialize pv xen time in init_hypervisor_platform()
        ...
      13e091b6
    • Linus Torvalds's avatar
      Merge branch 'x86/pti' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · eac34119
      Linus Torvalds authored
      Pull x86 PTI updates from Thomas Gleixner:
       "The Speck brigade sadly provides yet another large set of patches
        destroying the perfomance which we carefully built and preserved
      
         - PTI support for 32bit PAE. The missing counter part to the 64bit
           PTI code implemented by Joerg.
      
         - A set of fixes for the Global Bit mechanics for non PCID CPUs which
           were setting the Global Bit too widely and therefore possibly
           exposing interesting memory needlessly.
      
         - Protection against userspace-userspace SpectreRSB
      
         - Support for the upcoming Enhanced IBRS mode, which is preferred
           over IBRS. Unfortunately we dont know the performance impact of
           this, but it's expected to be less horrible than the IBRS
           hammering.
      
         - Cleanups and simplifications"
      
      * 'x86/pti' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (60 commits)
        x86/mm/pti: Move user W+X check into pti_finalize()
        x86/relocs: Add __end_rodata_aligned to S_REL
        x86/mm/pti: Clone kernel-image on PTE level for 32 bit
        x86/mm/pti: Don't clear permissions in pti_clone_pmd()
        x86/mm/pti: Fix 32 bit PCID check
        x86/mm/init: Remove freed kernel image areas from alias mapping
        x86/mm/init: Add helper for freeing kernel image pages
        x86/mm/init: Pass unconverted symbol addresses to free_init_pages()
        mm: Allow non-direct-map arguments to free_reserved_area()
        x86/mm/pti: Clear Global bit more aggressively
        x86/speculation: Support Enhanced IBRS on future CPUs
        x86/speculation: Protect against userspace-userspace spectreRSB
        x86/kexec: Allocate 8k PGDs for PTI
        Revert "perf/core: Make sure the ring-buffer is mapped in all page-tables"
        x86/mm: Remove in_nmi() warning from vmalloc_fault()
        x86/entry/32: Check for VM86 mode in slow-path check
        perf/core: Make sure the ring-buffer is mapped in all page-tables
        x86/pti: Check the return value of pti_user_pagetable_walk_pmd()
        x86/pti: Check the return value of pti_user_pagetable_walk_p4d()
        x86/entry/32: Add debug code to check entry/exit CR3
        ...
      eac34119
    • Linus Torvalds's avatar
      Merge branch 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d191c82d
      Linus Torvalds authored
      Pull x86 vdso update from Thomas Gleixner:
       "Use LD to link the VDSO libs instead of indirecting trough CC which
        causes build failures with Clang"
      
      * 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86: vdso: Use $LD instead of $CC to link
      d191c82d
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4d5ac4b8
      Linus Torvalds authored
      Pull misc x86 fixes from Thomas Gleixner:
       "Two fixes for x86:
      
         - Provide a declaration for native_save_fl() which unbreaks the
           wreckage caused by making it 'extern inline'.
      
         - Fix the failing paravirt patching which is supposed to replace
           indirect with direct calls. The wreckage is caused by an incorrect
           clobber test"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/paravirt: Fix spectre-v2 mitigations for paravirt guests
        x86/irqflags: Provide a declaration for native_save_fl
      4d5ac4b8
  4. 13 Aug, 2018 22 commits
    • Linus Torvalds's avatar
      Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 203b4fc9
      Linus Torvalds authored
      Pull x86 mm updates from Thomas Gleixner:
      
       - Make lazy TLB mode even lazier to avoid pointless switch_mm()
         operations, which reduces CPU load by 1-2% for memcache workloads
      
       - Small cleanups and improvements all over the place
      
      * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm: Remove redundant check for kmem_cache_create()
        arm/asm/tlb.h: Fix build error implicit func declaration
        x86/mm/tlb: Make clear_asid_other() static
        x86/mm/tlb: Skip atomic operations for 'init_mm' in switch_mm_irqs_off()
        x86/mm/tlb: Always use lazy TLB mode
        x86/mm/tlb: Only send page table free TLB flush to lazy TLB CPUs
        x86/mm/tlb: Make lazy TLB mode lazier
        x86/mm/tlb: Restructure switch_mm_irqs_off()
        x86/mm/tlb: Leave lazy TLB mode at page table free time
        mm: Allocate the mm_cpumask (mm->cpu_bitmap[]) dynamically based on nr_cpu_ids
        x86/mm: Add TLB purge to free pmd/pte page interfaces
        ioremap: Update pgtable free interfaces with addr
        x86/mm: Disable ioremap free page handling on x86-PAE
      203b4fc9
    • Linus Torvalds's avatar
      Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7edcf0d3
      Linus Torvalds authored
      Pull x86 platform updates from Thomas Gleixner:
       "Trivial cleanups and improvements"
      
      * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/platform/UV: Remove redundant check of p == q
        x86/platform/olpc: Use PTR_ERR_OR_ZERO()
        x86/platform/UV: Mark memblock related init code and data correctly
      7edcf0d3
    • Linus Torvalds's avatar
      Merge branch 'x86-cache-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 30de24c7
      Linus Torvalds authored
      Pull x86 cache QoS (RDT/CAR) updates from Thomas Gleixner:
       "Add support for pseudo-locked cache regions.
      
        Cache Allocation Technology (CAT) allows on certain CPUs to isolate a
        region of cache and 'lock' it. Cache pseudo-locking builds on the fact
        that a CPU can still read and write data pre-allocated outside its
        current allocated area on cache hit. With cache pseudo-locking data
        can be preloaded into a reserved portion of cache that no application
        can fill, and from that point on will only serve cache hits. The cache
        pseudo-locked memory is made accessible to user space where an
        application can map it into its virtual address space and thus have a
        region of memory with reduced average read latency.
      
        The locking is not perfect and gets totally screwed by WBINDV and
        similar mechanisms, but it provides a reasonable enhancement for
        certain types of latency sensitive applications.
      
        The implementation extends the current CAT mechanism and provides a
        generally useful exclusive CAT mode on which it builds the extra
        pseude-locked regions"
      
      * 'x86-cache-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (45 commits)
        x86/intel_rdt: Disable PMU access
        x86/intel_rdt: Fix possible circular lock dependency
        x86/intel_rdt: Make CPU information accessible for pseudo-locked regions
        x86/intel_rdt: Support restoration of subset of permissions
        x86/intel_rdt: Fix cleanup of plr structure on error
        x86/intel_rdt: Move pseudo_lock_region_clear()
        x86/intel_rdt: Limit C-states dynamically when pseudo-locking active
        x86/intel_rdt: Support L3 cache performance event of Broadwell
        x86/intel_rdt: More precise L2 hit/miss measurements
        x86/intel_rdt: Create character device exposing pseudo-locked region
        x86/intel_rdt: Create debugfs files for pseudo-locking testing
        x86/intel_rdt: Create resctrl debug area
        x86/intel_rdt: Ensure RDT cleanup on exit
        x86/intel_rdt: Resctrl files reflect pseudo-locked information
        x86/intel_rdt: Support creation/removal of pseudo-locked region
        x86/intel_rdt: Pseudo-lock region creation/removal core
        x86/intel_rdt: Discover supported platforms via prefetch disable bits
        x86/intel_rdt: Add utilities to test pseudo-locked region possibility
        x86/intel_rdt: Split resource group removal in two
        x86/intel_rdt: Enable entering of pseudo-locksetup mode
        ...
      30de24c7
    • Linus Torvalds's avatar
      Merge branch 'x86-hyperv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f4990264
      Linus Torvalds authored
      Pull x86/hyper-v update from Thomas Gleixner:
       "Add fast hypercall support for guest running on the Microsoft HyperV(isor)"
      
      * 'x86-hyperv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/hyper-v: Fix wrong merge conflict resolution
        x86/hyper-v: Check for VP_INVAL in hyperv_flush_tlb_others()
        x86/hyper-v: Check cpumask_to_vpset() return value in hyperv_flush_tlb_others_ex()
        x86/hyper-v: Trace PV IPI send
        x86/hyper-v: Use cheaper HVCALL_SEND_IPI hypercall when possible
        x86/hyper-v: Use 'fast' hypercall for HVCALL_SEND_IPI
        x86/hyper-v: Implement hv_do_fast_hypercall16
        x86/hyper-v: Use cheaper HVCALL_FLUSH_VIRTUAL_ADDRESS_{LIST,SPACE} hypercalls when possible
      f4990264
    • Linus Torvalds's avatar
      Merge branch 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 27a52501
      Linus Torvalds authored
      Pull x86 dump printing cleanup from Thomas Gleixner:
       "Clean up the show_opcodes() printout so nested dumps can be properly
        differentiated"
      
      * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86: Avoid pr_cont() in show_opcodes()
      27a52501
    • Linus Torvalds's avatar
      Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 77969161
      Linus Torvalds authored
      Pull x86 cpu updates from Thomas Gleixner:
       "Two small updates for the CPU code:
      
         - Improve NUMA emulation
      
         - Add the EPT_AD CPU feature bit"
      
      * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/cpufeatures: Add EPT_AD feature bit
        x86/numa_emulation: Introduce uniform split capability
        x86/numa_emulation: Fix emulated-to-physical node mapping
      77969161
    • Linus Torvalds's avatar
      Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 36f49ca8
      Linus Torvalds authored
      Pull x86 cleanups from Thomas Gleixner:
       "Trival cleanups"
      
      * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/iommu: Use NULL instead of 0
        x86/platform/pcspeaker: Use PTR_ERR_OR_ZERO() to fix ptr_ret.cocci warning
      36f49ca8
    • Linus Torvalds's avatar
      Merge branch 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 00b24d54
      Linus Torvalds authored
      Pull x86 build cleanup from Thomas Gleixner:
       "Remove a stale quirk for a no longer supported GCC version"
      
      * 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/build: Remove old -funit-at-a-time GCC quirk
      00b24d54
    • Linus Torvalds's avatar
      Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f24d6f26
      Linus Torvalds authored
      Pull x86 asm updates from Thomas Gleixner:
       "The lowlevel and ASM code updates for x86:
      
         - Make stack trace unwinding more reliable
      
         - ASM instruction updates for better code generation
      
         - Various cleanups"
      
      * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/entry/64: Add two more instruction suffixes
        x86/asm/64: Use 32-bit XOR to zero registers
        x86/build/vdso: Simplify 'cmd_vdso2c'
        x86/build/vdso: Remove unused vdso-syms.lds
        x86/stacktrace: Enable HAVE_RELIABLE_STACKTRACE for the ORC unwinder
        x86/unwind/orc: Detect the end of the stack
        x86/stacktrace: Do not fail for ORC with regs on stack
        x86/stacktrace: Clarify the reliable success paths
        x86/stacktrace: Remove STACKTRACE_DUMP_ONCE
        x86/stacktrace: Do not unwind after user regs
        x86/asm: Use CC_SET/CC_OUT in percpu_cmpxchg8b_double() to micro-optimize code generation
      f24d6f26
    • Linus Torvalds's avatar
      Merge branch 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b9b8e5b7
      Linus Torvalds authored
      Pull x86 boot updates from Thomas Gleixner:
       "Boot code updates for x86:
      
         - Allow to skip a given amount of huge pages for address layout
           randomization on the kernel command line to prevent regressions in
           the huge page allocation with small memory sizes
      
         - Various cleanups"
      
      * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/boot: Use CC_SET()/CC_OUT() instead of open coding it
        x86/boot/KASLR: Make local variable mem_limit static
        x86/boot/KASLR: Skip specified number of 1GB huge pages when doing physical randomization (KASLR)
        x86/boot/KASLR: Add two new functions for 1GB huge pages handling
      b9b8e5b7
    • Linus Torvalds's avatar
      Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 66e22087
      Linus Torvalds authored
      Pull x86 apic update from Thomas Gleixner:
       "Trivial cleanups of the APIC related code"
      
      * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/apic: Trivial coding style fixes
        x86/vector: Merge allocate_vector() into assign_vector_locked()
      66e22087
    • Linus Torvalds's avatar
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1e45e9a9
      Linus Torvalds authored
      Pull timer updates from Thomas Gleixner:
       "The timers departement more or less proudly presents:
      
         - More Y2038 timekeeping work mostly in the core code. The work is
           slowly, but steadily targeting the actuall syscalls.
      
         - Enhanced timekeeping suspend/resume support by utilizing
           clocksources which do not stop during suspend, but are otherwise
           not the main timekeeping clocksources.
      
         - Make NTP adjustmets more accurate and immediate when the frequency
           is set directly and not incrementally.
      
         - Sanitize the overrung handing of posix timers
      
         - A new timer driver for Mediatek SoCs
      
         - The usual pile of fixes and updates all over the place"
      
      * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (32 commits)
        clockevents: Warn if cpu_all_mask is used as cpumask
        tick/broadcast-hrtimer: Use cpu_possible_mask for ce_broadcast_hrtimer
        clocksource/drivers/arm_arch_timer: Fix bogus cpu_all_mask usage
        clocksource: ti-32k: Remove CLOCK_SOURCE_SUSPEND_NONSTOP flag
        timers: Clear timer_base::must_forward_clk with timer_base::lock held
        clocksource/drivers/sprd: Register one always-on timer to compensate suspend time
        clocksource/drivers/timer-mediatek: Add support for system timer
        clocksource/drivers/timer-mediatek: Convert the driver to timer-of
        clocksource/drivers/timer-mediatek: Use specific prefix for GPT
        clocksource/drivers/timer-mediatek: Rename mtk_timer to timer-mediatek
        clocksource/drivers/timer-mediatek: Add system timer bindings
        clocksource/drivers: Set clockevent device cpumask to cpu_possible_mask
        time: Introduce one suspend clocksource to compensate the suspend time
        time: Fix extra sleeptime injection when suspend fails
        timekeeping/ntp: Constify some function arguments
        ntp: Use kstrtos64 for s64 variable
        ntp: Remove redundant arguments
        timer: Fix coding style
        ktime: Provide typesafe ktime_to_ns()
        hrtimer: Improve kernel message printing
        ...
      1e45e9a9
    • Linus Torvalds's avatar
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8603596a
      Linus Torvalds authored
      Pull perf update from Thomas Gleixner:
       "The perf crowd presents:
      
        Kernel updates:
      
         - Removal of jprobes
      
         - Cleanup and consolidatation the handling of kprobes
      
         - Cleanup and consolidation of hardware breakpoints
      
         - The usual pile of fixes and updates to PMUs and event descriptors
      
        Tooling updates:
      
         - Updates and improvements all over the place. Nothing outstanding,
           just the (good) boring incremental grump work"
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (103 commits)
        perf trace: Do not require --no-syscalls to suppress strace like output
        perf bpf: Include uapi/linux/bpf.h from the 'perf trace' script's bpf.h
        perf tools: Allow overriding MAX_NR_CPUS at compile time
        perf bpf: Show better message when failing to load an object
        perf list: Unify metric group description format with PMU event description
        perf vendor events arm64: Update ThunderX2 implementation defined pmu core events
        perf cs-etm: Generate branch sample for CS_ETM_TRACE_ON packet
        perf cs-etm: Generate branch sample when receiving a CS_ETM_TRACE_ON packet
        perf cs-etm: Support dummy address value for CS_ETM_TRACE_ON packet
        perf cs-etm: Fix start tracing packet handling
        perf build: Fix installation directory for eBPF
        perf c2c report: Fix crash for empty browser
        perf tests: Fix indexing when invoking subtests
        perf trace: Beautify the AF_INET & AF_INET6 'socket' syscall 'protocol' args
        perf trace beauty: Add beautifiers for 'socket''s 'protocol' arg
        perf trace beauty: Do not print NULL strarray entries
        perf beauty: Add a generator for IPPROTO_ socket's protocol constants
        tools include uapi: Grab a copy of linux/in.h
        perf tests: Fix complex event name parsing
        perf evlist: Fix error out while applying initial delay and LBR
        ...
      8603596a
    • Linus Torvalds's avatar
      Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · de5d1b39
      Linus Torvalds authored
      Pull locking/atomics update from Thomas Gleixner:
       "The locking, atomics and memory model brains delivered:
      
         - A larger update to the atomics code which reworks the ordering
           barriers, consolidates the atomic primitives, provides the new
           atomic64_fetch_add_unless() primitive and cleans up the include
           hell.
      
         - Simplify cmpxchg() instrumentation and add instrumentation for
           xchg() and cmpxchg_double().
      
         - Updates to the memory model and documentation"
      
      * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (48 commits)
        locking/atomics: Rework ordering barriers
        locking/atomics: Instrument cmpxchg_double*()
        locking/atomics: Instrument xchg()
        locking/atomics: Simplify cmpxchg() instrumentation
        locking/atomics/x86: Reduce arch_cmpxchg64*() instrumentation
        tools/memory-model: Rename litmus tests to comply to norm7
        tools/memory-model/Documentation: Fix typo, smb->smp
        sched/Documentation: Update wake_up() & co. memory-barrier guarantees
        locking/spinlock, sched/core: Clarify requirements for smp_mb__after_spinlock()
        sched/core: Use smp_mb() in wake_woken_function()
        tools/memory-model: Add informal LKMM documentation to MAINTAINERS
        locking/atomics/Documentation: Describe atomic_set() as a write operation
        tools/memory-model: Make scripts executable
        tools/memory-model: Remove ACCESS_ONCE() from model
        tools/memory-model: Remove ACCESS_ONCE() from recipes
        locking/memory-barriers.txt/kokr: Update Korean translation to fix broken DMA vs. MMIO ordering example
        MAINTAINERS: Add Daniel Lustig as an LKMM reviewer
        tools/memory-model: Fix ISA2+pooncelock+pooncelock+pombonce name
        tools/memory-model: Add litmus test for full multicopy atomicity
        locking/refcount: Always allow checked forms
        ...
      de5d1b39
    • Linus Torvalds's avatar
      Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1c594774
      Linus Torvalds authored
      Pull CPU hotplug update from Thomas Gleixner:
       "A trivial name fix for the hotplug state machine"
      
      * 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        cpu/hotplug: Clarify CPU hotplug step name for timers
      1c594774
    • Alexander Kapshuk's avatar
      perf tools: Fix check-headers.sh AND list path of execution · 51d8aac2
      Alexander Kapshuk authored
      The '||' path of execution in the 'test' block of the check_2() function
      may also be taken if file2 does not exist, in which case the warning
      message about the ABI headers being different would still be printed
      where it should not be.  See below.
      
        % file1=file1; file2=file2
        % cmd="echo diff $file1 $file2"
        % test -f $file2 && \
          eval $cmd || echo "Warning: Kernel ABI header at 'tools/$file1'
                             differs from latest version at '$file2'" >&2
                             Warning: Kernel ABI header at 'tools/file1' differs from latest
                             version at 'file2'
      
      The proposed patch converts the code following the '&&' operator into a
      compound list to be executed in the current process environment only if file2
      does exist. Should the files being compared differ, a diff command to compare
      the files concerned is printed on standard output. E.g.
      
        $ diff -u tools/arch/x86/lib/memcpy_64.S arch/x86/lib/memcpy_64.S
      
      Committer testing:
      
      Remove a line from that tools/arch/x86/lib/memcpy_64.S file to test
      this:
      
        BUILD:   Doing 'make -j4' parallel build
      Warning: Kernel ABI header at 'tools/arch/x86/lib/memcpy_64.S' differs from latest version at 'arch/x86/lib/memcpy_64.S'
      diff -u tools/arch/x86/lib/memcpy_64.S arch/x86/lib/memcpy_64.S
        CC       /tmp/build/perf/bench/mem-memcpy-x86-64-asm.o
      Signed-off-by: default avatarAlexander Kapshuk <alexander.kapshuk@gmail.com>
      Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/20180811083915.17471-1-alexander.kapshuk@gmail.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      51d8aac2
    • Benno Evers's avatar
      perf tools: Check for null when copying nsinfo. · 3f4417d6
      Benno Evers authored
      The argument to nsinfo__copy() was assumed to be valid, but some code paths
      exist that will lead to NULL being passed.
      
      In particular, running 'perf script -D' on a perf.data file containing an
      PERF_RECORD_MMAP event associating the '[vdso]' dso with pid 0 earlier in
      the event stream will lead to a segfault.
      
      Since all calling code is already checking for a non-null return value,
      just return NULL for this case as well.
      Signed-off-by: default avatarBenno Evers <bevers@mesosphere.com>
      Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Krister Johansen <kjlx@templeofstupid.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/20180810133614.9925-1-bevers@mesosphere.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      3f4417d6
    • Tzvetomir Stoyanov (VMware)'s avatar
      tools lib traceevent: Rename static variables and functions in event-parse.c · 0ae98637
      Tzvetomir Stoyanov (VMware) authored
      In order to make libtraceevent into a proper library, variables, data
      structures and functions require a unique prefix to prevent name space
      conflicts. That prefix will be "tep_" and not "pevent_". This changes
      static variables and functions in event-parse.c: pevent_func_params,
      __pevent_parse_format, __pevent_parse_event, pevent_error_str, pevent_search_event
      Signed-off-by: default avatarTzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Yordan Karadzhov (VMware) <y.karadz@gmail.com>
      Cc: linux-trace-devel@vger.kernel.org
      Link: http://lkml.kernel.org/r/20180808180703.575392642@goodmis.orgSigned-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      0ae98637
    • Tzvetomir Stoyanov (VMware)'s avatar
      tools lib traceevent: Rename various pevent APIs · c99eeaf5
      Tzvetomir Stoyanov (VMware) authored
      In order to make libtraceevent into a proper library, variables, data
      structures and functions require a unique prefix to prevent name space
      conflicts. That prefix will be "tep_" and not "pevent_". This changes
      APIs: pevent_reset_function_resolver, pevent_strerror, pevent_list_events,
      pevent_event_common_fields, pevent_event_fields, pevent_ref, pevent_unref
      Signed-off-by: default avatarTzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Yordan Karadzhov (VMware) <y.karadz@gmail.com>
      Cc: linux-trace-devel@vger.kernel.org
      Link: http://lkml.kernel.org/r/20180808180703.426198047@goodmis.orgSigned-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      c99eeaf5
    • Tzvetomir Stoyanov (VMware)'s avatar
      tools lib traceevent: Rename internal parser related APIs · 1634e460
      Tzvetomir Stoyanov (VMware) authored
      In order to make libtraceevent into a proper library, variables, data
      structures and functions require a unique prefix to prevent name space
      conflicts. That prefix will be "tep_" and not "pevent_". This changes
      APIs: pevent_buffer_init, pevent_read_token, pevent_free_token,
      pevent_peek_char, pevent_get_input_buf, pevent_get_input_buf_ptr
      Signed-off-by: default avatarTzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Yordan Karadzhov (VMware) <y.karadz@gmail.com>
      Cc: linux-trace-devel@vger.kernel.org
      Link: http://lkml.kernel.org/r/20180808180703.275281085@goodmis.orgSigned-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      1634e460
    • Tzvetomir Stoyanov (VMware)'s avatar
      tools lib traceevent: Rename various pevent get/set/is APIs · 413af01c
      Tzvetomir Stoyanov (VMware) authored
      In order to make libtraceevent into a proper library, variables, data
      structures and functions require a unique prefix to prevent name space
      conflicts. That prefix will be "tep_" and not "pevent_". This changes
      APIs: pevent_pid_is_registered, pevent_get_cpus, pevent_set_cpus,
      pevent_is_file_bigendian, pevent_is_host_bigendian, pevent_is_latency_format,
      pevent_set_latency_format
      Signed-off-by: default avatarTzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Yordan Karadzhov (VMware) <y.karadz@gmail.com>
      Cc: linux-trace-devel@vger.kernel.org
      Link: http://lkml.kernel.org/r/20180808180703.114110715@goodmis.orgSigned-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      413af01c
    • Tzvetomir Stoyanov (VMware)'s avatar
      tools lib traceevent: Rename pevent_find_* APIs · 610e1e4f
      Tzvetomir Stoyanov (VMware) authored
      In order to make libtraceevent into a proper library, variables, data
      structures and functions require a unique prefix to prevent name space
      conflicts. That prefix will be "tep_" and not "pevent_". This changes
      APIs: pevent_find_function, pevent_find_function_address,
      pevent_find_event_by_name, pevent_find_event_by_record
      Signed-off-by: default avatarTzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Yordan Karadzhov (VMware) <y.karadz@gmail.com>
      Cc: linux-trace-devel@vger.kernel.org
      Link: http://lkml.kernel.org/r/20180808180702.966965051@goodmis.orgSigned-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      610e1e4f