23 Jun, 2015

1 commit

  • Pull perf updates from Ingo Molnar:
    "Kernel side changes mostly consist of work on x86 PMU drivers:

    - x86 Intel PT (hardware CPU tracer) improvements (Alexander
    Shishkin)

    - x86 Intel CQM (cache quality monitoring) improvements (Thomas
    Gleixner)

    - x86 Intel PEBSv3 support (Peter Zijlstra)

    - x86 Intel PEBS interrupt batching support for lower overhead
    sampling (Zheng Yan, Kan Liang)

    - x86 PMU scheduler fixes and improvements (Peter Zijlstra)

    There's too many tooling improvements to list them all - here are a
    few select highlights:

    'perf bench':

    - Introduce new 'perf bench futex' benchmark: 'wake-parallel', to
    measure parallel waker threads generating contention for kernel
    locks (hb->lock). (Davidlohr Bueso)

    'perf top', 'perf report':

    - Allow disabling/enabling events dynamicaly in 'perf top':
    a 'perf top' session can instantly become a 'perf report'
    one, i.e. going from dynamic analysis to a static one,
    returning to a dynamic one is possible, to toogle the
    modes, just press 'f' to 'freeze/unfreeze' the sampling. (Arnaldo Carvalho de Melo)

    - Make Ctrl-C stop processing on TUI, allowing interrupting the load of big
    perf.data files (Namhyung Kim)

    'perf probe': (Masami Hiramatsu)

    - Support glob wildcards for function name
    - Support $params special probe argument: Collect all function arguments
    - Make --line checks validate C-style function name.
    - Add --no-inlines option to avoid searching inline functions
    - Greatly speed up 'perf probe --list' by caching debuginfo.
    - Improve --filter support for 'perf probe', allowing using its arguments
    on other commands, as --add, --del, etc.

    'perf sched':

    - Add option in 'perf sched' to merge like comms to lat output (Josef Bacik)

    Plus tons of infrastructure work - in particular preparation for
    upcoming threaded perf report support, but also lots of other work -
    and fixes and other improvements. See (much) more details in the
    shortlog and in the git log"

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (305 commits)
    perf tools: Configurable per thread proc map processing time out
    perf tools: Add time out to force stop proc map processing
    perf report: Fix sort__sym_cmp to also compare end of symbol
    perf hists browser: React to unassigned hotkey pressing
    perf top: Tell the user how to unfreeze events after pressing 'f'
    perf hists browser: Honour the help line provided by builtin-{top,report}.c
    perf hists browser: Do not exit when 'f' is pressed in 'report' mode
    perf top: Replace CTRL+z with 'f' as hotkey for enable/disable events
    perf annotate: Rename source_line_percent to source_line_samples
    perf annotate: Display total number of samples with --show-total-period
    perf tools: Ensure thread-stack is flushed
    perf top: Allow disabling/enabling events dynamicly
    perf evlist: Add toggle_enable() method
    perf trace: Fix race condition at the end of started workloads
    perf probe: Speed up perf probe --list by caching debuginfo
    perf probe: Show usage even if the last event is skipped
    perf tools: Move libtraceevent dynamic list to separated LDFLAGS variable
    perf tools: Fix a problem when opening old perf.data with different byte order
    perf tools: Ignore .config-detected in .gitignore
    perf probe: Fix to return error if no probe is added
    ...

    Linus Torvalds
     

22 Jun, 2015

1 commit


15 Jun, 2015

1 commit


08 Jun, 2015

1 commit


01 Jun, 2015

1 commit


27 May, 2015

1 commit


25 May, 2015

1 commit


19 May, 2015

1 commit


11 May, 2015

1 commit


06 May, 2015

1 commit

  • …it/acme/linux into perf/core

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

    User visible changes:

    - Improve --filter support for 'perf probe', allowing using its arguments
    on other commands, as --add, --del, etc (Masami Hiramatsu)

    - Show warning when running 'perf kmem stat' on a unsuitable perf.data file,
    i.e. one with events that are not the ones required for the stat variant
    used (Namhyung Kim).

    Infrastructure changes:

    - Auxtrace support patches, paving the way to support Intel PT and BTS (Adrian Hunter)

    - hists browser (top, report) refactorings (Namhyung Kim)

    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>

    Ingo Molnar
     

04 May, 2015

1 commit


29 Apr, 2015

1 commit

  • 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
     

27 Apr, 2015

1 commit


16 Apr, 2015

1 commit

  • Pull kbuild updates from Michal Marek:
    "Here is the first round of kbuild changes for v4.1-rc1:

    - kallsyms fix for ARM and cleanup

    - make dep(end) removed (developers have no sense of nostalgia these
    days...)

    - include Makefiles by relative path

    - stop useless rebuilds of asm-offsets.h and bounds.h"

    * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    Kbuild: kallsyms: drop special handling of pre-3.0 GCC symbols
    Kbuild: kallsyms: ignore veneers emitted by the ARM linker
    kbuild: ia64: use $(src)/Makefile.gate rather than particular path
    kbuild: include $(src)/Makefile rather than $(obj)/Makefile
    kbuild: use relative path more to include Makefile
    kbuild: use relative path to include Makefile
    kbuild: do not add $(bounds-file) and $(offsets-file) to targets
    kbuild: remove warning about "make depend"
    kbuild: Don't reset timestamps in include/generated if not needed

    Linus Torvalds
     

14 Apr, 2015

1 commit

  • Pull core locking changes from Ingo Molnar:
    "Main changes:

    - jump label asm preparatory work for PowerPC (Anton Blanchard)

    - rwsem optimizations and cleanups (Davidlohr Bueso)

    - mutex optimizations and cleanups (Jason Low)

    - futex fix (Oleg Nesterov)

    - remove broken atomicity checks from {READ,WRITE}_ONCE() (Peter
    Zijlstra)"

    * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    powerpc, jump_label: Include linux/jump_label.h to get HAVE_JUMP_LABEL define
    jump_label: Allow jump labels to be used in assembly
    jump_label: Allow asm/jump_label.h to be included in assembly
    locking/mutex: Further simplify mutex_spin_on_owner()
    locking: Remove atomicy checks from {READ,WRITE}_ONCE
    locking/rtmutex: Rename argument in the rt_mutex_adjust_prio_chain() documentation as well
    locking/rwsem: Fix lock optimistic spinning when owner is not running
    locking: Remove ACCESS_ONCE() usage
    locking/rwsem: Check for active lock before bailing on spinning
    locking/rwsem: Avoid deceiving lock spinners
    locking/rwsem: Set lock ownership ASAP
    locking/rwsem: Document barrier need when waking tasks
    locking/futex: Check PF_KTHREAD rather than !p->mm to filter out kthreads
    locking/mutex: Refactor mutex_spin_on_owner()
    locking/mutex: In mutex_spin_on_owner(), return true when owner changes

    Linus Torvalds
     

13 Apr, 2015

1 commit


09 Apr, 2015

1 commit

  • To use jump labels in assembly we need the HAVE_JUMP_LABEL
    define, so we select a fallback version if the toolchain does
    not support them.

    Modify linux/jump_label.h so it can be included by assembly
    files. We also need to add -DCC_HAVE_ASM_GOTO to KBUILD_AFLAGS.

    Signed-off-by: Anton Blanchard
    Acked-by: Peter Zijlstra (Intel)
    Cc: Andrew Morton
    Cc: Linus Torvalds
    Cc: Paul E. McKenney
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: benh@kernel.crashing.org
    Cc: catalin.marinas@arm.com
    Cc: davem@davemloft.net
    Cc: heiko.carstens@de.ibm.com
    Cc: jbaron@akamai.com
    Cc: linux@arm.linux.org.uk
    Cc: linuxppc-dev@lists.ozlabs.org
    Cc: liuj97@gmail.com
    Cc: mgorman@suse.de
    Cc: mmarek@suse.cz
    Cc: mpe@ellerman.id.au
    Cc: paulus@samba.org
    Cc: ralf@linux-mips.org
    Cc: rostedt@goodmis.org
    Cc: schwidefsky@de.ibm.com
    Cc: will.deacon@arm.com
    Link: http://lkml.kernel.org/r/1428551492-21977-2-git-send-email-anton@samba.org
    Signed-off-by: Ingo Molnar

    Anton Blanchard
     

07 Apr, 2015

1 commit


02 Apr, 2015

1 commit

  • Prior to this commit, it was impossible to use relative path to
    include Makefiles from the top level Makefile because the option
    "--include-dir=$(srctree)" becomes effective when Make enters into
    sub Makefiles.

    To use relative path in any places, this commit moves the option
    above the "sub-make" target.

    Signed-off-by: Masahiro Yamada
    Signed-off-by: Michal Marek

    Masahiro Yamada
     

30 Mar, 2015

1 commit


25 Mar, 2015

1 commit


23 Mar, 2015

1 commit


16 Mar, 2015

1 commit


09 Mar, 2015

1 commit


04 Mar, 2015

1 commit


23 Feb, 2015

1 commit

  • .. after extensive statistical analysis of my G+ polling, I've come to
    the inescapable conclusion that internet polls are bad.

    Big surprise.

    But "Hurr durr I'ma sheep" trounced "I like online polls" by a 62-to-38%
    margin, in a poll that people weren't even supposed to participate in.
    Who can argue with solid numbers like that? 5,796 votes from people who
    can't even follow the most basic directions?

    In contrast, "v4.0" beat out "v3.20" by a slimmer margin of 56-to-44%,
    but with a total of 29,110 votes right now.

    Now, arguably, that vote spread is only about 3,200 votes, which is less
    than the almost six thousand votes that the "please ignore" poll got, so
    it could be considered noise.

    But hey, I asked, so I'll honor the votes.

    Linus Torvalds
     

20 Feb, 2015

1 commit

  • Pull kbuild updates from Michal Marek:

    - several cleanups in kbuild

    - serialize multiple *config targets so that 'make defconfig kvmconfig'
    works

    - The cc-ifversion macro got support for an else-branch

    * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    kbuild,gcov: simplify kernel/gcov/Makefile more
    kbuild: allow cc-ifversion to have the argument for false condition
    kbuild,gcov: simplify kernel/gcov/Makefile
    kbuild,gcov: remove unnecessary workaround
    kbuild: do not add $(call ...) to invoke cc-version or cc-fullversion
    kbuild: fix cc-ifversion macro
    kbuild: drop $(version_h) from MRPROPER_FILES
    kbuild: use mixed-targets when two or more config targets are given
    kbuild: remove redundant line from bounds.h/asm-offsets.h
    kbuild: merge bounds.h and asm-offsets.h rules
    kbuild: Drop support for clean-rule

    Linus Torvalds
     

18 Feb, 2015

1 commit

  • This provides the basic infrastructure to load kernel-specific python
    helper scripts when debugging the kernel in gdb.

    The loading mechanism is based on gdb loading for -gdb.py when
    opening . Therefore, this places a corresponding link to the
    main helper script into the output directory that contains vmlinux.

    The main scripts will pull in submodules containing Linux specific gdb
    commands and functions. To avoid polluting the source directory with
    compiled python modules, we link to them from the object directory.

    Due to gdb.parse_and_eval and string redirection for gdb.execute, we
    depend on gdb >= 7.2.

    This feature is enabled via CONFIG_GDB_SCRIPTS.

    Signed-off-by: Jan Kiszka
    Acked-by: Michal Marek [kbuild stuff]
    Cc: Thomas Gleixner
    Cc: Jason Wessel
    Cc: Andi Kleen
    Cc: Ben Widawsky
    Cc: Borislav Petkov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jan Kiszka
     

14 Feb, 2015

1 commit

  • Kernel Address sanitizer (KASan) is a dynamic memory error detector. It
    provides fast and comprehensive solution for finding use-after-free and
    out-of-bounds bugs.

    KASAN uses compile-time instrumentation for checking every memory access,
    therefore GCC > v4.9.2 required. v4.9.2 almost works, but has issues with
    putting symbol aliases into the wrong section, which breaks kasan
    instrumentation of globals.

    This patch only adds infrastructure for kernel address sanitizer. It's
    not available for use yet. The idea and some code was borrowed from [1].

    Basic idea:

    The main idea of KASAN is to use shadow memory to record whether each byte
    of memory is safe to access or not, and use compiler's instrumentation to
    check the shadow memory on each memory access.

    Address sanitizer uses 1/8 of the memory addressable in kernel for shadow
    memory and uses direct mapping with a scale and offset to translate a
    memory address to its corresponding shadow address.

    Here is function to translate address to corresponding shadow address:

    unsigned long kasan_mem_to_shadow(unsigned long addr)
    {
    return (addr >> KASAN_SHADOW_SCALE_SHIFT) + KASAN_SHADOW_OFFSET;
    }

    where KASAN_SHADOW_SCALE_SHIFT = 3.

    So for every 8 bytes there is one corresponding byte of shadow memory.
    The following encoding used for each shadow byte: 0 means that all 8 bytes
    of the corresponding memory region are valid for access; k (1
    Acked-by: Michal Marek
    Signed-off-by: Andrey Konovalov
    Cc: Dmitry Vyukov
    Cc: Konstantin Serebryany
    Cc: Dmitry Chernenkov
    Cc: Yuri Gribov
    Cc: Konstantin Khlebnikov
    Cc: Sasha Levin
    Cc: Christoph Lameter
    Cc: Joonsoo Kim
    Cc: Dave Hansen
    Cc: Andi Kleen
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "H. Peter Anvin"
    Cc: Christoph Lameter
    Cc: Pekka Enberg
    Cc: David Rientjes
    Cc: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrey Ryabinin
     

12 Feb, 2015

1 commit

  • Pull s390 updates from Martin Schwidefsky:

    - The remaining patches for the z13 machine support: kernel build
    option for z13, the cache synonym avoidance, SMT support,
    compare-and-delay for spinloops and the CES5S crypto adapater.

    - The ftrace support for function tracing with the gcc hotpatch option.
    This touches common code Makefiles, Steven is ok with the changes.

    - The hypfs file system gets an extension to access diagnose 0x0c data
    in user space for performance analysis for Linux running under z/VM.

    - The iucv hvc console gets wildcard spport for the user id filtering.

    - The cacheinfo code is converted to use the generic infrastructure.

    - Cleanup and bug fixes.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (42 commits)
    s390/process: free vx save area when releasing tasks
    s390/hypfs: Eliminate hypfs interval
    s390/hypfs: Add diagnose 0c support
    s390/cacheinfo: don't use smp_processor_id() in preemptible context
    s390/zcrypt: fixed domain scanning problem (again)
    s390/smp: increase maximum value of NR_CPUS to 512
    s390/jump label: use different nop instruction
    s390/jump label: add sanity checks
    s390/mm: correct missing space when reporting user process faults
    s390/dasd: cleanup profiling
    s390/dasd: add locking for global_profile access
    s390/ftrace: hotpatch support for function tracing
    ftrace: let notrace function attribute disable hotpatching if necessary
    ftrace: allow architectures to specify ftrace compile options
    s390: reintroduce diag 44 calls for cpu_relax()
    s390/zcrypt: Add support for new crypto express (CEX5S) adapter.
    s390/zcrypt: Number of supported ap domains is not retrievable.
    s390/spinlock: add compare-and-delay to lock wait loops
    s390/tape: remove redundant if statement
    s390/hvc_iucv: add simple wildcard matches to the iucv allow filter
    ...

    Linus Torvalds
     

09 Feb, 2015

1 commit


02 Feb, 2015

1 commit


29 Jan, 2015

1 commit

  • If the kernel is compiled with function tracer support the -pg compile option
    is passed to gcc to generate extra code into the prologue of each function.

    This patch replaces the "open-coded" -pg compile flag with a CC_FLAGS_FTRACE
    makefile variable which architectures can override if a different option
    should be used for code generation.

    Acked-by: Steven Rostedt
    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     

26 Jan, 2015

1 commit


18 Jan, 2015

1 commit


12 Jan, 2015

1 commit


09 Jan, 2015

1 commit

  • The introduction of the uapi directories in v3.7-rc1 moved some of the
    generated headers from arch/*/include/generated to the uapi directory,
    keeping the #include directives intact.

    This creates a problem when bisecting, because the unversioned files are
    not cleaned automatically by git and the compiler might include stale
    headers as a result. Instead of cleaning them in the Makefiles, promote
    arch/*/include/generated/uapi in the search path. Under normal
    circumstances, there is no overlap between this uapi subdirectory and
    its parent, so the include choices remain the same. We keep
    arch/*/include/generated/uapi in the USERINCLUDE variable so that it is
    usable standalone.

    Note that we cannot completely swap the order of the uapi and
    kernel-only directories, since the headers in include/uapi/asm-generic
    are meant to be wrapped by their include/asm-generic counterparts when
    building kernel code.

    Reported-by: "Nicholas A. Bellinger"
    Reported-by: David Drysdale
    Signed-off-by: Michal Marek
    Signed-off-by: Linus Torvalds

    Michal Marek
     

08 Jan, 2015

2 commits

  • Now $(version_h) is include/generated/uapi/linux/version.h.

    $(version_h) in MRPROPER_FILES is redundant because it is covered
    by include/generated in MRPROPER_DIRS.

    Signed-off-by: Masahiro Yamada
    Signed-off-by: Michal Marek

    Masahiro Yamada
     
  • "make kvmconfig" expects that the .config has already been created,
    but some people might want to create the .config and run kvmconfig
    in one shot command, like this:

    $ make defconfig kvmconfig

    To make sure this command works correctly even if -j* option is set,
    we must handle them one by one.
    This commit turns on mixed-targets when $(MAKECMDGOALS) includes
    at least one config target and also includes another target.

    Signed-off-by: Masahiro Yamada
    Signed-off-by: Michal Marek

    Masahiro Yamada
     

06 Jan, 2015

1 commit