16 Aug, 2018

1 commit


30 May, 2018

1 commit


04 Nov, 2017

1 commit

  • After the SPDX license tags were added a number of tooling headers got out of
    sync with their kernel variants, generating lots of build warnings.

    Sync them:

    - tools/arch/x86/include/asm/disabled-features.h,
    tools/arch/x86/include/asm/required-features.h,
    tools/include/linux/hash.h:

    Remove the SPDX tag where the kernel version does not have it.

    - tools/include/asm-generic/bitops/__fls.h,
    tools/include/asm-generic/bitops/arch_hweight.h,
    tools/include/asm-generic/bitops/const_hweight.h,
    tools/include/asm-generic/bitops/fls.h,
    tools/include/asm-generic/bitops/fls64.h,
    tools/include/uapi/asm-generic/ioctls.h,
    tools/include/uapi/asm-generic/mman-common.h,
    tools/include/uapi/sound/asound.h,
    tools/include/uapi/linux/kvm.h,
    tools/include/uapi/linux/perf_event.h,
    tools/include/uapi/linux/sched.h,
    tools/include/uapi/linux/vhost.h,
    tools/include/uapi/sound/asound.h:

    Add the SPDX tag of the respective kernel header.

    - tools/include/uapi/linux/bpf_common.h,
    tools/include/uapi/linux/fcntl.h,
    tools/include/uapi/linux/hw_breakpoint.h,
    tools/include/uapi/linux/mman.h,
    tools/include/uapi/linux/stat.h,

    Change the tag to the kernel header version:

    -/* SPDX-License-Identifier: GPL-2.0 */
    +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */

    Also sync other header details:

    - include/uapi/sound/asound.h:

    Fix pointless end of line whitespace noise the header grew in this cycle.

    - tools/arch/x86/lib/memcpy_64.S:

    Sync the code and add tools/include/asm/export.h with dummy wrappers
    to support building the kernel side code in a tooling header environment.

    - tools/include/uapi/asm-generic/mman.h,
    tools/include/uapi/linux/bpf.h:

    Sync other details that don't impact tooling's use of the ABIs.

    Acked-by: Arnaldo Carvalho de Melo
    Cc: linux-kernel@vger.kernel.org
    Cc: Greg Kroah-Hartman
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Peter Zijlstra
    Cc: Namhyung Kim
    Cc: Jiri Olsa
    Cc: Stephen Rothwell
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     

02 Nov, 2017

3 commits

  • Many user space API headers have licensing information, which is either
    incomplete, badly formatted or just a shorthand for referring to the
    license under which the file is supposed to be. This makes it hard for
    compliance tools to determine the correct license.

    Update these files with an SPDX license identifier. The identifier was
    chosen based on the license information in the file.

    GPL/LGPL licensed headers get the matching GPL/LGPL SPDX license
    identifier with the added 'WITH Linux-syscall-note' exception, which is
    the officially assigned exception identifier for the kernel syscall
    exception:

    NOTE! This copyright does *not* cover user programs that use kernel
    services by normal system calls - this is merely considered normal use
    of the kernel, and does *not* fall under the heading of "derived work".

    This exception makes it possible to include GPL headers into non GPL
    code, without confusing license compliance tools.

    Headers which have either explicit dual licensing or are just licensed
    under a non GPL license are updated with the corresponding SPDX
    identifier and the GPLv2 with syscall exception identifier. The format
    is:
    ((GPL-2.0 WITH Linux-syscall-note) OR SPDX-ID-OF-OTHER-LICENSE)

    SPDX license identifiers are a legally binding shorthand, which can be
    used instead of the full boiler plate text. The update does not remove
    existing license information as this has to be done on a case by case
    basis and the copyright holders might have to be consulted. This will
    happen in a separate step.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne. See the previous patch in this series for the
    methodology of how this patch was researched.

    Reviewed-by: Kate Stewart
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • Many user space API headers are missing licensing information, which
    makes it hard for compliance tools to determine the correct license.

    By default are files without license information under the default
    license of the kernel, which is GPLV2. Marking them GPLV2 would exclude
    them from being included in non GPLV2 code, which is obviously not
    intended. The user space API headers fall under the syscall exception
    which is in the kernels COPYING file:

    NOTE! This copyright does *not* cover user programs that use kernel
    services by normal system calls - this is merely considered normal use
    of the kernel, and does *not* fall under the heading of "derived work".

    otherwise syscall usage would not be possible.

    Update the files which contain no license information with an SPDX
    license identifier. The chosen identifier is 'GPL-2.0 WITH
    Linux-syscall-note' which is the officially assigned identifier for the
    Linux syscall exception. SPDX license identifiers are a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne. See the previous patch in this series for the
    methodology of how this patch was researched.

    Reviewed-by: Kate Stewart
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

25 Sep, 2017

1 commit

  • Time for a sync with ABI/uapi headers with the upcoming v4.14 kernel.

    None of the ABI changes require any source code level changes to our
    existing in-kernel tooling code:

    - tools/arch/s390/include/uapi/asm/kvm.h:

    New KVM_S390_VM_TOD_EXT ABI, not used by in-kernel tooling.

    - tools/arch/x86/include/asm/cpufeatures.h:
    tools/arch/x86/include/asm/disabled-features.h:

    New PCID, SME and VGIF x86 CPU feature bits defined.

    - tools/include/asm-generic/hugetlb_encode.h:
    tools/include/uapi/asm-generic/mman-common.h:
    tools/include/uapi/linux/mman.h:

    Two new madvise() flags, plus a hugetlb system call mmap flags
    restructuring/extension changes.

    - tools/include/uapi/drm/drm.h:
    tools/include/uapi/drm/i915_drm.h:

    New drm_syncobj_create flags definitions, new drm_syncobj_wait
    and drm_syncobj_array ABIs. DRM_I915_PERF_* calls and a new
    I915_PARAM_HAS_EXEC_FENCE_ARRAY ABI for the Intel driver.

    - tools/include/uapi/linux/bpf.h:

    New bpf_sock fields (::mark and ::priority), new XDP_REDIRECT
    action, new kvm_ppc_smmu_info fields (::data_keys, instr_keys)

    Signed-off-by: Ingo Molnar
    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Milian Wolff
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Taeung Song
    Cc: Wang Nan
    Cc: Yao Jin
    Link: http://lkml.kernel.org/r/20170913073823.lxmi4c7ejqlfabjx@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Ingo Molnar
     

06 Sep, 2017

1 commit

  • Pull parisc updates from Helge Deller:
    "Major changes include:

    - Full support of the firmware Page Deallocation Table with
    MADV_HWPOISON and MADV_SOFT_OFFLINE. A kernel thread scans
    regularily for new bad memory pages.

    - Full support for self-extracting kernel.

    - Added UBSAN support.

    - Lots of section mismatch fixes across all parisc drivers.

    - Added examples for %pF and %pS usage in printk-formats.txt"

    * 'parisc-4.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: (28 commits)
    printk-formats.txt: Add examples for %pF and %pS usage
    parisc: Fix up devices below a PCI-PCI MegaRAID controller bridge
    parisc/core: Fix section mismatches
    parisc/ipmi_si_intf: Fix section mismatches on parisc platform
    parisc/input/hilkbd: Fix section mismatches
    parisc/net/lasi_82596: Fix section mismatches
    parisc/serio: Fix section mismatches in gscps2 and hp_sdc drivers
    parisc: Fix section mismatches in parisc core drivers
    parisc/parport_gsc: Fix section mismatches
    parisc/scsi/lasi700: Fix section mismatches
    parisc/scsi/zalon: Fix section mismatches
    parisc/8250_gsc: Fix section mismatches
    parisc/mux: Fix section mismatches
    parisc/sticore: Fix section mismatches
    parisc/harmony: Fix section mismatches
    parisc: Wire up support for self-extracting kernel
    parisc: Make existing core files reuseable for bootloader
    parisc: Add core code for self-extracting kernel
    parisc: Enable UBSAN support
    parisc/random: Add machine specific randomness
    ...

    Linus Torvalds
     

29 Aug, 2017

1 commit

  • These changes made the tools/arch/x86/include/ headers to drift from its
    kernel origins:

    910448bbed06 ("perf/x86/amd/uncore: Rename cpufeatures macro for cache counters")
    5442c2699552 ("x86/cpufeature, kvm/svm: Rename (shorten) the new "virtualized VMSAVE/VMLOAD" CPUID flag")
    cba4671af755 ("x86/mm: Disable PCID on 32-bit kernels")

    Which was detected while building perf:

    make: Entering directory '/home/acme/git/linux/tools/perf'
    BUILD: Doing 'make -j4' parallel build
    Warning: Kernel ABI header at 'tools/arch/x86/include/asm/disabled-features.h' differs from latest version at 'arch/x86/include/asm/disabled-features.h'
    Warning: Kernel ABI header at 'tools/arch/x86/include/asm/cpufeatures.h' differs from latest version at 'arch/x86/include/asm/cpufeatures.h'

    This sync causes just these perf object files to be rebuilt:

    CC /tmp/build/perf/bench/mem-memcpy-x86-64-asm.o
    CC /tmp/build/perf/bench/mem-memset-x86-64-asm.o

    And the changes in the above changesets don't entail any need for change
    in the above 'perf bench' files.

    Cc: Adrian Hunter
    Cc: Andy Lutomirski
    Cc: Borislav Petkov
    Cc: David Ahern
    Cc: Janakarajan Natarajan
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-456aafouj911a4x4zwt8stkm@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

22 Aug, 2017

1 commit


31 Jul, 2017

1 commit

  • Sync up (copy) the following v4.13 kernel headers to the tooling headers:

    arch/arm/include/uapi/asm/kvm.h:
    arch/arm64/include/uapi/asm/kvm.h:
    arch/powerpc/include/uapi/asm/kvm.h:
    arch/s390/include/uapi/asm/kvm.h:

    - KVM ABI extensions, which do not affect perf tooling

    arch/x86/include/asm/cpufeatures.h:
    arch/x86/include/asm/disabled-features.h:

    - New PCID CPU feature on Intel CPUs - does not affect tooling.

    I.e. no real changes were needed to resolve the build warnings, just a plain copy
    of the latest kernel header version.

    Signed-off-by: Ingo Molnar
    Cc: Adrian Hunter
    Cc: Alexander Shishkin
    Cc: Andi Kleen
    Cc: David Ahern
    Cc: David Carrillo-Cisneros
    Cc: Francis Deslauriers
    Cc: Geneviève Bastien
    Cc: Jiri Olsa
    Cc: Julien Desfossez
    Cc: Martin Liška
    Cc: Mathieu Desnoyers
    Cc: Milian Wolff
    Cc: Namhyung Kim
    Cc: Paul Turner
    Cc: Peter Zijlstra
    Cc: Simon Que
    Cc: Stephane Eranian
    Cc: Taeung Song
    Cc: Wang Nan
    Link: http://lkml.kernel.org/r/20170730095232.4j4xigsoqwufl5hu@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Ingo Molnar
     

19 Jul, 2017

2 commits

  • To help us provide a simple setns() in older distros.

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Krister Johansen
    Cc: Namhyung Kim
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-o10a85kf6j7ig87ep6crab2k@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • In older distros we were not including our copies of unistd_{32,64}.h,
    as we were relying on the system's asm/unistd.h, and a log time ago
    the files to be included were asm-{x86_64,i386}/unistd.h.

    Fix it by also carrying a copy of asm/unistd.h, that will be the same
    as in modern distros and will allow us to provide missing __NR_setns,
    for instance, in older distros.

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-iwmgm0c4m1ynstktzmkjh8di@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

24 May, 2017

1 commit

  • Sync (copy) the following v4.12 kernel headers to the tooling headers:

    arch/x86/include/asm/disabled-features.h:
    arch/x86/include/uapi/asm/kvm.h:
    arch/powerpc/include/uapi/asm/kvm.h:
    arch/s390/include/uapi/asm/kvm.h:
    arch/arm/include/uapi/asm/kvm.h:
    arch/arm64/include/uapi/asm/kvm.h:

    - 'struct kvm_sync_regs' got changed in an ABI-incompatible way,
    fortunately none of the (in-kernel) tooling relied on it

    - new KVM_DEV calls added

    arch/x86/include/asm/required-features.h:

    - 5-level paging hardware ABI detail added

    arch/x86/include/asm/cpufeatures.h:

    - new CPU feature added

    arch/x86/include/uapi/asm/vmx.h:

    - new VMX exit conditions

    None of the changes requires fixes in the tooling source code.

    This addresses the following warnings:

    Warning: include/uapi/linux/stat.h differs from kernel
    Warning: arch/x86/include/asm/disabled-features.h differs from kernel
    Warning: arch/x86/include/asm/required-features.h differs from kernel
    Warning: arch/x86/include/asm/cpufeatures.h differs from kernel
    Warning: arch/x86/include/uapi/asm/kvm.h differs from kernel
    Warning: arch/x86/include/uapi/asm/vmx.h differs from kernel
    Warning: arch/powerpc/include/uapi/asm/kvm.h differs from kernel
    Warning: arch/s390/include/uapi/asm/kvm.h differs from kernel
    Warning: arch/arm/include/uapi/asm/kvm.h differs from kernel
    Warning: arch/arm64/include/uapi/asm/kvm.h differs from kernel

    Cc: Arnaldo Carvalho de Melo
    Cc: Arnaldo Carvalho de Melo
    Cc: Jiri Olsa
    Cc: Jiri Olsa
    Cc: Linus Torvalds
    Cc: Milian Wolff
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Yao Jin
    Cc: kernel-team@lge.com
    Link: http://lkml.kernel.org/r/20170524065721.j2mlch6bgk5klgbc@gmail.com
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     

09 May, 2017

1 commit

  • Pull KVM updates from Paolo Bonzini:
    "ARM:
    - HYP mode stub supports kexec/kdump on 32-bit
    - improved PMU support
    - virtual interrupt controller performance improvements
    - support for userspace virtual interrupt controller (slower, but
    necessary for KVM on the weird Broadcom SoCs used by the Raspberry
    Pi 3)

    MIPS:
    - basic support for hardware virtualization (ImgTec P5600/P6600/I6400
    and Cavium Octeon III)

    PPC:
    - in-kernel acceleration for VFIO

    s390:
    - support for guests without storage keys
    - adapter interruption suppression

    x86:
    - usual range of nVMX improvements, notably nested EPT support for
    accessed and dirty bits
    - emulation of CPL3 CPUID faulting

    generic:
    - first part of VCPU thread request API
    - kvm_stat improvements"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (227 commits)
    kvm: nVMX: Don't validate disabled secondary controls
    KVM: put back #ifndef CONFIG_S390 around kvm_vcpu_kick
    Revert "KVM: Support vCPU-based gfn->hva cache"
    tools/kvm: fix top level makefile
    KVM: x86: don't hold kvm->lock in KVM_SET_GSI_ROUTING
    KVM: Documentation: remove VM mmap documentation
    kvm: nVMX: Remove superfluous VMX instruction fault checks
    KVM: x86: fix emulation of RSM and IRET instructions
    KVM: mark requests that need synchronization
    KVM: return if kvm_vcpu_wake_up() did wake up the VCPU
    KVM: add explicit barrier to kvm_vcpu_kick
    KVM: perform a wake_up in kvm_make_all_cpus_request
    KVM: mark requests that do not need a wakeup
    KVM: remove #ifndef CONFIG_S390 around kvm_vcpu_wake_up
    KVM: x86: always use kvm_make_request instead of set_bit
    KVM: add kvm_{test,clear}_request to replace {test,clear}_bit
    s390: kvm: Cpu model support for msa6, msa7 and msa8
    KVM: x86: remove irq disablement around KVM_SET_CLOCK/KVM_GET_CLOCK
    kvm: better MWAIT emulation for guests
    KVM: x86: virtualize cpuid faulting
    ...

    Linus Torvalds
     

26 Apr, 2017

1 commit


25 Apr, 2017

2 commits


21 Mar, 2017

2 commits

  • The changes in the following csets are not relevant for what is used in
    tools/perf/arch/powerpc/util/kvm-stat.c, but lets sync it to silence the
    diff detector in the tools build system:

    c92701322711 ("KVM: PPC: Book3S HV: Add userspace interfaces for POWER9 MMU")
    17d48610ae0f ("KVM: PPC: Book 3S: XICS: Implement ICS P/Q states")

    Cc: Alexander Yarygin
    Cc: David Ahern
    Cc: Li Zhong
    Cc: Michael Ellerman
    Cc: Naveen N. Rao
    Cc: Paul Mackerras
    Cc: Scott Wood
    Cc: Srikar Dronamraju
    Link: http://lkml.kernel.org/n/tip-nsqxpyzcv4ywesikhhhrgfgc@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • The changes in the following csets are not relevant for 'perf kvm' usage
    but lets sync it to silence the diff detector in the tools build system:

    e96a006cb066 ("KVM: arm/arm64: vgic: Implement KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO ioctl")
    d017d7b0bd7a ("KVM: arm/arm64: vgic: Implement VGICv3 CPU interface access")
    94574c9488e2 ("KVM: arm/arm64: vgic: Add distributor and redistributor access")

    Cc: Hemant Kumar
    Cc: Marc Zyngier
    Cc: Vijaya Kumar K
    Cc: Yunlong Song
    Link: http://lkml.kernel.org/n/tip-nsqxpyzcv4ywesikhhhrgfgc@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

18 Mar, 2017

1 commit

  • We use those in tools/arch/x86/lib/mem{cpy,set}_64.S, in turn used
    in the 'perf bench mem' benchmarks.

    The changes in the following csets are not relevant for this usecase,
    but lets sync it to silence the diff detector in the tools build system:

    6fb895692a03 ("x86/cpufeature: Add 5-level paging detection")

    Link: http://lkml.kernel.org/n/tip-nsqxpyzcv4ywesikhhhrgfgc@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

16 Mar, 2017

1 commit

  • We use those in tools/arch/x86/lib/mem{cpy,set}_64.S, in turn used
    in the 'perf bench mem' benchmarks.

    The changes in the following csets are not relevant for this usecase,
    but lets sync it to silence the diff detector in the tools build system:

    78d1b296843a ("x86/cpu: Add X86_FEATURE_CPUID")
    3bba73b1b7a8 ("x86/cpufeature: Move RING3MWAIT feature to avoid conflicts")

    Cc: Borislav Petkov
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/n/tip-nsqxpyzcv4ywesikhhhrgfgc@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

04 Mar, 2017

2 commits


21 Feb, 2017

1 commit

  • Pull x86 cpufeature updates from Ingo Molnar:
    "The main changes in this cycle were related to enable ring-3
    MONITOR/MWAIT instructions support on supported CPUs, by Grzegorz
    Andrejczuk and Piotr Luc"

    * 'x86-cpufeature-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/cpufeature: Move RING3MWAIT feature to avoid conflicts
    x86/cpufeature: Enable RING3MWAIT for Knights Mill
    x86/cpufeature: Enable RING3MWAIT for Knights Landing
    x86/cpufeature: Add RING3MWAIT to CPU features
    x86/elf: Add HWCAP2 to expose ring 3 MONITOR/MWAIT
    x86/msr: Add MSR_MISC_FEATURE_ENABLES and RING3MWAIT bit
    x86/cpufeature: Add AVX512_VPOPCNTDQ feature

    Linus Torvalds
     

31 Jan, 2017

1 commit

  • …x86/include/asm/cpufeatures.h and {tools/,}arch/arm/include/uapi/asm/kvm.h

    The following upstream headers were updated:

    - The x86 cpufeatures.h file picked up a couple of new feature entries
    - The PowerPC and ARM KVM headers picked up new features

    None of which requires changes to perf tooling, so refresh the tooling copy.

    Solves these build time warnings:

    Warning: arch/x86/include/asm/cpufeatures.h differs from kernel
    Warning: arch/powerpc/include/uapi/asm/kvm.h differs from kernel
    Warning: arch/arm/include/uapi/asm/kvm.h differs from kernel

    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/20170130081131.GA8322@gmail.com
    [ resync tools/arch/x86/include/asm/cpufeatures.h ]
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

    Ingo Molnar
     

17 Jan, 2017

1 commit

  • Vector population count instructions for dwords and qwords are going to be
    available in future Intel Xeon & Xeon Phi processors. Bit 14 of
    CPUID[level:0x07, ECX] indicates that the instructions are supported by a
    processor.

    The specification can be found in the Intel Software Developer Manual (SDM)
    and in the Instruction Set Extensions Programming Reference (ISE).

    Populate the feature bit and clear it when xsave is disabled.

    Signed-off-by: Piotr Luc
    Reviewed-by: Borislav Petkov
    Cc: Paolo Bonzini
    Cc: kvm@vger.kernel.org
    Cc: Radim Krčmář
    Link: http://lkml.kernel.org/r/20170110173403.6010-2-piotr.luc@intel.com
    Signed-off-by: Thomas Gleixner

    Piotr Luc
     

12 Jan, 2017

1 commit

  • To pick the changes from:

    1b07304c587d ("KVM: nVMX: support descriptor table exits")

    That adds entries to VMX_EXIT_REASONS, that is used by
    tools/perf/arch/x86/util/kvm-stat.c.

    This also picks the changes in:

    1dc35dacc16b ("KVM: nVMX: check host CR3 on vmentry and vmexit")

    But these are not used in 'perf kvm stat', do it just to silence the
    kernel/tools file cache coherency detector:

    $ make -C tools/perf
    make: Entering directory '/home/acme/git/linux/tools/perf'
    BUILD: Doing 'make -j4' parallel build
    Warning: arch/x86/include/uapi/asm/vmx.h differs from kernel

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Ladi Prosek
    Cc: Namhyung Kim
    Cc: Paolo Bonzini
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-56uowkk8t5zje49a42asffcy@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

01 Nov, 2016

1 commit


19 Oct, 2016

1 commit

  • AVX512_4VNNIW - Vector instructions for deep learning enhanced word
    variable precision.
    AVX512_4FMAPS - Vector instructions for deep learning floating-point
    single precision.

    These new instructions are to be used in future Intel Xeon & Xeon Phi
    processors. The bits 2&3 of CPUID[level:0x07, EDX] inform that new
    instructions are supported by a processor.

    The spec can be found in the Intel Software Developer Manual (SDM) or in
    the Instruction Set Extensions Programming Reference (ISE).

    Define new feature flags to enumerate the new instructions in /proc/cpuinfo
    accordingly to CPUID bits and add the required xsave extensions which are
    required for proper operation.

    Signed-off-by: Piotr Luc
    Cc: Denys Vlasenko
    Cc: Peter Zijlstra
    Cc: Brian Gerst
    Cc: Dave Hansen
    Cc: Borislav Petkov
    Cc: Andy Lutomirski
    Cc: Josh Poimboeuf
    Cc: Linus Torvalds
    Link: http://lkml.kernel.org/r/20161018150111.29926-1-piotr.luc@intel.com
    Signed-off-by: Thomas Gleixner

    Piotr Luc
     

18 Oct, 2016

1 commit

  • Now that eagerfpu= is gone, remove it from the docs and some
    comments. Also sync the changes to tools/.

    Signed-off-by: Andy Lutomirski
    Cc: Borislav Petkov
    Cc: Brian Gerst
    Cc: Dave Hansen
    Cc: Denys Vlasenko
    Cc: Fenghua Yu
    Cc: H. Peter Anvin
    Cc: Josh Poimboeuf
    Cc: Linus Torvalds
    Cc: Oleg Nesterov
    Cc: Peter Zijlstra
    Cc: Quentin Casasnovas
    Cc: Rik van Riel
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/cf430dd4481d41280e93ac6cf0def1007a67fc8e.1476740397.git.luto@kernel.org
    Signed-off-by: Ingo Molnar

    Andy Lutomirski
     

06 Oct, 2016

2 commits

  • Due to ffb173e657fa ("x86/mce: Drop X86_FEATURE_MCE_RECOVERY and the
    related model string test"), no changes needed in any other place as no
    tool uses X86_FEATURE_MCE_RECOVERY.

    Silences this detected drift when building tools/perf:

    Warning: tools/arch/x86/include/asm/cpufeatures.h differs from kernel

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-f3sfimg58t3cycbbl8f5cwxf@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • Commit 9a6fb28a355d ("x86/mce: Improve memcpy_mcsafe()") renames
    memcpy_mcsafe() to memcpy_mcsafe_unrolled(), making
    tools/arch/x86/lib/memcpy_64.S drift from the its kernel counterpart,
    triggering this warning in the perf build:

    Warning: tools/arch/x86/lib/memcpy_64.S differs from kernel

    Sync that copy to acknowledge that, no changes to 'perf bench' are
    needed, as this function is not used there.

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-xfwc1raw8obyrctxerwt1bbb@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

19 Sep, 2016

1 commit

  • Some macros required by tools/perf/trace/beauty/mmap.c is not support
    for all architectures. For example, MAP_32BIT is defined on x86 only,
    alpha doesn't define MADV_HWPOISON and MADV_SOFT_OFFLINE.

    This patch regenerates mman.h for each arch, defines these missing
    macros for perf. For missing MADV_*, fall back to asm-generic/mman-common
    because they are in a 'case ...' statement. For flags, define it to 0.

    Following is the script to generate this patch:

    macros=`cat $0 | awk 'V==1 {print}; /^# start macro list/ {V=1}'`
    rm `find ./tools/arch/ -name mman.h`
    for arch in `ls tools/arch`
    do
    [ -d tools/arch/$arch/include/uapi/asm ] || mkdir -p tools/arch/$arch/include/uapi/asm
    src=arch/$arch/include/uapi/asm/mman.h
    target=tools/arch/$arch/include/uapi/asm/mman.h.tmp
    real_target=tools/arch/$arch/include/uapi/asm/mman.h
    guard="TOOLS_ARCH_"`echo $arch | awk '{print toupper($0)}'`_UAPI_ASM_MMAN_FIX_H
    rm -f $target

    [ -f $src ] &&
    for m in $macros
    do
    if grep '#define[ \t]*'$m $src > /dev/null 2>&1
    then
    grep -h '#define[ \t]*'$m $src | sed 's/[ \t]*\/\*.*$//g' >> $target
    fi
    done

    if [ -f $src ]
    then
    grep '#include > $real_target
    rm $target
    echo "$real_target"
    done

    exit 0
    # Following macros are extracted from:
    # tools/perf/trace/beauty/mmap.c
    #
    # start macro list
    MADV_DODUMP
    MADV_DOFORK
    MADV_DONTDUMP
    MADV_DONTFORK
    MADV_DONTNEED
    MADV_FREE
    MADV_HUGEPAGE
    MADV_HWPOISON
    MADV_MERGEABLE
    MADV_NOHUGEPAGE
    MADV_NORMAL
    MADV_RANDOM
    MADV_REMOVE
    MADV_SEQUENTIAL
    MADV_SOFT_OFFLINE
    MADV_UNMERGEABLE
    MADV_WILLNEED
    MAP_32BIT
    MAP_ANONYMOUS
    MAP_DENYWRITE
    MAP_EXECUTABLE
    MAP_FILE
    MAP_FIXED
    MAP_GROWSDOWN
    MAP_HUGETLB
    MAP_LOCKED
    MAP_NONBLOCK
    MAP_NORESERVE
    MAP_POPULATE
    MAP_PRIVATE
    MAP_SHARED
    MAP_STACK
    MAP_UNINITIALIZED
    MREMAP_FIXED
    MREMAP_MAYMOVE
    PROT_EXEC
    PROT_GROWSDOWN
    PROT_GROWSUP
    PROT_NONE
    PROT_READ
    PROT_SEM
    PROT_WRITE

    Signed-off-by: Wang Nan
    Tested-by: Kim Phillips
    Tested-by: Naveen N. Rao
    Cc: Ravi Bangoria
    Cc: Zefan Li
    Cc: pi3orama@163.com
    Fixes: 277cf08f3feb ("perf trace beauty mmap: Fix defines for non !x86_64")
    Link: http://lkml.kernel.org/r/1473850649-83389-3-git-send-email-wangnan0@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Wang Nan
     

14 Sep, 2016

1 commit

  • Some mmap related macros have different values for different
    architectures. This patch introduces uapi mman.h for each
    architectures.

    Three headers are cloned from kernel include to tools/include:

    tools/include/uapi/asm-generic/mman-common.h
    tools/include/uapi/asm-generic/mman.h
    tools/include/uapi/linux/mman.h

    The main part of this patch is generated by following script:

    macros=`cat $0 | awk 'V==1 {print}; /^# start macro list/ {V=1}'`
    for arch in `ls tools/arch`
    do
    [ -d tools/arch/$arch/include/uapi/asm ] || mkdir -p tools/arch/$arch/include/uapi/asm
    src=arch/$arch/include/uapi/asm/mman.h
    target=tools/arch/$arch/include/uapi/asm/mman.h
    guard="TOOLS_ARCH_"`echo $arch | awk '{print toupper($0)}'`_UAPI_ASM_MMAN_FIX_H
    echo '#ifndef '$guard > $target
    echo '#define '$guard >> $target

    [ -f $src ] &&
    for m in $macros
    do
    if grep '#define[ \t]*'$m $src > /dev/null 2>&1
    then
    grep -h '#define[ \t]*'$m $src | sed 's/[ \t]*\/\*.*$//g' >> $target
    fi
    done

    if [ -f $src ]
    then
    grep '#include > $target
    echo "$target"
    done

    exit 0
    # Following macros are extracted from:
    # tools/perf/trace/beauty/mmap.c
    #
    # start macro list
    MADV_DODUMP
    MADV_DOFORK
    MADV_DONTDUMP
    MADV_DONTFORK
    MADV_DONTNEED
    MADV_HUGEPAGE
    MADV_HWPOISON
    MADV_MERGEABLE
    MADV_NOHUGEPAGE
    MADV_NORMAL
    MADV_RANDOM
    MADV_REMOVE
    MADV_SEQUENTIAL
    MADV_SOFT_OFFLINE
    MADV_UNMERGEABLE
    MADV_WILLNEED
    MAP_32BIT
    MAP_ANONYMOUS
    MAP_DENYWRITE
    MAP_EXECUTABLE
    MAP_FILE
    MAP_FIXED
    MAP_GROWSDOWN
    MAP_HUGETLB
    MAP_LOCKED
    MAP_NONBLOCK
    MAP_NORESERVE
    MAP_POPULATE
    MAP_PRIVATE
    MAP_SHARED
    MAP_STACK
    MAP_UNINITIALIZED
    MREMAP_FIXED
    MREMAP_MAYMOVE
    PROT_EXEC
    PROT_GROWSDOWN
    PROT_GROWSUP
    PROT_NONE
    PROT_READ
    PROT_SEM
    PROT_WRITE

    Signed-off-by: Wang Nan
    Cc: Zefan Li
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1473684871-209320-2-git-send-email-wangnan0@huawei.com
    [ Added new files to tools/perf/MANIFEST to fix the detached tarball build, add mman.h for ARC ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Wang Nan
     

16 Aug, 2016

1 commit

  • From a quick look nothing stands out as requiring changes to kvm tools
    such as tools/perf/arch/s390/util/kvm-stat.c.

    Silences these header checking warnings:

    $ make -C tools/perf
    make: Entering directory '/home/acme/git/linux/tools/perf'
    BUILD: Doing 'make -j4' parallel build
    Warning: tools/arch/s390/include/uapi/asm/kvm.h differs from kernel
    Warning: tools/arch/s390/include/uapi/asm/sie.h differs from kernel
    Warning: tools/arch/arm64/include/uapi/asm/kvm.h differs from kernel

    Cc: Adrian Hunter
    Cc: Alexander Yarygin
    Cc: David Ahern
    Cc: Hemant Kumar
    Cc: Jiri Olsa
    Cc: Michael Ellerman
    Cc: Namhyung Kim
    Cc: Naveen N. Rao
    Cc: Scott Wood
    Cc: Srikar Dronamraju
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-btutge414g516qmh6r5ienlj@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

09 Aug, 2016

2 commits

  • Due to:

    1e61f78baf89 ("x86/cpufeature: Make sure DISABLED/REQUIRED macros are updated")

    No changes to tools using those headers (tools/arch/x86/lib/mem{set,cpu}_64.S)
    seems necessary.

    Detected by the tools build header drift checker:

    $ make -C tools/perf O=/tmp/build/perf
    make: Entering directory '/home/acme/git/linux/tools/perf'
    BUILD: Doing 'make -j4' parallel build
    GEN /tmp/build/perf/common-cmds.h
    Warning: tools/arch/x86/include/asm/disabled-features.h differs from kernel
    Warning: tools/arch/x86/include/asm/required-features.h differs from kernel
    Warning: tools/arch/x86/include/asm/cpufeatures.h differs from kernel
    CC /tmp/build/perf/util/probe-finder.o
    CC /tmp/build/perf/builtin-help.o

    ^C$

    Cc: Adrian Hunter
    Cc: Dave Hansen
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-ja75m7zk8j0jkzmrv16i5ehw@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • There were changes related to the deprecation of the "pcommit"
    instruction:

    fd1d961dd681 ("x86/insn: remove pcommit")
    dfa169bbee00 ("Revert "KVM: x86: add pcommit support"")

    No need to update anything in the tools, as "pcommit" wasn't being
    listed on the VMX_EXIT_REASONS in the tools/perf/arch/x86/util/kvm-stat.c
    file.

    Just grab fresh copies of these files to silence the file cache
    coherency detector:

    $ make -C tools/perf O=/tmp/build/perf install-bin
    make: Entering directory '/home/acme/git/linux/tools/perf'
    BUILD: Doing 'make -j4' parallel build
    Warning: tools/arch/x86/include/asm/cpufeatures.h differs from kernel
    Warning: tools/arch/x86/include/uapi/asm/vmx.h differs from kernel
    INSTALL GTK UI

    #

    Cc: Adrian Hunter
    Cc: Dan Williams
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Paolo Bonzini
    Cc: Ross Zwisler
    Cc: Wang Nan
    Cc: Xiao Guangrong
    Link: http://lkml.kernel.org/n/tip-07pmcc1ysydhyyxbmp1vt0l4@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

13 Jul, 2016

2 commits

  • We use it in bitops/__ffs.h and bitops/atomic.h, that we also got from
    the kernel, but were getting it from either newer systems that carry it
    in /usr/include, or from the kernel sources, that we decided not to
    touch from tools/ code. Fix it.

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-lwqvgbuitjmrdpjmjp6zqnyx@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • Those kernel files were being directly accessed, which we're not
    allowing anymore to avoid that changes in the kernel side break tooling.

    Warn if these copies drift from the original files.

    Cc: Adrian Hunter
    Cc: Alexander Yarygin
    Cc: Christoffer Dall
    Cc: David Ahern
    Cc: Eric Auger
    Cc: Hemant Kumar
    Cc: Jiri Olsa
    Cc: Marc Zyngier
    Cc: Namhyung Kim
    Cc: Naveen N. Rao
    Cc: Srikar Dronamraju
    Cc: Wang Nan
    Cc: Yunlong Song
    Link: http://lkml.kernel.org/n/tip-mnopguymhnwzjhw3mowllvsy@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo