23 Jun, 2016

1 commit


28 May, 2016

1 commit

  • Pull second batch of KVM updates from Radim Krčmář:
    "General:

    - move kvm_stat tool from QEMU repo into tools/kvm/kvm_stat (kvm_stat
    had nothing to do with QEMU in the first place -- the tool only
    interprets debugfs)

    - expose per-vm statistics in debugfs and support them in kvm_stat
    (KVM always collected per-vm statistics, but they were summarised
    into global statistics)

    x86:

    - fix dynamic APICv (VMX was improperly configured and a guest could
    access host's APIC MSRs, CVE-2016-4440)

    - minor fixes

    ARM changes from Christoffer Dall:

    - new vgic reimplementation of our horribly broken legacy vgic
    implementation. The two implementations will live side-by-side
    (with the new being the configured default) for one kernel release
    and then we'll remove the legacy one.

    - fix for a non-critical issue with virtual abort injection to guests"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (70 commits)
    tools: kvm_stat: Add comments
    tools: kvm_stat: Introduce pid monitoring
    KVM: Create debugfs dir and stat files for each VM
    MAINTAINERS: Add kvm tools
    tools: kvm_stat: Powerpc related fixes
    tools: Add kvm_stat man page
    tools: Add kvm_stat vm monitor script
    kvm:vmx: more complete state update on APICv on/off
    KVM: SVM: Add more SVM_EXIT_REASONS
    KVM: Unify traced vector format
    svm: bitwise vs logical op typo
    KVM: arm/arm64: vgic-new: Synchronize changes to active state
    KVM: arm/arm64: vgic-new: enable build
    KVM: arm/arm64: vgic-new: implement mapped IRQ handling
    KVM: arm/arm64: vgic-new: Wire up irqfd injection
    KVM: arm/arm64: vgic-new: Add vgic_v2/v3_enable
    KVM: arm/arm64: vgic-new: vgic_init: implement map_resources
    KVM: arm/arm64: vgic-new: vgic_init: implement vgic_init
    KVM: arm/arm64: vgic-new: vgic_init: implement vgic_create
    KVM: arm/arm64: vgic-new: vgic_init: implement kvm_vgic_hyp_init
    ...

    Linus Torvalds
     

25 May, 2016

1 commit

  • This tool displays kvm vm exit statistics to ease vm monitoring. It
    takes its data from the kvm debugfs files or the vm tracepoints and
    outputs them as a curses ui or simple text.

    It was moved from qemu, as it is dependent on the kernel whereas qemu
    works with a large number of kernel versions, some of which may break
    the script.

    Signed-off-by: Janosch Frank
    Signed-off-by: Paolo Bonzini

    Janosch Frank
     

26 Apr, 2016

1 commit

  • Fix perf_clean target to follow the same logic as perf target.

    Fixes the following make invokation:

    $ cd && make tools/perf_clean

    Reported-by: TJ
    Signed-off-by: Jiri Olsa
    Tested-by: Arnaldo Carvalho de Melo
    Cc: David Ahern
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=116411
    Link: http://lkml.kernel.org/r/1461615438-27894-2-git-send-email-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     

21 Mar, 2016

1 commit

  • Pull 'objtool' stack frame validation from Ingo Molnar:
    "This tree adds a new kernel build-time object file validation feature
    (ONFIG_STACK_VALIDATION=y): kernel stack frame correctness validation.
    It was written by and is maintained by Josh Poimboeuf.

    The motivation: there's a category of hard to find kernel bugs, most
    of them in assembly code (but also occasionally in C code), that
    degrades the quality of kernel stack dumps/backtraces. These bugs are
    hard to detect at the source code level. Such bugs result in
    incorrect/incomplete backtraces most of time - but can also in some
    rare cases result in crashes or other undefined behavior.

    The build time correctness checking is done via the new 'objtool'
    user-space utility that was written for this purpose and which is
    hosted in the kernel repository in tools/objtool/. The tool's (very
    simple) UI and source code design is shaped after Git and perf and
    shares quite a bit of infrastructure with tools/perf (which tooling
    infrastructure sharing effort got merged via perf and is already
    upstream). Objtool follows the well-known kernel coding style.

    Objtool does not try to check .c or .S files, it instead analyzes the
    resulting .o generated machine code from first principles: it decodes
    the instruction stream and interprets it. (Right now objtool supports
    the x86-64 architecture.)

    From tools/objtool/Documentation/stack-validation.txt:

    "The kernel CONFIG_STACK_VALIDATION option enables a host tool named
    objtool which runs at compile time. It has a "check" subcommand
    which analyzes every .o file and ensures the validity of its stack
    metadata. It enforces a set of rules on asm code and C inline
    assembly code so that stack traces can be reliable.

    Currently it only checks frame pointer usage, but there are plans to
    add CFI validation for C files and CFI generation for asm files.

    For each function, it recursively follows all possible code paths
    and validates the correct frame pointer state at each instruction.

    It also follows code paths involving special sections, like
    .altinstructions, __jump_table, and __ex_table, which can add
    alternative execution paths to a given instruction (or set of
    instructions). Similarly, it knows how to follow switch statements,
    for which gcc sometimes uses jump tables."

    When this new kernel option is enabled (it's disabled by default), the
    tool, if it finds any suspicious assembly code pattern, outputs
    warnings in compiler warning format:

    warning: objtool: rtlwifi_rate_mapping()+0x2e7: frame pointer state mismatch
    warning: objtool: cik_tiling_mode_table_init()+0x6ce: call without frame pointer save/setup
    warning: objtool:__schedule()+0x3c0: duplicate frame pointer save
    warning: objtool:__schedule()+0x3fd: sibling call from callable instruction with changed frame pointer

    ... so that scripts that pick up compiler warnings will notice them.
    All known warnings triggered by the tool are fixed by the tree, most
    of the commits in fact prepare the kernel to be warning-free. Most of
    them are bugfixes or cleanups that stand on their own, but there are
    also some annotations of 'special' stack frames for justified cases
    such entries to JIT-ed code (BPF) or really special boot time code.

    There are two other long-term motivations behind this tool as well:

    - To improve the quality and reliability of kernel stack frames, so
    that they can be used for optimized live patching.

    - To create independent infrastructure to check the correctness of
    CFI stack frames at build time. CFI debuginfo is notoriously
    unreliable and we cannot use it in the kernel as-is without extra
    checking done both on the kernel side and on the build side.

    The quality of kernel stack frames matters to debuggability as well,
    so IMO we can merge this without having to consider the live patching
    or CFI debuginfo angle"

    * 'core-objtool-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (52 commits)
    objtool: Only print one warning per function
    objtool: Add several performance improvements
    tools: Copy hashtable.h into tools directory
    objtool: Fix false positive warnings for functions with multiple switch statements
    objtool: Rename some variables and functions
    objtool: Remove superflous INIT_LIST_HEAD
    objtool: Add helper macros for traversing instructions
    objtool: Fix false positive warnings related to sibling calls
    objtool: Compile with debugging symbols
    objtool: Detect infinite recursion
    objtool: Prevent infinite recursion in noreturn detection
    objtool: Detect and warn if libelf is missing and don't break the build
    tools: Support relative directory path for 'O='
    objtool: Support CROSS_COMPILE
    x86/asm/decoder: Use explicitly signed chars
    objtool: Enable stack metadata validation on 64-bit x86
    objtool: Add CONFIG_STACK_VALIDATION option
    objtool: Add tool to perform compile-time stack metadata validation
    x86/kprobes: Mark kretprobe_trampoline() stack frame as non-standard
    sched: Always inline context_switch()
    ...

    Linus Torvalds
     

29 Feb, 2016

1 commit

  • This adds a host tool named objtool which has a "check" subcommand which
    analyzes .o files to ensure the validity of stack metadata. It enforces
    a set of rules on asm code and C inline assembly code so that stack
    traces can be reliable.

    For each function, it recursively follows all possible code paths and
    validates the correct frame pointer state at each instruction.

    It also follows code paths involving kernel special sections, like
    .altinstructions, __jump_table, and __ex_table, which can add
    alternative execution paths to a given instruction (or set of
    instructions). Similarly, it knows how to follow switch statements, for
    which gcc sometimes uses jump tables.

    Here are some of the benefits of validating stack metadata:

    a) More reliable stack traces for frame pointer enabled kernels

    Frame pointers are used for debugging purposes. They allow runtime
    code and debug tools to be able to walk the stack to determine the
    chain of function call sites that led to the currently executing
    code.

    For some architectures, frame pointers are enabled by
    CONFIG_FRAME_POINTER. For some other architectures they may be
    required by the ABI (sometimes referred to as "backchain pointers").

    For C code, gcc automatically generates instructions for setting up
    frame pointers when the -fno-omit-frame-pointer option is used.

    But for asm code, the frame setup instructions have to be written by
    hand, which most people don't do. So the end result is that
    CONFIG_FRAME_POINTER is honored for C code but not for most asm code.

    For stack traces based on frame pointers to be reliable, all
    functions which call other functions must first create a stack frame
    and update the frame pointer. If a first function doesn't properly
    create a stack frame before calling a second function, the *caller*
    of the first function will be skipped on the stack trace.

    For example, consider the following example backtrace with frame
    pointers enabled:

    [] dump_stack+0x4b/0x63
    [] cmdline_proc_show+0x12/0x30
    [] seq_read+0x108/0x3e0
    [] proc_reg_read+0x42/0x70
    [] __vfs_read+0x37/0x100
    [] vfs_read+0x86/0x130
    [] SyS_read+0x58/0xd0
    [] entry_SYSCALL_64_fastpath+0x12/0x76

    It correctly shows that the caller of cmdline_proc_show() is
    seq_read().

    If we remove the frame pointer logic from cmdline_proc_show() by
    replacing the frame pointer related instructions with nops, here's
    what it looks like instead:

    [] dump_stack+0x4b/0x63
    [] cmdline_proc_show+0x12/0x30
    [] proc_reg_read+0x42/0x70
    [] __vfs_read+0x37/0x100
    [] vfs_read+0x86/0x130
    [] SyS_read+0x58/0xd0
    [] entry_SYSCALL_64_fastpath+0x12/0x76

    Notice that cmdline_proc_show()'s caller, seq_read(), has been
    skipped. Instead the stack trace seems to show that
    cmdline_proc_show() was called by proc_reg_read().

    The benefit of "objtool check" here is that because it ensures that
    *all* functions honor CONFIG_FRAME_POINTER, no functions will ever[*]
    be skipped on a stack trace.

    [*] unless an interrupt or exception has occurred at the very
    beginning of a function before the stack frame has been created,
    or at the very end of the function after the stack frame has been
    destroyed. This is an inherent limitation of frame pointers.

    b) 100% reliable stack traces for DWARF enabled kernels

    This is not yet implemented. For more details about what is planned,
    see tools/objtool/Documentation/stack-validation.txt.

    c) Higher live patching compatibility rate

    This is not yet implemented. For more details about what is planned,
    see tools/objtool/Documentation/stack-validation.txt.

    To achieve the validation, "objtool check" enforces the following rules:

    1. Each callable function must be annotated as such with the ELF
    function type. In asm code, this is typically done using the
    ENTRY/ENDPROC macros. If objtool finds a return instruction
    outside of a function, it flags an error since that usually indicates
    callable code which should be annotated accordingly.

    This rule is needed so that objtool can properly identify each
    callable function in order to analyze its stack metadata.

    2. Conversely, each section of code which is *not* callable should *not*
    be annotated as an ELF function. The ENDPROC macro shouldn't be used
    in this case.

    This rule is needed so that objtool can ignore non-callable code.
    Such code doesn't have to follow any of the other rules.

    3. Each callable function which calls another function must have the
    correct frame pointer logic, if required by CONFIG_FRAME_POINTER or
    the architecture's back chain rules. This can by done in asm code
    with the FRAME_BEGIN/FRAME_END macros.

    This rule ensures that frame pointer based stack traces will work as
    designed. If function A doesn't create a stack frame before calling
    function B, the _caller_ of function A will be skipped on the stack
    trace.

    4. Dynamic jumps and jumps to undefined symbols are only allowed if:

    a) the jump is part of a switch statement; or

    b) the jump matches sibling call semantics and the frame pointer has
    the same value it had on function entry.

    This rule is needed so that objtool can reliably analyze all of a
    function's code paths. If a function jumps to code in another file,
    and it's not a sibling call, objtool has no way to follow the jump
    because it only analyzes a single file at a time.

    5. A callable function may not execute kernel entry/exit instructions.
    The only code which needs such instructions is kernel entry code,
    which shouldn't be be in callable functions anyway.

    This rule is just a sanity check to ensure that callable functions
    return normally.

    It currently only supports x86_64. I tried to make the code generic so
    that support for other architectures can hopefully be plugged in
    relatively easily.

    On my Lenovo laptop with a i7-4810MQ 4-core/8-thread CPU, building the
    kernel with objtool checking every .o file adds about three seconds of
    total build time. It hasn't been optimized for performance yet, so
    there are probably some opportunities for better build performance.

    Signed-off-by: Josh Poimboeuf
    Cc: Andrew Morton
    Cc: Andy Lutomirski
    Cc: Arnaldo Carvalho de Melo
    Cc: Bernd Petrovitsch
    Cc: Borislav Petkov
    Cc: Chris J Arges
    Cc: Jiri Slaby
    Cc: Linus Torvalds
    Cc: Michal Marek
    Cc: Namhyung Kim
    Cc: Pedro Alves
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: live-patching@vger.kernel.org
    Link: http://lkml.kernel.org/r/f3efb173de43bd067b060de73f856567c0fa1174.1456719558.git.jpoimboe@redhat.com
    Signed-off-by: Ingo Molnar

    Josh Poimboeuf
     

09 Feb, 2016

1 commit

  • This creates GPIO tools under tools/gpio/* and adds a single
    example program to list the GPIOs on a system. When proper
    devices are created it provides this minimal output:

    Cc: Johan Hovold
    Cc: Michael Welling
    Cc: Markus Pargmann
    Signed-off-by: Linus Walleij

    Linus Walleij
     

15 Jan, 2016

1 commit

  • Pull perf fixes from Ingo Molnar:
    "Tooling fixes, the biggest patch is one that decouples the kernel's
    list.h from tooling list.h"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits)
    perf tools: Fallback to srcdir/Documentation/tips.txt
    perf ui/tui: Print helpline message as is
    perf tools: Set and pass DOCDIR to builtin-report.c
    perf tools: Add file_only config option to strlist
    perf tools: Add more usage tips
    perf record: Add --buildid-all option
    tools subcmd: Add missing NORETURN define for parse-options.h
    tools: Fix formatting of the "make -C tools" help message
    tools: Make list.h self-sufficient
    perf tools: Fix mmap2 event allocation in synthesize code
    perf stat: Fix recort_usage typo
    perf test: Reset err after using it hold errcode in hist testcases
    perf test: Fix false TEST_OK result for 'perf test hist'
    tools build: Add BPF feature check to test-all
    perf bpf: Fix build breakage due to libbpf
    tools: Move Makefile.arch from perf/config to tools/scripts
    perf tools: Fix PowerPC native building
    perf tools: Fix phony build target for build-test
    perf tools: Add -lutil in python lib list for broken python-config
    perf tools: Add missing sources to perf's MANIFEST
    ...

    Linus Torvalds
     

14 Jan, 2016

1 commit

  • Pull spi updates from Mark Brown:
    "A quiet release for SPI, not even many driver updates:

    - Add a dummy loopback driver for use in exercising framework
    features during development.

    - Move the test utilities to tools/ and add support for transferring
    data to and from a file instead of stdin and stdout to spidev_test.

    - Support for Mediatek MT2701 and Renesas AG5 deices"

    * tag 'spi-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (69 commits)
    spi: loopback: fix typo in MODULE_PARM_DESC
    spi: sun4i: Prevent chip-select from being activated twice before a transfer
    spi: loopback-test: spi_check_rx_ranges can get always done
    spi: loopback-test: rename method spi_test_fill_tx to spi_test_fill_pattern
    spi: loopback-test: write rx pattern also when running without tx_buf
    spi: fsl-espi: expose maximum transfer size limit
    spi: expose master transfer size limitation.
    spi: zynq: use to_platform_device()
    spi: cadence: use to_platform_device()
    spi: mediatek: Add spi support for mt2701 IC
    spi: mediatek: merge all identical compat to mtk_common_compat
    spi: mtk: Add bindings for mediatek MT2701 soc platform
    spi: mediatek: Prevent overflows in FIFO transfers
    spi: s3c64xx: Remove unused platform_device_id entries
    spi: use to_spi_device
    spi: dw: Use SPI_TMOD_TR rather than magic const 0 to set tmode
    spi: imx: defer spi initialization, if DMA engine is
    spi: imx: return error from dma channel request
    spi: imx: enable loopback only for ECSPI controller family
    spi: imx: fix loopback mode setup after controller reset
    ...

    Linus Torvalds
     

12 Jan, 2016

2 commits


11 Jan, 2016

1 commit

  • Adding missing clean targets for following tools directories:

    lib/bpf
    lib/subcmd
    build

    This are now cleaned via 'make -C tools clean' command.

    Reported-and-Tested-by: Arnaldo Carvalho de Melo
    Signed-off-by: Jiri Olsa
    Cc: David Ahern
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Wang Nan
    Link: http://lkml.kernel.org/r/1452509693-13452-2-git-send-email-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     

23 Nov, 2015

1 commit

  • Jon Corbet requested this code moved with the last changeset,
    https://lkml.org/lkml/2015/3/1/144,
    but the patch was not applied because it missed the Makefile.
    Moved spidev_test, spidev_fdx and their Makefile infrastructure.

    Signed-off-by: Joshua Clayton
    Signed-off-by: Mark Brown

    Joshua Clayton
     

19 Nov, 2015

1 commit

  • Fix copy/paste error in selftests_install rule which was copy-pasted
    from the clean rule but not properly changed.

    Signed-off-by: Kevin Hilman
    Cc: Bamvor Jian Zhang
    Cc: Jiri Olsa
    Cc: Jonathan Cameron
    Cc: Michael Ellerman
    Cc: Pali Rohar
    Cc: Pavel Machek
    Cc: Roberta Dobrescu
    Cc: Shuah Khan
    Cc: linaro-kernel@lists.linaro.org
    Link: http://lkml.kernel.org/r/1447797261-1775-1-git-send-email-khilman@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Kevin Hilman
     

13 Nov, 2015

1 commit

  • Signed-off-by: Kamal Mostafa
    Acked-by: Pavel Machek
    Cc: Jiri Olsa
    Cc: Jonathan Cameron
    Cc: Pali Rohar
    Cc: Roberta Dobrescu
    Link: http://lkml.kernel.org/r/1447280736-2161-2-git-send-email-kamal@canonical.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Kamal Mostafa
     

12 Nov, 2015

1 commit


27 Jun, 2015

1 commit

  • Pull staging driver updates from Greg KH:
    "Here's the big, really big, staging tree patches for 4.2-rc1.

    Loads of stuff in here, almost all just coding style fixes / churn,
    and a few new drivers as well, one of which I just disabled from the
    build a few minutes ago due to way too many build warnings.

    Other than the one "disable this driver" patch, all of these have been
    in linux-next for quite a while with no reported issues"

    * tag 'staging-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (1163 commits)
    staging: wilc1000: disable driver due to build warnings
    Staging: rts5208: fix CHANGE_LINK_STATE value
    Staging: sm750fb: ddk750_swi2c.c: Insert spaces before parenthesis
    Staging: sm750fb: ddk750_swi2c.c: Place braces on correct lines
    Staging: sm750fb: ddk750_swi2c.c: Insert spaces around operators
    Staging: sm750fb: ddk750_swi2c.c: Replace spaces with tabs
    Staging: sm750fb: ddk750_swi2c.h: Shorten lines to under 80 characters
    Staging: sm750fb: ddk750_swi2c.h: Replace spaces with tabs
    Staging: sm750fb: modedb.h: Shorten lines to under 80 characters
    Staging: sm750fb: modedb.h: Replace spaces with tabs
    staging: comedi: addi_apci_3120: rename 'this_board' variables
    staging: comedi: addi_apci_1516: rename 'this_board' variables
    staging: comedi: ni_atmio: cleanup ni_getboardtype()
    staging: comedi: vmk80xx: sanity check context used to get the boardinfo
    staging: comedi: vmk80xx: rename 'boardinfo' variables
    staging: comedi: dt3000: rename 'this_board' variables
    staging: comedi: adv_pci_dio: rename 'this_board' variables
    staging: comedi: cb_pcidas64: rename 'thisboard' variables
    staging: comedi: cb_pcidas: rename 'thisboard' variables
    staging: comedi: me4000: rename 'thisboard' variables
    ...

    Linus Torvalds
     

25 Jun, 2015

1 commit

  • Pull documentation updates from Jonathan Corbet:
    "The main thing here is Ingo's big subdirectory documenting feature
    support for each architecture. Beyond that, it's the usual pile of
    fixes, tweaks, and small additions"

    * tag 'docs-for-linus' of git://git.lwn.net/linux-2.6: (79 commits)
    doc:md: fix typo in md.txt.
    Documentation/mic/mpssd: don't build x86 userspace when cross compiling
    Documentation/prctl: don't build tsc tests when cross compiling
    Documentation/vDSO: don't build tests when cross compiling
    Doc:ABI/testing: Fix typo in sysfs-bus-fcoe
    Doc: Docbook: Change wikipedia's URL from http to https in scsi.tmpl
    Doc: Change wikipedia's URL from http to https
    Documentation/kernel-parameters: add missing pciserial to the earlyprintk
    Doc:pps: Fix typo in pps.txt
    kbuild : Fix documentation of INSTALL_HDR_PATH
    Documentation: filesystems: updated struct file_operations documentation in vfs.txt
    kbuild: edit explanation of clean-files variable
    Doc: ja_JP: Fix typo in HOWTO
    Move freefall program from Documentation/ to tools/
    Documentation: ARM: EXYNOS: Describe boot loaders interface
    Doc:nfc: Fix typo in nfc-hci.txt
    vfs: Minor documentation fix
    Doc: networking: txtimestamp: fix printf format warning
    Documentation, intel_pstate: Improve legacy mode internal governors description
    Documentation: extend use case for EXPORT_SYMBOL_GPL()
    ...

    Linus Torvalds
     

09 Jun, 2015

1 commit


29 Apr, 2015

2 commits

  • Several fixes were needed to allow following builds:
    $ make tools/tmon
    $ make -C tools/perf
    $ make -C /tools perf

    - some of the tools (perf) use same make variables as in
    kernel build, unsetting srctree and objtree
    - using original $(O) for O variable
    - perf build does not follow the descend function setup
    invoking it via it's own make rule

    I tried the rest of the tools/Makefile targets and they
    seem to work now.

    Reported-by: Brian Norris
    Signed-off-by: Jiri Olsa
    Cc: Borislav Petkov
    Cc: Brian Norris
    Cc: David Ahern
    Cc: David Howells
    Cc: Michal Marek
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Sam Ravnborg
    Cc: linux-kbuild@vger.kernel.org
    Link: http://lkml.kernel.org/r/1429389280-18720-3-git-send-email-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • The perf build handles its dependencies by itself.

    Also renaming libapi libapikfs to libapi as it got
    changed just recently.

    Signed-off-by: Jiri Olsa
    Cc: Borislav Petkov
    Cc: Brian Norris
    Cc: David Ahern
    Cc: David Howells
    Cc: Michal Marek
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Sam Ravnborg
    Cc: linux-kbuild@vger.kernel.org
    Link: http://lkml.kernel.org/r/1429389280-18720-2-git-send-email-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     

09 Apr, 2015

1 commit

  • This patch adds targets for building and cleaning iio tools to tools/Makefile.
    To build iio tools from the toplevel kernel directory one should call:

    $ make -C tools iio

    and for cleaning it

    $ make -C tools iio_clean

    Signed-off-by: Roberta Dobrescu
    Reviewed-by: Daniel Baluta
    Signed-off-by: Jonathan Cameron

    Roberta Dobrescu
     

09 May, 2014

1 commit


16 Feb, 2014

1 commit


25 Jan, 2014

1 commit

  • Pull ACPI and power management updates from Rafael Wysocki:
    "As far as the number of commits goes, the top spot belongs to ACPI
    this time with cpufreq in the second position and a handful of PM
    core, PNP and cpuidle updates. They are fixes and cleanups mostly, as
    usual, with a couple of new features in the mix.

    The most visible change is probably that we will create struct
    acpi_device objects (visible in sysfs) for all devices represented in
    the ACPI tables regardless of their status and there will be a new
    sysfs attribute under those objects allowing user space to check that
    status via _STA.

    Consequently, ACPI device eject or generally hot-removal will not
    delete those objects, unless the table containing the corresponding
    namespace nodes is unloaded, which is extremely rare. Also ACPI
    container hotplug will be handled quite a bit differently and cpufreq
    will support CPU boost ("turbo") generically and not only in the
    acpi-cpufreq driver.

    Specifics:

    - ACPI core changes to make it create a struct acpi_device object for
    every device represented in the ACPI tables during all namespace
    scans regardless of the current status of that device. In
    accordance with this, ACPI hotplug operations will not delete those
    objects, unless the underlying ACPI tables go away.

    - On top of the above, new sysfs attribute for ACPI device objects
    allowing user space to check device status by triggering the
    execution of _STA for its ACPI object. From Srinivas Pandruvada.

    - ACPI core hotplug changes reducing code duplication, integrating
    the PCI root hotplug with the core and reworking container hotplug.

    - ACPI core simplifications making it use ACPI_COMPANION() in the
    code "glueing" ACPI device objects to "physical" devices.

    - ACPICA update to upstream version 20131218. This adds support for
    the DBG2 and PCCT tables to ACPICA, fixes some bugs and improves
    debug facilities. From Bob Moore, Lv Zheng and Betty Dall.

    - Init code change to carry out the early ACPI initialization
    earlier. That should allow us to use ACPI during the timekeeping
    initialization and possibly to simplify the EFI initialization too.
    From Chun-Yi Lee.

    - Clenups of the inclusions of ACPI headers in many places all over
    from Lv Zheng and Rashika Kheria (work in progress).

    - New helper for ACPI _DSM execution and rework of the code in
    drivers that uses _DSM to execute it via the new helper. From
    Jiang Liu.

    - New Win8 OSI blacklist entries from Takashi Iwai.

    - Assorted ACPI fixes and cleanups from Al Stone, Emil Goode, Hanjun
    Guo, Lan Tianyu, Masanari Iida, Oliver Neukum, Prarit Bhargava,
    Rashika Kheria, Tang Chen, Zhang Rui.

    - intel_pstate driver updates, including proper Baytrail support,
    from Dirk Brandewie and intel_pstate documentation from Ramkumar
    Ramachandra.

    - Generic CPU boost ("turbo") support for cpufreq from Lukasz
    Majewski.

    - powernow-k6 cpufreq driver fixes from Mikulas Patocka.

    - cpufreq core fixes and cleanups from Viresh Kumar, Jane Li, Mark
    Brown.

    - Assorted cpufreq drivers fixes and cleanups from Anson Huang, John
    Tobias, Paul Bolle, Paul Walmsley, Sachin Kamat, Shawn Guo, Viresh
    Kumar.

    - cpuidle cleanups from Bartlomiej Zolnierkiewicz.

    - Support for hibernation APM events from Bin Shi.

    - Hibernation fix to avoid bringing up nonboot CPUs with ACPI EC
    disabled during thaw transitions from Bjørn Mork.

    - PM core fixes and cleanups from Ben Dooks, Leonardo Potenza, Ulf
    Hansson.

    - PNP subsystem fixes and cleanups from Dmitry Torokhov, Levente
    Kurusa, Rashika Kheria.

    - New tool for profiling system suspend from Todd E Brandt and a
    cpupower tool cleanup from One Thousand Gnomes"

    * tag 'pm+acpi-3.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (153 commits)
    thermal: exynos: boost: Automatic enable/disable of BOOST feature (at Exynos4412)
    cpufreq: exynos4x12: Change L0 driver data to CPUFREQ_BOOST_FREQ
    Documentation: cpufreq / boost: Update BOOST documentation
    cpufreq: exynos: Extend Exynos cpufreq driver to support boost
    cpufreq / boost: Kconfig: Support for software-managed BOOST
    acpi-cpufreq: Adjust the code to use the common boost attribute
    cpufreq: Add boost frequency support in core
    intel_pstate: Add trace point to report internal state.
    cpufreq: introduce cpufreq_generic_get() routine
    ARM: SA1100: Create dummy clk_get_rate() to avoid build failures
    cpufreq: stats: create sysfs entries when cpufreq_stats is a module
    cpufreq: stats: free table and remove sysfs entry in a single routine
    cpufreq: stats: remove hotplug notifiers
    cpufreq: stats: handle cpufreq_unregister_driver() and suspend/resume properly
    cpufreq: speedstep: remove unused speedstep_get_state
    platform: introduce OF style 'modalias' support for platform bus
    PM / tools: new tool for suspend/resume performance optimization
    ACPI: fix module autoloading for ACPI enumerated devices
    ACPI: add module autoloading support for ACPI enumerated devices
    ACPI: fix create_modalias() return value handling
    ...

    Linus Torvalds
     

16 Jan, 2014

1 commit


17 Dec, 2013

1 commit

  • Move debugfs.* to api/fs/. We have a common tools/lib/api/ place where
    the Makefile lives and then we place the headers in subdirs.

    For example, all the fs-related stuff goes to tools/lib/api/fs/ from
    which we get libapikfs.a (acme got almost the naming he wanted :-)) and
    we link it into the tools which need it - in this case perf and
    tools/vm/page-types.

    acme:

    "Looking at the implementation, I think some tools can even link
    directly to the .o files, avoiding the .a file altogether.

    But that is just an optimization/finer granularity tools/lib/
    cherrypicking that toolers can make use of."

    Fixup documentation cleaning target while at it.

    Signed-off-by: Borislav Petkov
    Acked-by: Ingo Molnar
    Cc: Adrian Hunter
    Cc: Andi Kleen
    Cc: Arjan van de Ven
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Pekka Enberg
    Cc: Peter Zijlstra
    Cc: Robert Richter
    Cc: Stanislav Fomichev
    Cc: Stephane Eranian
    Cc: Steven Rostedt
    Link: http://lkml.kernel.org/r/1386605664-24041-2-git-send-email-bp@alien8.de
    Signed-off-by: Arnaldo Carvalho de Melo

    Borislav Petkov
     

07 Nov, 2013

1 commit

  • Increasingly, Linux is running on thermally constrained devices. The simple
    thermal relationship between processor and fan has become past for modern
    computers.

    As hardware vendors cope with the thermal constraints on their products,
    more sensors are added, new cooling capabilities are introduced. The
    complexity of the thermal relationship can grow exponentially among cooling
    devices, zones, sensors, and trip points. They can also change dynamically.

    To expose such relationship to the userspace, Linux generic thermal layer
    introduced sysfs entry at /sys/class/thermal with a matrix of symbolic
    links, trip point bindings, and device instances. To traverse such
    matrix by hand is not a trivial task. Testing is also difficult in that
    thermal conditions are often exception cases that hard to reach in
    normal operations.

    TMON is conceived as a tool to help visualize, tune, and test the
    complex thermal subsystem.

    Signed-off-by: Jacob Pan
    Signed-off-by: Zhang Rui

    Jacob Pan
     

02 May, 2013

1 commit

  • Pull networking updates from David Miller:
    "Highlights (1721 non-merge commits, this has to be a record of some
    sort):

    1) Add 'random' mode to team driver, from Jiri Pirko and Eric
    Dumazet.

    2) Make it so that any driver that supports configuration of multiple
    MAC addresses can provide the forwarding database add and del
    calls by providing a default implementation and hooking that up if
    the driver doesn't have an explicit set of handlers. From Vlad
    Yasevich.

    3) Support GSO segmentation over tunnels and other encapsulating
    devices such as VXLAN, from Pravin B Shelar.

    4) Support L2 GRE tunnels in the flow dissector, from Michael Dalton.

    5) Implement Tail Loss Probe (TLP) detection in TCP, from Nandita
    Dukkipati.

    6) In the PHY layer, allow supporting wake-on-lan in situations where
    the PHY registers have to be written for it to be configured.

    Use it to support wake-on-lan in mv643xx_eth.

    From Michael Stapelberg.

    7) Significantly improve firewire IPV6 support, from YOSHIFUJI
    Hideaki.

    8) Allow multiple packets to be sent in a single transmission using
    network coding in batman-adv, from Martin Hundebøll.

    9) Add support for T5 cxgb4 chips, from Santosh Rastapur.

    10) Generalize the VXLAN forwarding tables so that there is more
    flexibility in configurating various aspects of the endpoints.
    From David Stevens.

    11) Support RSS and TSO in hardware over GRE tunnels in bxn2x driver,
    from Dmitry Kravkov.

    12) Zero copy support in nfnelink_queue, from Eric Dumazet and Pablo
    Neira Ayuso.

    13) Start adding networking selftests.

    14) In situations of overload on the same AF_PACKET fanout socket, or
    per-cpu packet receive queue, minimize drop by distributing the
    load to other cpus/fanouts. From Willem de Bruijn and Eric
    Dumazet.

    15) Add support for new payload offset BPF instruction, from Daniel
    Borkmann.

    16) Convert several drivers over to mdoule_platform_driver(), from
    Sachin Kamat.

    17) Provide a minimal BPF JIT image disassembler userspace tool, from
    Daniel Borkmann.

    18) Rewrite F-RTO implementation in TCP to match the final
    specification of it in RFC4138 and RFC5682. From Yuchung Cheng.

    19) Provide netlink socket diag of netlink sockets ("Yo dawg, I hear
    you like netlink, so I implemented netlink dumping of netlink
    sockets.") From Andrey Vagin.

    20) Remove ugly passing of rtnetlink attributes into rtnl_doit
    functions, from Thomas Graf.

    21) Allow userspace to be able to see if a configuration change occurs
    in the middle of an address or device list dump, from Nicolas
    Dichtel.

    22) Support RFC3168 ECN protection for ipv6 fragments, from Hannes
    Frederic Sowa.

    23) Increase accuracy of packet length used by packet scheduler, from
    Jason Wang.

    24) Beginning set of changes to make ipv4/ipv6 fragment handling more
    scalable and less susceptible to overload and locking contention,
    from Jesper Dangaard Brouer.

    25) Get rid of using non-type-safe NLMSG_* macros and use nlmsg_*()
    instead. From Hong Zhiguo.

    26) Optimize route usage in IPVS by avoiding reference counting where
    possible, from Julian Anastasov.

    27) Convert IPVS schedulers to RCU, also from Julian Anastasov.

    28) Support cpu fanouts in xt_NFQUEUE netfilter target, from Holger
    Eitzenberger.

    29) Network namespace support for nf_log, ebt_log, xt_LOG, ipt_ULOG,
    nfnetlink_log, and nfnetlink_queue. From Gao feng.

    30) Implement RFC3168 ECN protection, from Hannes Frederic Sowa.

    31) Support several new r8169 chips, from Hayes Wang.

    32) Support tokenized interface identifiers in ipv6, from Daniel
    Borkmann.

    33) Use usbnet_link_change() helper in USB net driver, from Ming Lei.

    34) Add 802.1ad vlan offload support, from Patrick McHardy.

    35) Support mmap() based netlink communication, also from Patrick
    McHardy.

    36) Support HW timestamping in mlx4 driver, from Amir Vadai.

    37) Rationalize AF_PACKET packet timestamping when transmitting, from
    Willem de Bruijn and Daniel Borkmann.

    38) Bring parity to what's provided by /proc/net/packet socket dumping
    and the info provided by netlink socket dumping of AF_PACKET
    sockets. From Nicolas Dichtel.

    39) Fix peeking beyond zero sized SKBs in AF_UNIX, from Benjamin
    Poirier"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1722 commits)
    filter: fix va_list build error
    af_unix: fix a fatal race with bit fields
    bnx2x: Prevent memory leak when cnic is absent
    bnx2x: correct reading of speed capabilities
    net: sctp: attribute printl with __printf for gcc fmt checks
    netlink: kconfig: move mmap i/o into netlink kconfig
    netpoll: convert mutex into a semaphore
    netlink: Fix skb ref counting.
    net_sched: act_ipt forward compat with xtables
    mlx4_en: fix a build error on 32bit arches
    Revert "bnx2x: allow nvram test to run when device is down"
    bridge: avoid OOPS if root port not found
    drivers: net: cpsw: fix kernel warn on cpsw irq enable
    sh_eth: use random MAC address if no valid one supplied
    3c509.c: call SET_NETDEV_DEV for all device types (ISA/ISAPnP/EISA)
    tg3: fix to append hardware time stamping flags
    unix/stream: fix peeking with an offset larger than data in queue
    unix/dgram: fix peeking with an offset larger than data in queue
    unix/dgram: peek beyond 0-sized skbs
    openvswitch: Remove unneeded ovs_netdev_get_ifindex()
    ...

    Linus Torvalds
     

21 Mar, 2013

2 commits

  • This is a minimal stand-alone user space helper, that allows for debugging or
    verification of emitted BPF JIT images. This is in particular useful for
    emitted opcode debugging, since minor bugs in the JIT compiler can be fatal.
    The disassembler is architecture generic and uses libopcodes and libbfd.

    How to get to the disassembly, example:

    1) `echo 2 > /proc/sys/net/core/bpf_jit_enable`
    2) Load a BPF filter (e.g. `tcpdump -p -n -s 0 -i eth1 host 192.168.20.0/24`)
    3) Run e.g. `bpf_jit_disasm -o` to disassemble the most recent JIT code output

    `bpf_jit_disasm -o` will display the related opcodes to a particular instruction
    as well. Example for x86_64:

    $ ./bpf_jit_disasm
    94 bytes emitted from JIT compiler (pass:3, flen:9)
    ffffffffa0356000 + :
    0: push %rbp
    1: mov %rsp,%rbp
    4: sub $0x60,%rsp
    8: mov %rbx,-0x8(%rbp)
    c: mov 0x68(%rdi),%r9d
    10: sub 0x6c(%rdi),%r9d
    14: mov 0xe0(%rdi),%r8
    1b: mov $0xc,%esi
    20: callq 0xffffffffe0d01b71
    25: cmp $0x86dd,%eax
    2a: jne 0x000000000000003d
    2c: mov $0x14,%esi
    31: callq 0xffffffffe0d01b8d
    36: cmp $0x6,%eax
    [...]
    5c: leaveq
    5d: retq

    $ ./bpf_jit_disasm -o
    94 bytes emitted from JIT compiler (pass:3, flen:9)
    ffffffffa0356000 + :
    0: push %rbp
    55
    1: mov %rsp,%rbp
    48 89 e5
    4: sub $0x60,%rsp
    48 83 ec 60
    8: mov %rbx,-0x8(%rbp)
    48 89 5d f8
    c: mov 0x68(%rdi),%r9d
    44 8b 4f 68
    10: sub 0x6c(%rdi),%r9d
    44 2b 4f 6c
    [...]
    5c: leaveq
    c9
    5d: retq
    c3

    Signed-off-by: Daniel Borkmann
    Signed-off-by: David S. Miller

    Daniel Borkmann
     
  • …/acme/linux into perf/core

    Conflicts:
    tools/Makefile

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

    . Honor parallel jobs, fix from Borislav Petkov

    . Introduce tools/lib/lk library, initially just removing duplication
    among tools/perf and tools/vm. from Borislav Petkov

    . Fix build on non-glibc systems due to libio.h absence, from Cody P Schafer.

    . Remove some perf_session and tracing dead code, from David Ahern.

    . Introduce perf stat --repeat forever, from Frederik Deweerdt.

    . Add perf test entries for checking --cpu in record and stat, from Jiri Olsa.

    . Add perf test entries for checking breakpoint overflow signal handler issues,
    from Jiri Olsa.

    . Add perf test entry for for checking number of EXIT events, from Namhyung Kim.

    . Simplify some perf_evlist methods and to allow 'stat' to share code with
    'record' and 'trace'.

    . Remove dead code in related to libtraceevent integration, from Namhyung Kim.

    . Event group view for 'annotate' in --stdio, --tui and --gtk, from Namhyung Kim.

    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    [ resolved the trivial merge conflict with upstream ]
    Signed-off-by: Ingo Molnar <mingo@kernel.org>

    Ingo Molnar
     

16 Mar, 2013

1 commit

  • This introduces the tools/lib/lk library, that will gradually have the
    routines that now are used in tools/perf/ and other tools and that can
    be shared.

    Start by carving out debugfs routines for general use.

    Signed-off-by: Borislav Petkov
    Cc: Ingo Molnar
    Cc: Steven Rostedt
    Link: http://lkml.kernel.org/r/1361374353-30385-5-git-send-email-bp@alien8.de
    [ committer note: Add tools/lib/lk/ to perf's MANIFEST so that its tarballs continue to build ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Borislav Petkov
     

21 Feb, 2013

1 commit

  • Pull cgroup changes from Tejun Heo:
    "Nothing too drastic.

    - Removal of synchronize_rcu() from userland visible paths.

    - Various fixes and cleanups from Li.

    - cgroup_rightmost_descendant() added which will be used by cpuset
    changes (it will be a separate pull request)."

    * 'for-3.9' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
    cgroup: fail if monitored file and event_control are in different cgroup
    cgroup: fix cgroup_rmdir() vs close(eventfd) race
    cpuset: fix cpuset_print_task_mems_allowed() vs rename() race
    cgroup: fix exit() vs rmdir() race
    cgroup: remove bogus comments in cgroup_diput()
    cgroup: remove synchronize_rcu() from cgroup_diput()
    cgroup: remove duplicate RCU free on struct cgroup
    sched: remove redundant NULL cgroup check in task_group_path()
    sched: split out css_online/css_offline from tg creation/destruction
    cgroup: initialize cgrp->dentry before css_alloc()
    cgroup: remove a NULL check in cgroup_exit()
    cgroup: fix bogus kernel warnings when cgroup_create() failed
    cgroup: remove synchronize_rcu() from rebind_subsystems()
    cgroup: remove synchronize_rcu() from cgroup_attach_{task|proc}()
    cgroup: use new hashtable implementation
    cgroups: fix cgroup_event_listener error handling
    cgroups: move cgroup_event_listener.c to tools/cgroup
    cgroup: implement cgroup_rightmost_descendant()
    cgroup: remove unused dummy cgroup_fork_callbacks()

    Linus Torvalds
     

30 Jan, 2013

1 commit


08 Jan, 2013

1 commit


20 Nov, 2012

1 commit

  • Define a Makefile function that can be called with $(call ...) to wrap
    the subdir make invocations in tools/Makefile.

    This will allow us in the next patch to insert bits in there to honour
    O= flags when called from the top-level Makefile.

    Signed-off-by: David Howells
    Cc: Borislav Petkov
    Cc: Ingo Molnar
    Cc: Linus Torvalds
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/1378.1352379110@warthog.procyon.org.uk
    Signed-off-by: Arnaldo Carvalho de Melo

    David Howells
     

12 Apr, 2012

3 commits

  • Now you can do

    $ make tools/

    from the toplevel kernel directory and have the respective tool built.

    If you want to build and install it, do

    $ make tools/_install

    $ make tools/_clean

    should clean the respective tool directories.

    If you want to clean all in tools, simply do

    $ make tools/clean

    Also, if you want to get what the possible targets are, simply calling

    $ make tools/

    should give you the short help.

    $ make tools/install

    installs all tools, of course. Doh.

    Signed-off-by: Borislav Petkov
    Cc: Ingo Molnar
    Cc: Michal Marek
    Cc: Sam Ravnborg
    Link: http://lkml.kernel.org/r/1334162178-17152-6-git-send-email-bp@amd64.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Borislav Petkov
     
  • ... and make it the default one so that calling 'make' without arguments
    in the tools/ directory gives you the possible targets to build along
    with a short description of what they are.

    Signed-off-by: Borislav Petkov
    Cc: Ingo Molnar
    Cc: Michal Marek
    Cc: Sam Ravnborg
    Link: http://lkml.kernel.org/r/1334162178-17152-5-git-send-email-bp@amd64.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Borislav Petkov
     
  • Add a Makefile with all the targets under tools/.

    Signed-off-by: Borislav Petkov
    Cc: Ingo Molnar
    Cc: Michal Marek
    Cc: Sam Ravnborg
    Link: http://lkml.kernel.org/r/1334162178-17152-4-git-send-email-bp@amd64.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Borislav Petkov