19 May, 2016

1 commit

  • Pull tracing updates from Steven Rostedt:
    "This includes two new updates for the ftrace infrastructure.

    - With the changing of the code for filtering events by pid, from a
    list of pids to a bitmask, we can now easily implement following
    forks. With a new tracing option "event-fork" which, when set,
    will have tasks with pids in set_event_pid, when they fork, to have
    their child pids added to set_event_pid and the child will be
    traced as well.

    Note, if "event-fork" is set and a task with its pid in
    set_event_pid exits, its pid will be removed from set_event_pid

    - The addition of Tom Zanussi's hist triggers. This includes a very
    thorough documentatino on how to use the hist triggers with events.
    This introduces a quick and easy way to get histogram data from
    events and their fields.

    Some other cleanups and updates were added as well. Like Masami
    Hiramatsu added test cases for the event trigger and hist triggers.
    Also I added a speed up of filtering by using a temp buffer when
    filters are set"

    * tag 'trace-v4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (45 commits)
    tracing: Use temp buffer when filtering events
    tracing: Remove TRACE_EVENT_FL_USE_CALL_FILTER logic
    tracing: Remove unused function trace_current_buffer_lock_reserve()
    tracing: Remove one use of trace_current_buffer_lock_reserve()
    tracing: Have trace_buffer_unlock_commit() call the _regs version with NULL
    tracing: Remove unused function trace_current_buffer_discard_commit()
    tracing: Move trace_buffer_unlock_commit{_regs}() to local header
    tracing: Fold filter_check_discard() into its only user
    tracing: Make filter_check_discard() local
    tracing: Move event_trigger_unlock_commit{_regs}() to local header
    tracing: Don't use the address of the buffer array name in copy_from_user
    tracing: Handle tracing_map_alloc_elts() error path correctly
    tracing: Add check for NULL event field when creating hist field
    tracing: checking for NULL instead of IS_ERR()
    tracing: Do not inherit event-fork option for instances
    tracing: Fix unsigned comparison to zero in hist trigger code
    kselftests/ftrace: Add a test for log2 modifier of hist trigger
    tracing: Add hist trigger 'log2' modifier
    kselftests/ftrace: Add hist trigger testcases
    kselftests/ftrace : Add event trigger testcases
    ...

    Linus Torvalds
     

18 May, 2016

2 commits

  • Pull GPIO updates from Linus Walleij:
    "This is the bulk of GPIO changes for kernel cycle v4.7:

    Core infrastructural changes:

    - Support for natively single-ended GPIO driver stages.

    This means that if the hardware has registers to configure open
    drain or open source configuration, we use that rather than (as we
    did before) try to emulate it by switching the line to an input to
    get high impedance.

    This is also documented throughly in Documentation/gpio/driver.txt
    for those of you who did not understand one word of what I just
    wrote.

    - Start to do away with the unnecessarily complex and unitelligible
    ARCH_REQUIRE_GPIOLIB and ARCH_WANT_OPTIONAL_GPIOLIB, another
    evolutional artifact from the time when the GPIO subsystem was
    unmaintained.

    Archs can now just select GPIOLIB and be done with it, cleanups to
    arches will trickle in for the next kernel. Some minor archs ACKed
    the changes immediately so these are included in this pull request.

    - Advancing the use of the data pointer inside the GPIO device for
    storing driver data by switching the PowerPC, Super-H Unicore and
    a few other subarches or subsystem drivers in ALSA SoC, Input,
    serial, SSB, staging etc to use it.

    - The initialization now reads the input/output state of the GPIO
    lines, so that each GPIO descriptor knows - if this callback is
    implemented - whether the line is input or output. This also
    reflects nicely in userspace "lsgpio".

    - It is now possible to name GPIO producer names, line names, from
    the device tree. (Platform data has been supported for a while).
    I bet we will get a similar mechanism for ACPI one of those days.
    This makes is possible to get sensible producer names for e.g.
    GPIO rails in "lsgpio" in userspace.

    New drivers:

    - New driver for the Loongson1.

    - The XLP driver now supports Broadcom Vulcan ARM64.

    - The IT87 driver now supports IT8620 and IT8628.

    - The PCA953X driver now supports Galileo Gen2.

    Driver improvements:

    - MCP23S08 was switched to use the gpiolib irqchip helpers and now
    also suppors level-triggered interrupts.

    - 74x164 and RCAR now supports the .set_multiple() callback

    - AMDPT was converted to use generic GPIO.

    - TC3589x, TPS65218, SX150X, F7188X, MENZ127, VX855, WM831X, WM8994
    support the new single ended callback for open drain and in some
    cases open source.

    - Implement the .get_direction() callback for a few more drivers like
    PL061, Xgene.

    Cleanups:

    - Paul Gortmaker combed through the drivers and de-modularized those
    who are not really modules.

    - Move the GPIO poweroff DT bindings to the power subdir where they
    belong.

    - Rename gpio-generic.c to gpio-mmio.c, which is much more to the
    point. That's what it is handling, nothing more, nothing less"

    * tag 'gpio-v4.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (126 commits)
    MIPS: do away with ARCH_[WANT_OPTIONAL|REQUIRE]_GPIOLIB
    gpio: zevio: make it explicitly non-modular
    gpio: timberdale: make it explicitly non-modular
    gpio: stmpe: make it explicitly non-modular
    gpio: sodaville: make it explicitly non-modular
    pinctrl: sh-pfc: Let gpio_chip.to_irq() return zero on error
    gpio: dwapb: Add ACPI device ID for DWAPB GPIO controller on X-Gene platforms
    gpio: dt-bindings: add wd,mbl-gpio bindings
    gpio: of: make it possible to name GPIO lines
    gpio: make gpiod_to_irq() return negative for NO_IRQ
    gpio: xgene: implement .get_direction()
    gpio: xgene: Enable ACPI support for X-Gene GFC GPIO driver
    gpio: tegra: Implement gpio_get_direction callback
    gpio: set up initial state from .get_direction()
    gpio: rename gpio-generic.c into gpio-mmio.c
    gpio: generic: fix GPIO_GENERIC_PLATFORM is set to module case
    gpio: dwapb: add gpio-signaled acpi event support
    gpio: dwapb: convert device node to fwnode
    gpio: dwapb: remove name from dwapb_port_property
    gpio/qoriq: select IRQ_DOMAIN
    ...

    Linus Torvalds
     
  • Pull trivial tree updates from Jiri Kosina.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (21 commits)
    gitignore: fix wording
    mfd: ab8500-debugfs: fix "between" in printk
    memstick: trivial fix of spelling mistake on management
    cpupowerutils: bench: fix "average"
    treewide: Fix typos in printk
    IB/mlx4: printk fix
    pinctrl: sirf/atlas7: fix printk spelling
    serial: mctrl_gpio: Grammar s/lines GPIOs/line GPIOs/, /sets/set/
    w1: comment spelling s/minmum/minimum/
    Blackfin: comment spelling s/divsor/divisor/
    metag: Fix misspellings in comments.
    ia64: Fix misspellings in comments.
    hexagon: Fix misspellings in comments.
    tools/perf: Fix misspellings in comments.
    cris: Fix misspellings in comments.
    c6x: Fix misspellings in comments.
    blackfin: Fix misspelling of 'register' in comment.
    avr32: Fix misspelling of 'definitions' in comment.
    treewide: Fix typos in printk
    Doc: treewide : Fix typos in DocBook/filesystem.xml
    ...

    Linus Torvalds
     

17 May, 2016

7 commits

  • Pull ACPI updates from Rafael Wysocki:
    "The new features here are ACPI 6.1 support (and some previously
    missing bits of ACPI 6.0 support) in ACPICA and two new drivers, a
    driver for the ACPI Generic Event Device (GED) feature introduced by
    ACPI 6.1 and the INT3406 thermal driver for display thermal
    management. Also the value returned by the _HRV (hardware revision)
    ACPI object will be exported to user space via sysfs now.

    In addition to that, ACPI on ARM64 will not depend on EXPERT any more.

    The rest is mostly fixes and cleanups and some code reorganization.

    Specifics:

    - In-kernel ACPICA code update to the upstream release 20160422
    adding support for ACPI 6.1 along with some previously missing bits
    of ACPI 6.0 support, making a fair amount of fixes and cleanups and
    reducing divergences between the upstream ACPICA and the in-kernel
    code (Bob Moore, Lv Zheng, Al Stone, Aleksey Makarov, Will Miles)

    - ACPI Generic Event Device (GED) support and a fix for it (Sinan
    Kaya, Paul Gortmaker)

    - INT3406 thermal driver for display thermal management and ACPI
    backlight support code reorganization related to it (Aaron Lu, Arnd
    Bergmann)

    - Support for exporting the value returned by the _HRV (hardware
    revision) ACPI object via sysfs (Betty Dall)

    - Removal of the EXPERT dependency for ACPI on ARM64 (Mark Brown)

    - Rework of the handling of ACPI _OSI mechanism allowing the
    _OSI("Darwin") support to be overridden from the kernel command
    line among other things (Lv Zheng, Chen Yu)

    - Rework of the ACPI tables override mechanism to prepare it for the
    introduction of overlays support going forward (Lv Zheng, Rafael
    Wysocki)

    - Fixes related to the ECDT support and module-level execution of AML
    (Lv Zheng)

    - ACPI PCI interrupts management update to make it work better on
    ARM64 mostly (Sinan Kaya)

    - ACPI SRAT handling update to make the code process all entires in
    the table order regardless of the entry type (Lukasz Anaczkowski)

    - EFI power off support for full-hardware ACPI platforms that don't
    support ACPI S5 (Chen Yu)

    - Fixes and cleanups related to the ACPI core's sysfs interface (Dan
    Carpenter, Betty Dall)

    - acpi_dev_present() API rework to reduce possible confusion related
    to it (Lukas Wunner)

    - Removal of CLK_IS_ROOT from two ACPI drivers (Stephen Boyd)"

    * tag 'acpi-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (82 commits)
    ACPI / video: mark acpi_video_get_levels() inline
    Thermal / ACPI / video: add INT3406 thermal driver
    ACPI / GED: make evged.c explicitly non-modular
    ACPI / tables: Fix DSDT override mechanism
    ACPI / sysfs: fix error code in get_status()
    ACPICA: Update version to 20160422
    ACPICA: Move all ASCII utilities to a common file
    ACPICA: ACPI 2.0, Hardware: Add access_width/bit_offset support for acpi_hw_write()
    ACPICA: ACPI 2.0, Hardware: Add access_width/bit_offset support in acpi_hw_read()
    ACPICA: Executer: Introduce a set of macros to handle bit width mask generation
    ACPICA: Hardware: Add optimized access bit width support
    ACPICA: Utilities: Add ACPI_IS_ALIGNED() macro
    ACPICA: Renamed some #defined flag constants for clarity
    ACPICA: ACPI 6.0, tools/iasl: Add support for new resource descriptors
    ACPICA: ACPI 6.0: Update _BIX support for new package element
    ACPICA: ACPI 6.1: Support for new PCCT subtable
    ACPICA: Refactor evaluate_object to reduce nesting
    ACPICA: Divergence: remove unwanted spaces for typedef
    ACPI,PCI,IRQ: remove SCI penalize function
    ACPI,PCI,IRQ: remove redundant code in acpi_irq_penalty_init()
    ..

    Linus Torvalds
     
  • Pull power management updates from Rafael Wysocki:
    "The majority of changes go into the cpufreq subsystem this time.

    To me, quite obviously, the biggest ticket item is the new "schedutil"
    governor. Interestingly enough, it's the first new cpufreq governor
    since the beginning of the git era (except for some out-of-the-tree
    ones).

    There are two main differences between it and the existing governors.
    First, it uses the information provided by the scheduler directly for
    making its decisions, so it doesn't have to track anything by itself.
    Second, it can invoke drivers (supporting that feature) to adjust CPU
    performance right away without having to spawn work items to be
    executed in process context or similar. Currently, the acpi-cpufreq
    driver is the only one supporting that mode of operation, but then it
    is used on a large number of systems.

    The "schedutil" governor as included here is very simple and mostly
    regarded as a foundation for future work on the integration of the
    scheduler with CPU power management (in fact, there is work in
    progress on top of it already). Nevertheless it works and the
    preliminary results obtained with it are encouraging.

    There also is some consolidation of CPU frequency management for ARM
    platforms that can add their machine IDs the the new stub dt-platdev
    driver now and that will take care of creating the requisite platform
    device for cpufreq-dt, so it is not necessary to do that in platform
    code any more. Several ARM platforms are switched over to using this
    generic mechanism.

    In addition to that, the intel_pstate driver is now going to respect
    CPU frequency limits set by the platform firmware (or a BMC) and
    provided via the ACPI _PPC object.

    The devfreq subsystem is getting a new "passive" governor for SoCs
    subsystems that will depend on somebody else to manage their voltage
    rails and its support for Samsung Exynos SoCs is consolidated.

    The rest is support for new hardware (Intel Broxton support in
    intel_idle for one example), bug fixes, optimizations and cleanups in
    a number of places.

    Specifics:

    - New cpufreq "schedutil" governor (making decisions based on CPU
    utilization information provided by the scheduler and capable of
    switching CPU frequencies right away if the underlying driver
    supports that) and support for fast frequency switching in the
    acpi-cpufreq driver (Rafael Wysocki)

    - Consolidation of CPU frequency management on ARM platforms allowing
    them to get rid of some platform-specific boilerplate code if they
    are going to use the cpufreq-dt driver (Viresh Kumar, Finley Xiao,
    Marc Gonzalez)

    - Support for ACPI _PPC and CPU frequency limits in the intel_pstate
    driver (Srinivas Pandruvada)

    - Fixes and cleanups in the cpufreq core and generic governor code
    (Rafael Wysocki, Sai Gurrappadi)

    - intel_pstate driver optimizations and cleanups (Rafael Wysocki,
    Philippe Longepe, Chen Yu, Joe Perches)

    - cpufreq powernv driver fixes and cleanups (Akshay Adiga, Shilpasri
    Bhat)

    - cpufreq qoriq driver fixes and cleanups (Jia Hongtao)

    - ACPI cpufreq driver cleanups (Viresh Kumar)

    - Assorted cpufreq driver updates (Ashwin Chaugule, Geliang Tang,
    Javier Martinez Canillas, Paul Gortmaker, Sudeep Holla)

    - Assorted cpufreq fixes and cleanups (Joe Perches, Arnd Bergmann)

    - Fixes and cleanups in the OPP (Operating Performance Points)
    framework, mostly related to OPP sharing, and reorganization of
    OF-dependent code in it (Viresh Kumar, Arnd Bergmann, Sudeep Holla)

    - New "passive" governor for devfreq (for SoC subsystems that will
    rely on someone else for the management of their power resources)
    and consolidation of devfreq support for Exynos platforms, coding
    style and typo fixes for devfreq (Chanwoo Choi, MyungJoo Ham)

    - PM core fixes and cleanups, mostly to make it work better with the
    generic power domains (genpd) framework, and updates for that
    framework (Ulf Hansson, Thierry Reding, Colin Ian King)

    - Intel Broxton support for the intel_idle driver (Len Brown)

    - cpuidle core optimization and fix (Daniel Lezcano, Dave Gerlach)

    - ARM cpuidle cleanups (Jisheng Zhang)

    - Intel Kabylake support for the RAPL power capping driver (Jacob
    Pan)

    - AVS (Adaptive Voltage Switching) rockchip-io driver update (Heiko
    Stuebner)

    - Updates for the cpupower tool (Arjun Sreedharan, Colin Ian King,
    Mattia Dongili, Thomas Renninger)"

    * tag 'pm-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (112 commits)
    intel_pstate: Clean up get_target_pstate_use_performance()
    intel_pstate: Use sample.core_avg_perf in get_avg_pstate()
    intel_pstate: Clarify average performance computation
    intel_pstate: Avoid unnecessary synchronize_sched() during initialization
    cpufreq: schedutil: Make default depend on CONFIG_SMP
    cpufreq: powernv: del_timer_sync when global and local pstate are equal
    cpufreq: powernv: Move smp_call_function_any() out of irq safe block
    intel_pstate: Clean up intel_pstate_get()
    cpufreq: schedutil: Make it depend on CONFIG_SMP
    cpufreq: governor: Fix handling of special cases in dbs_update()
    PM / OPP: Move CONFIG_OF dependent code in a separate file
    cpufreq: intel_pstate: Ignore _PPC processing under HWP
    cpufreq: arm_big_little: use generic OPP functions for {init, free}_opp_table
    PM / OPP: add non-OF versions of dev_pm_opp_{cpumask_, }remove_table
    cpufreq: tango: Use generic platdev driver
    PM / OPP: pass cpumask by reference
    cpufreq: Fix GOV_LIMITS handling for the userspace governor
    cpupower: fix potential memory leak
    PM / devfreq: style/typo fixes
    PM / devfreq: exynos: Add the detailed correlation for Exynos5422 bus
    ..

    Linus Torvalds
     
  • Pull x86 boot updates from Ingo Molnar:
    "The biggest changes in this cycle were:

    - prepare for more KASLR related changes, by restructuring, cleaning
    up and fixing the existing boot code. (Kees Cook, Baoquan He,
    Yinghai Lu)

    - simplifly/concentrate subarch handling code, eliminate
    paravirt_enabled() usage. (Luis R Rodriguez)"

    * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (50 commits)
    x86/KASLR: Clarify purpose of each get_random_long()
    x86/KASLR: Add virtual address choosing function
    x86/KASLR: Return earliest overlap when avoiding regions
    x86/KASLR: Add 'struct slot_area' to manage random_addr slots
    x86/boot: Add missing file header comments
    x86/KASLR: Initialize mapping_info every time
    x86/boot: Comment what finalize_identity_maps() does
    x86/KASLR: Build identity mappings on demand
    x86/boot: Split out kernel_ident_mapping_init()
    x86/boot: Clean up indenting for asm/boot.h
    x86/KASLR: Improve comments around the mem_avoid[] logic
    x86/boot: Simplify pointer casting in choose_random_location()
    x86/KASLR: Consolidate mem_avoid[] entries
    x86/boot: Clean up pointer casting
    x86/boot: Warn on future overlapping memcpy() use
    x86/boot: Extract error reporting functions
    x86/boot: Correctly bounds-check relocations
    x86/KASLR: Clean up unused code from old 'run_size' and rename it to 'kernel_total_size'
    x86/boot: Fix "run_size" calculation
    x86/boot: Calculate decompression size during boot not build
    ...

    Linus Torvalds
     
  • Pull x86 asm updates from Ingo Molnar:
    "The main changes in this cycle were:

    - MSR access API fixes and enhancements (Andy Lutomirski)

    - early exception handling improvements (Andy Lutomirski)

    - user-space FS/GS prctl usage fixes and improvements (Andy
    Lutomirski)

    - Remove the cpu_has_*() APIs and replace them with equivalents
    (Borislav Petkov)

    - task switch micro-optimization (Brian Gerst)

    - 32-bit entry code simplification (Denys Vlasenko)

    - enhance PAT handling in enumated CPUs (Toshi Kani)

    ... and lots of other cleanups/fixlets"

    * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (70 commits)
    x86/arch_prctl/64: Restore accidentally removed put_cpu() in ARCH_SET_GS
    x86/entry/32: Remove asmlinkage_protect()
    x86/entry/32: Remove GET_THREAD_INFO() from entry code
    x86/entry, sched/x86: Don't save/restore EFLAGS on task switch
    x86/asm/entry/32: Simplify pushes of zeroed pt_regs->REGs
    selftests/x86/ldt_gdt: Test set_thread_area() deletion of an active segment
    x86/tls: Synchronize segment registers in set_thread_area()
    x86/asm/64: Rename thread_struct's fs and gs to fsbase and gsbase
    x86/arch_prctl/64: Remove FSBASE/GSBASE < 4G optimization
    x86/segments/64: When load_gs_index fails, clear the base
    x86/segments/64: When loadsegment(fs, ...) fails, clear the base
    x86/asm: Make asm/alternative.h safe from assembly
    x86/asm: Stop depending on ptrace.h in alternative.h
    x86/entry: Rename is_{ia32,x32}_task() to in_{ia32,x32}_syscall()
    x86/asm: Make sure verify_cpu() has a good stack
    x86/extable: Add a comment about early exception handlers
    x86/msr: Set the return value to zero when native_rdmsr_safe() fails
    x86/paravirt: Make "unsafe" MSR accesses unsafe even if PARAVIRT=y
    x86/paravirt: Add paravirt_{read,write}_msr()
    x86/msr: Carry on after a non-"safe" MSR access fails
    ...

    Linus Torvalds
     
  • Pull perf updates from Ingo Molnar:
    "Bigger kernel side changes:

    - Add backwards writing capability to the perf ring-buffer code,
    which is preparation for future advanced features like robust
    'overwrite support' and snapshot mode. (Wang Nan)

    - Add pause and resume ioctls for the perf ringbuffer (Wang Nan)

    - x86 Intel cstate code cleanups and reorgnization (Thomas Gleixner)

    - x86 Intel uncore and CPU PMU driver updates (Kan Liang, Peter
    Zijlstra)

    - x86 AUX (Intel PT) related enhancements and updates (Alexander
    Shishkin)

    - x86 MSR PMU driver enhancements and updates (Huang Rui)

    - ... and lots of other changes spread out over 40+ commits.

    Biggest tooling side changes:

    - 'perf trace' features and enhancements. (Arnaldo Carvalho de Melo)

    - BPF tooling updates (Wang Nan)

    - 'perf sched' updates (Jiri Olsa)

    - 'perf probe' updates (Masami Hiramatsu)

    - ... plus 200+ other enhancements, fixes and cleanups to tools/

    The merge commits, the shortlog and the changelogs contain a lot more
    details"

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (249 commits)
    perf/core: Disable the event on a truncated AUX record
    perf/x86/intel/pt: Generate PMI in the STOP region as well
    perf buildid-cache: Use lsdir() for looking up buildid caches
    perf symbols: Use lsdir() for the search in kcore cache directory
    perf tools: Use SBUILD_ID_SIZE where applicable
    perf tools: Fix lsdir to set errno correctly
    perf trace: Move seccomp args beautifiers to tools/perf/trace/beauty/
    perf trace: Move flock op beautifier to tools/perf/trace/beauty/
    perf build: Add build-test for debug-frame on arm/arm64
    perf build: Add build-test for libunwind cross-platforms support
    perf script: Fix export of callchains with recursion in db-export
    perf script: Fix callchain addresses in db-export
    perf script: Fix symbol insertion behavior in db-export
    perf symbols: Add dso__insert_symbol function
    perf scripting python: Use Py_FatalError instead of die()
    perf tools: Remove xrealloc and ALLOC_GROW
    perf help: Do not use ALLOC_GROW in add_cmd_list
    perf pmu: Make pmu_formats_string to check return value of strbuf
    perf header: Make topology checkers to check return value of strbuf
    perf tools: Make alias handler to check return value of strbuf
    ...

    Linus Torvalds
     
  • Pull core signal updates from Ingo Molnar:
    "These updates from Stas Sergeev and Andy Lutomirski, improve the
    sigaltstack interface by extending its ABI with the SS_AUTODISARM
    feature, which makes it possible to use swapcontext() in a sighandler
    that works on sigaltstack. Without this flag, the subsequent signal
    will corrupt the state of the switched-away sighandler.

    The inspiration is more robust dosemu signal handling"

    * 'core-signals-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    signals/sigaltstack: Change SS_AUTODISARM to (1U << 31)
    signals/sigaltstack: Report current flag bits in sigaltstack()
    selftests/sigaltstack: Fix the sigaltstack test on old kernels
    signals/sigaltstack: If SS_AUTODISARM, bypass on_sig_stack()
    selftests/sigaltstack: Add new testcase for sigaltstack(SS_ONSTACK|SS_AUTODISARM)
    signals/sigaltstack: Implement SS_AUTODISARM flag
    signals/sigaltstack: Prepare to add new SS_xxx flags
    signals/sigaltstack, x86/signals: Unify the x86 sigaltstack check with other architectures

    Linus Torvalds
     
  • Pull RCU updates from Ingo Molnar:
    "The main changes are:

    - Documentation updates, including fixes to the design-level
    requirements documentation and a fixed version of the design-level
    data-structure documentation. These fixes include removing
    cartoons and getting rid of the html/htmlx duplication.

    - Further improvements to the new-age expedited grace periods.

    - Miscellaneous fixes.

    - Torture-test changes, including a new rcuperf module for measuring
    RCU grace-period performance and scalability, which is useful for
    the expedited-grace-period changes"

    * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (56 commits)
    rcutorture: Add boot-time adjustment of leaf fanout
    rcutorture: Add irqs-disabled test for call_rcu()
    rcutorture: Dump trace buffer upon shutdown
    rcutorture: Don't rebuild identical kernel
    rcutorture: Add OS-jitter capability
    documentation: Add documentation for RCU's major data structures
    rcutorture: Convert test duration to seconds early
    torture: Kill qemu, not parent process
    torture: Clarify refusal to run more than one torture test
    rcutorture: Consider FROZEN hotplug notifier transitions
    rcutorture: Remove redundant initialization to zero
    rcuperf: Do not wake up shutdown wait queue if "shutdown" is false.
    rcutorture: Add largish-system rcuperf scenario
    rcutorture: Avoid RCU CPU stall warning and RT throttling
    rcutorture: Add rcuperf holdoff boot parameter to reduce interference
    rcutorture: Make scripts analyze rcuperf trace data, if present
    rcutorture: Make rcuperf collect expedited event-trace data
    rcutorture: Print measure of batching efficiency
    rcutorture: Set rcuperf writer kthreads to real-time priority
    rcutorture: Bind rcuperf reader/writer kthreads to CPUs
    ...

    Linus Torvalds
     

16 May, 2016

1 commit

  • * acpi-pci:
    ACPI,PCI,IRQ: remove SCI penalize function
    ACPI,PCI,IRQ: remove redundant code in acpi_irq_penalty_init()
    ACPI,PCI,IRQ: reduce static IRQ array size to 16
    ACPI,PCI,IRQ: reduce resource requirements

    * acpi-misc:
    ACPI / sysfs: fix error code in get_status()
    ACPI / device_sysfs: Clean up checkpatch errors
    ACPI / device_sysfs: Change _SUN and _STA show functions error return to EIO
    ACPI / device_sysfs: Add sysfs support for _HRV hardware revision
    arm64: defconfig: Enable ACPI
    ACPI / ARM64: Remove EXPERT dependency for ACPI on ARM64
    ACPI / ARM64: Don't enable ACPI by default on ARM64
    acer-wmi: Use acpi_dev_found()
    eeepc-wmi: Use acpi_dev_found()
    ACPI / utils: Rename acpi_dev_present()

    * acpi-tools:
    tools/power/acpi: close file only if it is open

    Rafael J. Wysocki
     

13 May, 2016

3 commits

  • After 0161028b7c8a ("perf/core: Change the default paranoia level to 2")
    'perf stat' fails for users without CAP_SYS_ADMIN, so just use
    'perf_evsel__fallback()' to have the same behaviour as 'perf record',
    i.e. set perf_event_attr.exclude_kernel to 1.

    Now:

    [acme@jouet linux]$ perf stat usleep 1

    Performance counter stats for 'usleep 1':

    0.352536 task-clock:u (msec) # 0.423 CPUs utilized
    0 context-switches:u # 0.000 K/sec
    0 cpu-migrations:u # 0.000 K/sec
    49 page-faults:u # 0.139 M/sec
    309,407 cycles:u # 0.878 GHz
    243,791 instructions:u # 0.79 insn per cycle
    49,622 branches:u # 140.757 M/sec
    3,884 branch-misses:u # 7.83% of all branches

    0.000834174 seconds time elapsed

    [acme@jouet linux]$

    Reported-by: Ingo Molnar
    Cc: Adrian Hunter
    Cc: Andy Lutomirski
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Kees Cook
    Cc: Linus Torvalds
    Cc: Masami Hiramatsu
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-b20jmx4dxt5hpaa9t2rroi0o@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • Now with the default for the kernel.perf_event_paranoid sysctl being 2 [1]
    we need to fall back to :u, i.e. to set perf_event_attr.exclude_kernel
    to 1.

    Before:

    [acme@jouet linux]$ perf record usleep 1
    Error:
    You may not have permission to collect stats.

    Consider tweaking /proc/sys/kernel/perf_event_paranoid,
    which controls use of the performance events system by
    unprivileged users (without CAP_SYS_ADMIN).

    The current value is 2:

    -1: Allow use of (almost) all events by all users
    >= 0: Disallow raw tracepoint access by users without CAP_IOC_LOCK
    >= 1: Disallow CPU event access by users without CAP_SYS_ADMIN
    >= 2: Disallow kernel profiling by users without CAP_SYS_ADMIN
    [acme@jouet linux]$

    After:

    [acme@jouet linux]$ perf record usleep 1
    [ perf record: Woken up 1 times to write data ]
    [ perf record: Captured and wrote 0.016 MB perf.data (7 samples) ]
    [acme@jouet linux]$ perf evlist
    cycles:u
    [acme@jouet linux]$ perf evlist -v
    cycles:u: size: 112, { sample_period, sample_freq }: 4000, sample_type: IP|TID|TIME|PERIOD, disabled: 1, inherit: 1, exclude_kernel: 1, mmap: 1, comm: 1, freq: 1, enable_on_exec: 1, task: 1, sample_id_all: 1, exclude_guest: 1, mmap2: 1, comm_exec: 1
    [acme@jouet linux]$

    And if the user turns on verbose mode, an explanation will appear:

    [acme@jouet linux]$ perf record -v usleep 1
    Warning:
    kernel.perf_event_paranoid=2, trying to fall back to excluding kernel samples
    mmap size 528384B
    [ perf record: Woken up 1 times to write data ]
    Looking at the vmlinux_path (8 entries long)
    Using /lib/modules/4.6.0-rc7+/build/vmlinux for symbols
    [ perf record: Captured and wrote 0.016 MB perf.data (7 samples) ]
    [acme@jouet linux]$

    [1] 0161028b7c8a ("perf/core: Change the default paranoia level to 2")

    Reported-by: Ingo Molnar
    Cc: Adrian Hunter
    Cc: Andy Lutomirski
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Kees Cook
    Cc: Linus Torvalds
    Cc: Masami Hiramatsu
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-b20jmx4dxt5hpaa9t2rroi0o@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • We were showing a hardcoded default value for the kernel.perf_event_paranoid
    sysctl, now that it became more paranoid (1 -> 2 [1]), this would need to be
    updated, instead show the current value:

    [acme@jouet linux]$ perf record ls
    Error:
    You may not have permission to collect stats.

    Consider tweaking /proc/sys/kernel/perf_event_paranoid,
    which controls use of the performance events system by
    unprivileged users (without CAP_SYS_ADMIN).

    The current value is 2:

    -1: Allow use of (almost) all events by all users
    >= 0: Disallow raw tracepoint access by users without CAP_IOC_LOCK
    >= 1: Disallow CPU event access by users without CAP_SYS_ADMIN
    >= 2: Disallow kernel profiling by users without CAP_SYS_ADMIN
    [acme@jouet linux]$

    [1] 0161028b7c8a ("perf/core: Change the default paranoia level to 2")

    Reported-by: Ingo Molnar
    Cc: Adrian Hunter
    Cc: Andy Lutomirski
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Kees Cook
    Cc: Linus Torvalds
    Cc: Masami Hiramatsu
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-0gc4rdpg8d025r5not8s8028@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

12 May, 2016

12 commits

  • At the end of process_filter(), collapse_tree() was changed to update
    the parg parameter, but the reassignment after the call wasn't removed.

    What happens is that the "current_op" gets modified and freed and parg
    is assigned to the new allocated argument. But after the call to
    collapse_tree(), parg is assigned again to the just freed "current_op",
    and this causes the tool to crash.

    The current_op variable must also be assigned to NULL in case of error,
    otherwise it will cause it to be free()ed twice.

    Signed-off-by: Steven Rostedt
    Acked-by: Namhyung Kim
    Cc: stable@vger.kernel.org # 3.14+
    Fixes: 42d6194d133c ("tools lib traceevent: Refactor process_filter()")
    Link: http://lkml.kernel.org/r/20160511150936.678c18a1@gandalf.local.home
    Signed-off-by: Arnaldo Carvalho de Melo

    Steven Rostedt
     
  • If not, tell the user that:

    config/Makefile:273: Old libdw.h, finding variables at given 'perf probe' point will not work, install elfutils-devel/libdw-dev >= 0.157

    And return -ENOTSUPP in die_get_var_range(), failing features that
    need it, like the one pointed out above.

    This fixes the build on older systems, such as Ubuntu 12.04.5.

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

    Arnaldo Carvalho de Melo
     
  • To fix the build on Fedora Rawhide (gcc 6.0.0 20160311 (Red Hat 6.0.0-0.17):

    CC /tmp/build/perf/arch/x86/util/dwarf-regs.o
    arch/x86/util/dwarf-regs.c:66:36: error: 'x86_32_regoffset_table' defined but not used [-Werror=unused-const-variable=]
    static const struct pt_regs_offset x86_32_regoffset_table[] = {
    ^~~~~~~~~~~~~~~~~~~~~~
    cc1: all warnings being treated as errors

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

    Arnaldo Carvalho de Melo
     
  • The readdir() function is thread safe as long as just one thread uses a
    DIR, which is the case when parsing tracepoint event definitions, to
    avoid breaking the build with glibc-2.23.90 (upcoming 2.24), use it
    instead of readdir_r().

    See: http://man7.org/linux/man-pages/man3/readdir.3.html

    "However, in modern implementations (including the glibc implementation),
    concurrent calls to readdir() that specify different directory streams
    are thread-safe. In cases where multiple threads must read from the
    same directory stream, using readdir() with external synchronization is
    still preferable to the use of the deprecated readdir_r(3) function."

    Noticed while building on a Fedora Rawhide docker container.

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

    Arnaldo Carvalho de Melo
     
  • The readdir() function is thread safe as long as just one thread uses a
    DIR, which is the case in thread_map, so, to avoid breaking the build
    with glibc-2.23.90 (upcoming 2.24), use it instead of readdir_r().

    See: http://man7.org/linux/man-pages/man3/readdir.3.html

    "However, in modern implementations (including the glibc implementation),
    concurrent calls to readdir() that specify different directory streams
    are thread-safe. In cases where multiple threads must read from the
    same directory stream, using readdir() with external synchronization is
    still preferable to the use of the deprecated readdir_r(3) function."

    Noticed while building on a Fedora Rawhide docker container.

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

    Arnaldo Carvalho de Melo
     
  • The readdir() function is thread safe as long as just one thread uses a
    DIR, which is the case in 'perf script', so, to avoid breaking the build
    with glibc-2.23.90 (upcoming 2.24), use it instead of readdir_r().

    See: http://man7.org/linux/man-pages/man3/readdir.3.html

    "However, in modern implementations (including the glibc implementation),
    concurrent calls to readdir() that specify different directory streams
    are thread-safe. In cases where multiple threads must read from the
    same directory stream, using readdir() with external synchronization is
    still preferable to the use of the deprecated readdir_r(3) function."

    Noticed while building on a Fedora Rawhide docker container.

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

    Arnaldo Carvalho de Melo
     
  • The readdir() function is thread safe as long as just one thread uses a
    DIR, which is the case when synthesizing events for pre-existing threads
    by traversing /proc, so, to avoid breaking the build with glibc-2.23.90
    (upcoming 2.24), use it instead of readdir_r().

    See: http://man7.org/linux/man-pages/man3/readdir.3.html

    "However, in modern implementations (including the glibc implementation),
    concurrent calls to readdir() that specify different directory streams
    are thread-safe. In cases where multiple threads must read from the
    same directory stream, using readdir() with external synchronization is
    still preferable to the use of the deprecated readdir_r(3) function."

    Noticed while building on a Fedora Rawhide docker container.

    CC /tmp/build/perf/util/event.o
    util/event.c: In function '__event__synthesize_thread':
    util/event.c:466:2: error: 'readdir_r' is deprecated [-Werror=deprecated-declarations]
    while (!readdir_r(tasks, &dirent, &next) && next) {
    ^~~~~
    In file included from /usr/include/features.h:368:0,
    from /usr/include/stdint.h:25,
    from /usr/lib/gcc/x86_64-redhat-linux/6.0.0/include/stdint.h:9,
    from /git/linux/tools/include/linux/types.h:6,
    from util/event.c:1:
    /usr/include/dirent.h:189:12: note: declared here

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

    Arnaldo Carvalho de Melo
     
  • Use new lsdir() for looking up buildid caches. This changes logic a bit
    to ignore all dot files, since the build-id cache must not start with
    dot.

    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Masami Hiramatsu
    Cc: Ananth N Mavinakayanahalli
    Cc: Brendan Gregg
    Cc: Hemant Kumar
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20160511135217.23943.94596.stgit@devbox
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • Use lsdir() to search in kcore cache directory. This also avoids
    checking hidden dot directory entries, because kcore cache directories
    must always have the name from timestamps when taking the kcore
    snapshots, and it never start with dot.

    Signed-off-by: Masami Hiramatsu
    Cc: Ananth N Mavinakayanahalli
    Cc: Brendan Gregg
    Cc: Hemant Kumar
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20160511135208.23943.68071.stgit@devbox
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • Use the existing SBUILD_ID_SIZE macro instead of the equivalent
    BUILD_ID_SIZE * 2 + 1 expression for allocating a buffer for build-id
    strings.

    Signed-off-by: Masami Hiramatsu
    Cc: Ananth N Mavinakayanahalli
    Cc: Brendan Gregg
    Cc: Hemant Kumar
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20160511135159.23943.57120.stgit@devbox
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • Fix lsdir() to set correct positive error number (ENOMEM). Since
    "errno" must have a positive error number instead of negative number,
    fix lsdir to set it correctly.

    Signed-off-by: Masami Hiramatsu
    Cc: Ananth N Mavinakayanahalli
    Cc: Brendan Gregg
    Cc: Hemant Kumar
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Fixes: e1ce726e1db2 ("perf tools: Add lsdir() helper to read a directory")
    Link: http://lkml.kernel.org/r/20160511135127.23943.40644.stgit@devbox
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • To reduce the size of builtin-trace.c.

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

    Arnaldo Carvalho de Melo
     

11 May, 2016

11 commits

  • To reduce the size of builtin-trace.c.

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

    Arnaldo Carvalho de Melo
     
  • Debug-frame for remote platforms is not related to the host platform, so
    we should test each platform separately.

    Signed-off-by: He Kuang
    Acked-by: Jiri Olsa
    Cc: Adrian Hunter
    Cc: Alexander Shishkin
    Cc: Andi Kleen
    Cc: David Ahern
    Cc: Ekaterina Tumanova
    Cc: Josh Poimboeuf
    Cc: Kan Liang
    Cc: Masami Hiramatsu
    Cc: Namhyung Kim
    Cc: Pekka Enberg
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Cc: Sukadev Bhattiprolu
    Cc: Wang Nan
    Link: http://lkml.kernel.org/r/1462866037-30382-5-git-send-email-hekuang@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo

    He Kuang
     
  • Currently only test for local libunwind. We should check all supported
    platforms so we can use them to parse perf.data with callchain info on
    different machines.

    Signed-off-by: He Kuang
    Acked-by: Jiri Olsa
    Cc: Adrian Hunter
    Cc: Alexander Shishkin
    Cc: Andi Kleen
    Cc: David Ahern
    Cc: Ekaterina Tumanova
    Cc: Josh Poimboeuf
    Cc: Kan Liang
    Cc: Masami Hiramatsu
    Cc: Namhyung Kim
    Cc: Pekka Enberg
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Cc: Sukadev Bhattiprolu
    Cc: Wang Nan
    Link: http://lkml.kernel.org/r/1462866037-30382-4-git-send-email-hekuang@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo

    He Kuang
     
  • When an IP with an unresolved symbol occurs in the callchain more than
    once (ie. recursion), then duplicate symbols can be created because
    the callchain nodes are never updated after they are first created.

    To fix this issue we call dso__find_symbol whenever we encounter a NULL
    symbol, in case we already added a symbol at that IP since we started
    traversing the callchain.

    This change prevents duplicate symbols from being exported when duplicate
    IPs are present in the callchain.

    Signed-off-by: Chris Phlipot
    Cc: Adrian Hunter
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1462937209-6032-5-git-send-email-cphlipot0@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Chris Phlipot
     
  • Remove the call to map_ip() to adjust al.addr, because it has already
    been called when assembling the callchain, in:

    thread__resolve_callchain_sample(perf_sample)
    add_callchain_ip(ip = perf_sample->callchain->ips[j])
    thread__find_addr_location(addr = ip)
    thread__find_addr_map(addr) {
    al->addr = addr
    if (al->map)
    al->addr = al->map->map_ip(al->map, al->addr);
    }

    Calling it a second time can result in incorrect addresses being used.
    This can have effects such as duplicate symbols being created and
    exported.

    Signed-off-by: Chris Phlipot
    Cc: Adrian Hunter
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1462937209-6032-4-git-send-email-cphlipot0@gmail.com
    [ Show the callchain where it is done, to help reviewing this change down the line ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Chris Phlipot
     
  • Use the dso__insert_symbol function instead of symbols__insert() in
    order to properly update the dso symbol cache.

    If the cache is not updated, then duplicate symbols can be
    unintentionally created, inserted, and exported.

    This change prevents duplicate symbols from being exported due to
    dso__find_symbol() using a stale symbol cache.

    Signed-off-by: Chris Phlipot
    Cc: Adrian Hunter
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1462937209-6032-3-git-send-email-cphlipot0@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Chris Phlipot
     
  • The current method for inserting symbols is to use the symbols__insert()
    function. However symbols__insert() does not update the dso symbol
    cache. This causes problems in the following scenario:

    1. symbol not found at addr using dso__find_symbol

    2. symbol inserted at addr using the existing symbols__insert function

    3. symbol still not found at addr using dso__find_symbol() because cache isn't
    updated. This is undesired behavior.

    The undesired behavior in (3) is addressed by creating a new function,
    dso__insert_symbol() to both insert the symbol and update the symbol
    cache if necessary.

    If dso__insert_symbol() is used in (2) instead of symbols__insert(),
    then the undesired behavior in (3) is avoided.

    Signed-off-by: Chris Phlipot
    Cc: Adrian Hunter
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1462937209-6032-2-git-send-email-cphlipot0@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Chris Phlipot
     
  • It probably is equivalent, but that seems to be the "pythonic" way of
    dieing? Anyway, one less die() in the tools/perf codebase.

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

    Arnaldo Carvalho de Melo
     
  • …ernel/git/acme/linux into perf/core

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

    User visible changes:

    - Recording 'dwarf' callchains do not need DWARF unwinding support (He Kuang)

    - Print recently added perf_event_attr.write_backward bit flag in -vv
    verbose mode (Arnaldo Carvalho de Melo)

    - Fix incorrect python db-export error message in 'perf script' (Chris Phlipot)

    - Fix handling of zero-length symbols (Chris Phlipot)

    - perf stat: Scale values by unit before metrics (Andi Kleen)

    Infrastructure changes:

    - Rewrite strbuf not to die(), making tools using it to check its
    return value instead (Masami Hiramatsu)

    - Support reading from backward ring buffer, add a 'perf test' entry
    for it (Wang Nan)

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

    Ingo Molnar
     
  • Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • The commit b97511c5bc94 ("perf tools: Add overhead/overhead_children
    keys defaults via string") moved initialization of column headers but it
    missed to check the sort__mode. As 'perf diff' doesn't call
    perf_hpp__init(), the setup_overhead() also should not be called.

    Before:

    # Baseline Delta Children Overhead Shared Object Symbol
    # ........ ....... ........ ........ ................... .......................
    #
    28.48% -28.47% 28.48% 28.48% [kernel.vmlinux ] [k] intel_idle
    11.51% -11.47% 11.51% 11.51% libxul.so [.] 0x0000000001a360f7
    3.49% -3.49% 3.49% 3.49% [kernel.vmlinux] [k] generic_exec_single
    2.91% -2.89% 2.91% 2.91% libdbus-1.so.3.8.11 [.] 0x000000000000cdc2
    2.86% -2.85% 2.86% 2.86% libxcb.so.1.1.0 [.] 0x000000000000c890
    2.44% -2.39% 2.44% 2.44% [kernel.vmlinux] [k] perf_event_aux_ctx

    After:

    # Baseline Delta Shared Object Symbol
    # ........ ....... ................... .......................
    #
    28.48% -28.47% [kernel.vmlinux] [k] intel_idle
    11.51% -11.47% libxul.so [.] 0x0000000001a360f7
    3.49% -3.49% [kernel.vmlinux] [k] generic_exec_single
    2.91% -2.89% libdbus-1.so.3.8.11 [.] 0x000000000000cdc2
    2.86% -2.85% libxcb.so.1.1.0 [.] 0x000000000000c890
    2.44% -2.39% [kernel.vmlinux] [k] perf_event_aux_ctx

    Signed-off-by: Namhyung Kim
    Signed-off-by: Arnaldo Carvalho de Melo
    Acked-by: Jiri Olsa
    Cc: # 4.5+
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Fixes: b97511c5bc94 ("perf tools: Add overhead/overhead_children keys defaults via string")
    Link: http://lkml.kernel.org/r/1462890384-12486-2-git-send-email-acme@kernel.org
    Signed-off-by: Ingo Molnar

    Namhyung Kim
     

10 May, 2016

3 commits