27 Apr, 2015

1 commit

  • Pull more power management and ACPI updates from Rafael Wysocki:
    "These are fixes mostly (intel_pstate, ACPI core, ACPI EC driver,
    cpupower tool), a new CPU ID for the Intel RAPL driver and one
    intel_pstate driver improvement that didn't make it to my previous
    pull requests due to timing.

    Specifics:

    - Fix a build warning in the intel_pstate driver showing up in
    non-SMP builds (Borislav Petkov)

    - Change one of the intel_pstate's P-state selection parameters for
    Baytrail and Cherrytrail CPUs to significantly improve performance
    at the cost of a small increase in energy consumption (Kristen
    Carlson Accardi)

    - Fix a NULL pointer dereference in the ACPI EC driver due to an
    unsafe list walk in the query handler removal routine (Chris
    Bainbridge)

    - Get rid of a false-positive lockdep warning in the ACPI container
    hot-remove code (Rafael J Wysocki)

    - Prevent the ACPI device enumeration code from creating device
    objects of a wrong type in some cases (Rafael J Wysocki)

    - Add Skylake processors support to the Intel RAPL power capping
    driver (Brian Bian)

    - Drop the stale MAINTAINERS entry for the ACPI dock driver that is
    regarded as part of the ACPI core and maintained along with it now
    (Chao Yu)

    - Fix cpupower tool breakage caused by a library API change in libpci
    3.3.0 (Lucas Stach)"

    * tag 'pm+acpi-4.1-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPI / scan: Add a scan handler for PRP0001
    ACPI / scan: Annotate physical_node_lock in acpi_scan_is_offline()
    ACPI / EC: fix NULL pointer dereference in acpi_ec_remove_query_handler()
    MAINTAINERS: remove maintainship entry of docking station driver
    powercap / RAPL: Add support for Intel Skylake processors
    cpufreq: intel_pstate: Fix an annoying !CONFIG_SMP warning
    intel_pstate: Change the setpoint for Atom params
    cpupower: fix breakage from libpci API change

    Linus Torvalds
     

22 Apr, 2015

1 commit

  • Pull char/misc driver updates from Greg KH:
    "Here's the big char/misc driver patchset for 4.1-rc1.

    Lots of different driver subsystem updates here, nothing major, full
    details are in the shortlog.

    All of this has been in linux-next for a while"

    * tag 'char-misc-4.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (133 commits)
    mei: trace: remove unused TRACE_SYSTEM_STRING
    DTS: ARM: OMAP3-N900: Add lis3lv02d support
    Documentation: DT: lis302: update wakeup binding
    lis3lv02d: DT: add wakeup unit 2 and wakeup threshold
    lis3lv02d: DT: use s32 to support negative values
    Drivers: hv: hv_balloon: correctly handle num_pages>INT_MAX case
    Drivers: hv: hv_balloon: correctly handle val.freeram directory
    coresight-tmc: Adding a status interface to sysfs
    coresight: remove the unnecessary configuration coresight-default-sink
    ...

    Linus Torvalds
     

20 Apr, 2015

2 commits

  • Pull turbostat update from Len Brown:
    "Updates to the turbostat utility.

    Just one kernel dependency in this batch -- added a #define to
    msr-index.h"

    * 'turbostat' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:
    tools/power turbostat: correct dumped pkg-cstate-limit value
    tools/power turbostat: calculate TSC frequency from CPUID(0x15) on SKL
    tools/power turbostat: correct DRAM RAPL units on recent Xeon processors
    tools/power turbostat: Initial Skylake support
    tools/power turbostat: Use $(CURDIR) instead of $(PWD) and add support for O= option in Makefile
    tools/power turbostat: modprobe msr, if needed
    tools/power turbostat: dump MSR_TURBO_RATIO_LIMIT2
    tools/power turbostat: use new MSR_TURBO_RATIO_LIMIT names
    x86 msr-index: define MSR_TURBO_RATIO_LIMIT,1,2
    tools/power turbostat: label base frequency
    tools/power turbostat: update PERF_LIMIT_REASONS decoding
    tools/power turbostat: simplify default output

    Linus Torvalds
     
  • * pm-cpufreq:
    cpufreq: intel_pstate: Fix an annoying !CONFIG_SMP warning
    intel_pstate: Change the setpoint for Atom params

    * powercap:
    powercap / RAPL: Add support for Intel Skylake processors

    * pm-tools:
    cpupower: fix breakage from libpci API change

    Rafael J. Wysocki
     

19 Apr, 2015

8 commits


18 Apr, 2015

3 commits

  • Pull x86 fixes from Ingo Molnar:
    "This tree includes:

    - an FPU related crash fix

    - a ptrace fix (with matching testcase in tools/testing/selftests/)

    - an x86 Kconfig DMA-config defaults tweak to better avoid
    non-working drivers"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    config: Enable NEED_DMA_MAP_STATE by default when SWIOTLB is selected
    x86/fpu: Load xsave pointer *after* initialization
    x86/ptrace: Fix the TIF_FORCED_TF logic in handle_signal()
    x86, selftests: Add single_step_syscall test

    Linus Torvalds
     
  • Pull perf updates from Ingo Molnar:
    "This update has mostly fixes, but also other bits:

    - perf tooling fixes

    - PMU driver fixes

    - Intel Broadwell PMU driver HW-enablement for LBR callstacks

    - a late coming 'perf kmem' tool update that enables it to also
    analyze page allocation data. Note, this comes with MM tracepoint
    changes that we believe to not break anything: because it changes
    the formerly opaque 'struct page *' field that uniquely identifies
    pages to 'pfn' which identifies pages uniquely too, but isn't as
    opaque and can be used for other purposes as well"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    perf/x86/intel/pt: Fix and clean up error handling in pt_event_add()
    perf/x86/intel: Add Broadwell support for the LBR callstack
    perf/x86/intel/rapl: Fix energy counter measurements but supporing per domain energy units
    perf/x86/intel: Fix Core2,Atom,NHM,WSM cycles:pp events
    perf/x86: Fix hw_perf_event::flags collision
    perf probe: Fix segfault when probe with lazy_line to file
    perf probe: Find compilation directory path for lazy matching
    perf probe: Set retprobe flag when probe in address-based alternative mode
    perf kmem: Analyze page allocator events also
    tracing, mm: Record pfn instead of pointer to struct page

    Linus Torvalds
     
  • Pull ACPICA updates from Rafael Wysocki:
    "This updates the kernel's ACPICA code to upstream revision 20150410
    and adds a fix for a GPE handling regression introduced during the
    3.19 cycle on top of that.

    Included are two stable-candidate bug fixes (one of them fixing a 3.16
    regression), multiple other fixes and a bunch of cleanups.

    Specifics:

    - Fix for a GPE handling regression on Dell Latitude D600 that caused
    GPE signaling to stop working on that machine, which appears to be
    due to a hardware glitch, but it used to work and it can be made
    work again in a relativly straightforward way (Rafael J Wysocki).

    - Fix for a mutex unlock regression related to the handling of ACPI
    tables introduced during the 3.16 development cycle (Octavian
    Purdila).

    - _REV modification to always return 2 which has been done by all
    versions of Windows since NT and the firmware people started to use
    it to distinguish between OSes in their AML and do some silly and
    wrong things on that basis (Bob Moore).

    - Fixes and cleanups related to the acpi_physicall_address data type
    including one stable-candidate fix for an issue occasionally
    occuring on 64-bit machines running 32-bit kernels where using
    offsets provided by the firmware may lead to address overflows (Lv
    Zheng).

    - External() opcode support infrastructure needed for recompiling
    disassembled ACPI tables in some cases including interpreter
    modification to ignore that opcode (Bob Moore).

    - Support for the "Windows 2015" string in _OSI (Bob Moore).

    - GPE debug interface change to return values read from hardware
    registers (Lv Zheng).

    - Removal of the __DATE__ macro usage in tools (Rasmus Villemoes).

    - Assorted minor fixes and cleanups (Lv Zheng, Rickard Strandqvist,
    Bob Moore)"

    * tag 'acpica-4.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (32 commits)
    ACPICA: Store GPE register enable masks upfront
    ACPICA: Update version to 20150410.
    ACPICA: Fix a couple issues with the local printf module.
    ACPICA: Disassembler: Some cleanup of the table dump module.
    ACPICA: iASL: Add support for MSDM ACPI table.
    ACPICA: Update for SLIC ACPI table.
    ACPICA: Add "//" before ascii output of buffers.
    ACPICA: Remove unused internal AML opcode.
    ACPICA: Permanently set _REV to the value '2'.
    ACPICA: Add "Windows 2015" string to _OSI support.
    ACPICA: Add infrastructure for External() opcode.
    ACPICA: iASL: Enhancement for constant folding.
    ACPICA: iASL/Disassembler: Add option to assume table contains valid AML.
    ACPICA: Update AML Debugger global variables.
    ACPICA: Update Resource descriptor dump module.
    ACPICA: Fix a sscanf format string.
    ACPICA: Casting changes around acpi_physical_address/acpi_size.
    ACPICA: Resources: Correct conditional compilation definitions.
    ACPICA: Utilities: Correct conditional compilation definitions.
    ACPICA: Tables: Move an iasl specific table function to iasl source file.
    ...

    Linus Torvalds
     

17 Apr, 2015

1 commit

  • Pull powerpc updates from Michael Ellerman:

    - Numerous minor fixes, cleanups etc.

    - More EEH work from Gavin to remove its dependency on device_nodes.

    - Memory hotplug implemented entirely in the kernel from Nathan
    Fontenot.

    - Removal of redundant CONFIG_PPC_OF by Kevin Hao.

    - Rewrite of VPHN parsing logic & tests from Greg Kurz.

    - A fix from Nish Aravamudan to reduce memory usage by clamping
    nodes_possible_map.

    - Support for pstore on powernv from Hari Bathini.

    - Removal of old powerpc specific byte swap routines by David Gibson.

    - Fix from Vasant Hegde to prevent the flash driver telling you it was
    flashing your firmware when it wasn't.

    - Patch from Ben Herrenschmidt to add an OPAL heartbeat driver.

    - Fix for an oops causing get/put_cpu_var() imbalance in perf by Jan
    Stancek.

    - Some fixes for migration from Tyrel Datwyler.

    - A new syscall to switch the cpu endian by Michael Ellerman.

    - Large series from Wei Yang to implement SRIOV, reviewed and acked by
    Bjorn.

    - A fix for the OPAL sensor driver from Cédric Le Goater.

    - Fixes to get STRICT_MM_TYPECHECKS building again by Michael Ellerman.

    - Large series from Daniel Axtens to make our PCI hooks per PHB rather
    than per machine.

    - Small patch from Sam Bobroff to explicitly abort non-suspended
    transactions on syscalls, plus a test to exercise it.

    - Numerous reworks and fixes for the 24x7 PMU from Sukadev Bhattiprolu.

    - Small patch to enable the hard lockup detector from Anton Blanchard.

    - Fix from Dave Olson for missing L2 cache information on some CPUs.

    - Some fixes from Michael Ellerman to get Cell machines booting again.

    - Freescale updates from Scott: Highlights include BMan device tree
    nodes, an MSI erratum workaround, a couple minor performance
    improvements, config updates, and misc fixes/cleanup.

    * tag 'powerpc-4.1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux: (196 commits)
    powerpc/powermac: Fix build error seen with powermac smp builds
    powerpc/pseries: Fix compile of memory hotplug without CONFIG_MEMORY_HOTREMOVE
    powerpc: Remove PPC32 code from pseries specific find_and_init_phbs()
    powerpc/cell: Fix iommu breakage caused by controller_ops change
    powerpc/eeh: Fix crash in eeh_add_device_early() on Cell
    powerpc/perf: Cap 64bit userspace backtraces to PERF_MAX_STACK_DEPTH
    powerpc/perf/hv-24x7: Fail 24x7 initcall if create_events_from_catalog() fails
    powerpc/pseries: Correct memory hotplug locking
    powerpc: Fix missing L2 cache size in /sys/devices/system/cpu
    powerpc: Add ppc64 hard lockup detector support
    oprofile: Disable oprofile NMI timer on ppc64
    powerpc/perf/hv-24x7: Add missing put_cpu_var()
    powerpc/perf/hv-24x7: Break up single_24x7_request
    powerpc/perf/hv-24x7: Define update_event_count()
    powerpc/perf/hv-24x7: Whitespace cleanup
    powerpc/perf/hv-24x7: Define add_event_to_24x7_request()
    powerpc/perf/hv-24x7: Rename hv_24x7_event_update
    powerpc/perf/hv-24x7: Move debug prints to separate function
    powerpc/perf/hv-24x7: Drop event_24x7_request()
    powerpc/perf/hv-24x7: Use pr_devel() to log message
    ...

    Conflicts:
    tools/testing/selftests/powerpc/Makefile
    tools/testing/selftests/powerpc/tm/Makefile

    Linus Torvalds
     

16 Apr, 2015

4 commits

  • This is a very simple test that makes system calls with TF set.

    This test currently fails when running the 32-bit build on a
    64-bit kernel on an Intel CPU. This bug will be fixed by the
    next commit.

    Signed-off-by: Andy Lutomirski
    Cc: Borislav Petkov
    Cc: Denys Vlasenko
    Cc: Oleg Nesterov
    Cc: Shuah Khan
    Link: http://lkml.kernel.org/r/20e68021155f6ab5c60590dcad81d37c68ea2c4f.1429139075.git.luto@kernel.org
    Signed-off-by: Ingo Molnar

    Andy Lutomirski
     
  • When MAP_HUGETLB memory is unmapped, the length must be hugepage aligned,
    otherwise it fails with -EINVAL.

    All tests currently behave correctly, but it's better to explcitly test
    the return value for completeness and document the requirement, especially
    if users copy map_hugetlb.c as a sample implementation.

    Signed-off-by: David Rientjes
    Cc: Jonathan Corbet
    Cc: Davide Libenzi
    Cc: Luiz Capitulino
    Cc: Shuah Khan
    Cc: Hugh Dickins
    Cc: Andrea Arcangeli
    Cc: Joern Engel
    Cc: Jianguo Wu
    Cc: Eric B Munson
    Acked-by: Michael Ellerman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Rientjes
     
  • libpci 3.3.0 introduced an additional member in the pci_filter struct
    which needs to be initialized to -1 to get the same behavior as before
    the API change. The libpci internal helpers got updated accordingly,
    but as the cpupower pci helpers initialized the struct themselves the
    behavior changed.

    Use the libpci helper pci_filter_init() to fix this and guard against
    similar breakages in the future.

    This fixes probing of the AMD fam12h/14h cpuidle monitor on systems
    with libpci >= 3.3.0.

    Signed-off-by: Lucas Stach
    Acked-by: Thomas Renninger
    Signed-off-by: Rafael J. Wysocki

    Lucas Stach
     
  • Pull networking updates from David Miller:

    1) Add BQL support to via-rhine, from Tino Reichardt.

    2) Integrate SWITCHDEV layer support into the DSA layer, so DSA drivers
    can support hw switch offloading. From Floria Fainelli.

    3) Allow 'ip address' commands to initiate multicast group join/leave,
    from Madhu Challa.

    4) Many ipv4 FIB lookup optimizations from Alexander Duyck.

    5) Support EBPF in cls_bpf classifier and act_bpf action, from Daniel
    Borkmann.

    6) Remove the ugly compat support in ARP for ugly layers like ax25,
    rose, etc. And use this to clean up the neigh layer, then use it to
    implement MPLS support. All from Eric Biederman.

    7) Support L3 forwarding offloading in switches, from Scott Feldman.

    8) Collapse the LOCAL and MAIN ipv4 FIB tables when possible, to speed
    up route lookups even further. From Alexander Duyck.

    9) Many improvements and bug fixes to the rhashtable implementation,
    from Herbert Xu and Thomas Graf. In particular, in the case where
    an rhashtable user bulk adds a large number of items into an empty
    table, we expand the table much more sanely.

    10) Don't make the tcp_metrics hash table per-namespace, from Eric
    Biederman.

    11) Extend EBPF to access SKB fields, from Alexei Starovoitov.

    12) Split out new connection request sockets so that they can be
    established in the main hash table. Much less false sharing since
    hash lookups go direct to the request sockets instead of having to
    go first to the listener then to the request socks hashed
    underneath. From Eric Dumazet.

    13) Add async I/O support for crytpo AF_ALG sockets, from Tadeusz Struk.

    14) Support stable privacy address generation for RFC7217 in IPV6. From
    Hannes Frederic Sowa.

    15) Hash network namespace into IP frag IDs, also from Hannes Frederic
    Sowa.

    16) Convert PTP get/set methods to use 64-bit time, from Richard
    Cochran.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1816 commits)
    fm10k: Bump driver version to 0.15.2
    fm10k: corrected VF multicast update
    fm10k: mbx_update_max_size does not drop all oversized messages
    fm10k: reset head instead of calling update_max_size
    fm10k: renamed mbx_tx_dropped to mbx_tx_oversized
    fm10k: update xcast mode before synchronizing multicast addresses
    fm10k: start service timer on probe
    fm10k: fix function header comment
    fm10k: comment next_vf_mbx flow
    fm10k: don't handle mailbox events in iov_event path and always process mailbox
    fm10k: use separate workqueue for fm10k driver
    fm10k: Set PF queues to unlimited bandwidth during virtualization
    fm10k: expose tx_timeout_count as an ethtool stat
    fm10k: only increment tx_timeout_count in Tx hang path
    fm10k: remove extraneous "Reset interface" message
    fm10k: separate PF only stats so that VF does not display them
    fm10k: use hw->mac.max_queues for stats
    fm10k: only show actual queues, not the maximum in hardware
    fm10k: allow creation of VLAN on default vid
    fm10k: fix unused warnings
    ...

    Linus Torvalds
     

15 Apr, 2015

4 commits

  • Pull perf changes from Ingo Molnar:
    "Core kernel changes:

    - One of the more interesting features in this cycle is the ability
    to attach eBPF programs (user-defined, sandboxed bytecode executed
    by the kernel) to kprobes.

    This allows user-defined instrumentation on a live kernel image
    that can never crash, hang or interfere with the kernel negatively.
    (Right now it's limited to root-only, but in the future we might
    allow unprivileged use as well.)

    (Alexei Starovoitov)

    - Another non-trivial feature is per event clockid support: this
    allows, amongst other things, the selection of different clock
    sources for event timestamps traced via perf.

    This feature is sought by people who'd like to merge perf generated
    events with external events that were measured with different
    clocks:

    - cluster wide profiling

    - for system wide tracing with user-space events,

    - JIT profiling events

    etc. Matching perf tooling support is added as well, available via
    the -k, --clockid parameter to perf record et al.

    (Peter Zijlstra)

    Hardware enablement kernel changes:

    - x86 Intel Processor Trace (PT) support: which is a hardware tracer
    on steroids, available on Broadwell CPUs.

    The hardware trace stream is directly output into the user-space
    ring-buffer, using the 'AUX' data format extension that was added
    to the perf core to support hardware constraints such as the
    necessity to have the tracing buffer physically contiguous.

    This patch-set was developed for two years and this is the result.
    A simple way to make use of this is to use BTS tracing, the PT
    driver emulates BTS output - available via the 'intel_bts' PMU.
    More explicit PT specific tooling support is in the works as well -
    will probably be ready by 4.2.

    (Alexander Shishkin, Peter Zijlstra)

    - x86 Intel Cache QoS Monitoring (CQM) support: this is a hardware
    feature of Intel Xeon CPUs that allows the measurement and
    allocation/partitioning of caches to individual workloads.

    These kernel changes expose the measurement side as a new PMU
    driver, which exposes various QoS related PMU events. (The
    partitioning change is work in progress and is planned to be merged
    as a cgroup extension.)

    (Matt Fleming, Peter Zijlstra; CPU feature detection by Peter P
    Waskiewicz Jr)

    - x86 Intel Haswell LBR call stack support: this is a new Haswell
    feature that allows the hardware recording of call chains, plus
    tooling support. To activate this feature you have to enable it
    via the new 'lbr' call-graph recording option:

    perf record --call-graph lbr
    perf report

    or:

    perf top --call-graph lbr

    This hardware feature is a lot faster than stack walk or dwarf
    based unwinding, but has some limitations:

    - It reuses the current LBR facility, so LBR call stack and
    branch record can not be enabled at the same time.

    - It is only available for user-space callchains.

    (Yan, Zheng)

    - x86 Intel Broadwell CPU support and various event constraints and
    event table fixes for earlier models.

    (Andi Kleen)

    - x86 Intel HT CPUs event scheduling workarounds. This is a complex
    CPU bug affecting the SNB,IVB,HSW families that results in counter
    value corruption. The mitigation code is automatically enabled and
    is transparent.

    (Maria Dimakopoulou, Stephane Eranian)

    The perf tooling side had a ton of changes in this cycle as well, so
    I'm only able to list the user visible changes here, in addition to
    the tooling changes outlined above:

    User visible changes affecting all tools:

    - Improve support of compressed kernel modules (Jiri Olsa)
    - Save DSO loading errno to better report errors (Arnaldo Carvalho de Melo)
    - Bash completion for subcommands (Yunlong Song)
    - Add 'I' event modifier for perf_event_attr.exclude_idle bit (Jiri Olsa)
    - Support missing -f to override perf.data file ownership. (Yunlong Song)
    - Show the first event with an invalid filter (David Ahern, Arnaldo Carvalho de Melo)

    User visible changes in individual tools:

    'perf data':

    New tool for converting perf.data to other formats, initially
    for the CTF (Common Trace Format) from LTTng (Jiri Olsa,
    Sebastian Siewior)

    'perf diff':

    Add --kallsyms option (David Ahern)

    'perf list':

    Allow listing events with 'tracepoint' prefix (Yunlong Song)

    Sort the output of the command (Yunlong Song)

    'perf kmem':

    Respect -i option (Jiri Olsa)

    Print big numbers using thousands' group (Namhyung Kim)

    Allow -v option (Namhyung Kim)

    Fix alignment of slab result table (Namhyung Kim)

    'perf probe':

    Support multiple probes on different binaries on the same command line (Masami Hiramatsu)

    Support unnamed union/structure members data collection. (Masami Hiramatsu)

    Check kprobes blacklist when adding new events. (Masami Hiramatsu)

    'perf record':

    Teach 'perf record' about perf_event_attr.clockid (Peter Zijlstra)

    Support recording running/enabled time (Andi Kleen)

    'perf sched':

    Improve the performance of 'perf sched replay' on high CPU core count machines (Yunlong Song)

    'perf report' and 'perf top':

    Allow annotating entries in callchains in the hists browser (Arnaldo Carvalho de Melo)

    Indicate which callchain entries are annotated in the
    TUI hists browser (Arnaldo Carvalho de Melo)

    Add pid/tid filtering to 'report' and 'script' commands (David Ahern)

    Consider PERF_RECORD_ events with cpumode == 0 in 'perf top', removing one
    cause of long term memory usage buildup, i.e. not processing PERF_RECORD_EXIT
    events (Arnaldo Carvalho de Melo)

    'perf stat':

    Report unsupported events properly (Suzuki K. Poulose)

    Output running time and run/enabled ratio in CSV mode (Andi Kleen)

    'perf trace':

    Handle legacy syscalls tracepoints (David Ahern, Arnaldo Carvalho de Melo)

    Only insert blank duration bracket when tracing syscalls (Arnaldo Carvalho de Melo)

    Filter out the trace pid when no threads are specified (Arnaldo Carvalho de Melo)

    Dump stack on segfaults (Arnaldo Carvalho de Melo)

    No need to explicitely enable evsels for workload started from perf, let it
    be enabled via perf_event_attr.enable_on_exec, removing some events that take
    place in the 'perf trace' before a workload is really started by it.
    (Arnaldo Carvalho de Melo)

    Allow mixing with tracepoints and suppressing plain syscalls. (Arnaldo Carvalho de Melo)

    There's also been a ton of infrastructure work done, such as the
    split-out of perf's build system into tools/build/ and other changes -
    see the shortlog and changelog for details"

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (358 commits)
    perf/x86/intel/pt: Clean up the control flow in pt_pmu_hw_init()
    perf evlist: Fix type for references to data_head/tail
    perf probe: Check the orphaned -x option
    perf probe: Support multiple probes on different binaries
    perf buildid-list: Fix segfault when show DSOs with hits
    perf tools: Fix cross-endian analysis
    perf tools: Fix error path to do closedir() when synthesizing threads
    perf tools: Fix synthesizing fork_event.ppid for non-main thread
    perf tools: Add 'I' event modifier for exclude_idle bit
    perf report: Don't call map__kmap if map is NULL.
    perf tests: Fix attr tests
    perf probe: Fix ARM 32 building error
    perf tools: Merge all perf_event_attr print functions
    perf record: Add clockid parameter
    perf sched replay: Use replay_repeat to calculate the runavg of cpu usage instead of the default value 10
    perf sched replay: Support using -f to override perf.data file ownership
    perf sched replay: Fix the EMFILE error caused by the limitation of the maximum open files
    perf sched replay: Handle the dead halt of sem_wait when create_tasks() fails for any task
    perf sched replay: Fix the segmentation fault problem caused by pr_err in threads
    perf sched replay: Realloc the memory of pid_to_task stepwise to adapt to the different pid_max configurations
    ...

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

    - changes permitting use of call_rcu() and friends very early in
    boot, for example, before rcu_init() is invoked.

    - add in-kernel API to enable and disable expediting of normal RCU
    grace periods.

    - improve RCU's handling of (hotplug-) outgoing CPUs.

    - NO_HZ_FULL_SYSIDLE fixes.

    - tiny-RCU updates to make it more tiny.

    - documentation updates.

    - miscellaneous fixes"

    * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (58 commits)
    cpu: Provide smpboot_thread_init() on !CONFIG_SMP kernels as well
    cpu: Defer smpboot kthread unparking until CPU known to scheduler
    rcu: Associate quiescent-state reports with grace period
    rcu: Yet another fix for preemption and CPU hotplug
    rcu: Add diagnostics to grace-period cleanup
    rcutorture: Default to grace-period-initialization delays
    rcu: Handle outgoing CPUs on exit from idle loop
    cpu: Make CPU-offline idle-loop transition point more precise
    rcu: Eliminate ->onoff_mutex from rcu_node structure
    rcu: Process offlining and onlining only at grace-period start
    rcu: Move rcu_report_unblock_qs_rnp() to common code
    rcu: Rework preemptible expedited bitmask handling
    rcu: Remove event tracing from rcu_cpu_notify(), used by offline CPUs
    rcutorture: Enable slow grace-period initializations
    rcu: Provide diagnostic option to slow down grace-period initialization
    rcu: Detect stalls caused by failure to propagate up rcu_node tree
    rcu: Eliminate empty HOTPLUG_CPU ifdef
    rcu: Simplify sync_rcu_preempt_exp_init()
    rcu: Put all orphan-callback-related code under same comment
    rcu: Consolidate offline-CPU callback initialization
    ...

    Linus Torvalds
     
  • Pull tracing updates from Steven Rostedt:
    "Some clean ups and small fixes, but the biggest change is the addition
    of the TRACE_DEFINE_ENUM() macro that can be used by tracepoints.

    Tracepoints have helper functions for the TP_printk() called
    __print_symbolic() and __print_flags() that lets a numeric number be
    displayed as a a human comprehensible text. What is placed in the
    TP_printk() is also shown in the tracepoint format file such that user
    space tools like perf and trace-cmd can parse the binary data and
    express the values too. Unfortunately, the way the TRACE_EVENT()
    macro works, anything placed in the TP_printk() will be shown pretty
    much exactly as is. The problem arises when enums are used. That's
    because unlike macros, enums will not be changed into their values by
    the C pre-processor. Thus, the enum string is exported to the format
    file, and this makes it useless for user space tools.

    The TRACE_DEFINE_ENUM() solves this by converting the enum strings in
    the TP_printk() format into their number, and that is what is shown to
    user space. For example, the tracepoint tlb_flush currently has this
    in its format file:

    __print_symbolic(REC->reason,
    { TLB_FLUSH_ON_TASK_SWITCH, "flush on task switch" },
    { TLB_REMOTE_SHOOTDOWN, "remote shootdown" },
    { TLB_LOCAL_SHOOTDOWN, "local shootdown" },
    { TLB_LOCAL_MM_SHOOTDOWN, "local mm shootdown" })

    After adding:

    TRACE_DEFINE_ENUM(TLB_FLUSH_ON_TASK_SWITCH);
    TRACE_DEFINE_ENUM(TLB_REMOTE_SHOOTDOWN);
    TRACE_DEFINE_ENUM(TLB_LOCAL_SHOOTDOWN);
    TRACE_DEFINE_ENUM(TLB_LOCAL_MM_SHOOTDOWN);

    Its format file will contain this:

    __print_symbolic(REC->reason,
    { 0, "flush on task switch" },
    { 1, "remote shootdown" },
    { 2, "local shootdown" },
    { 3, "local mm shootdown" })"

    * tag 'trace-v4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (27 commits)
    tracing: Add enum_map file to show enums that have been mapped
    writeback: Export enums used by tracepoint to user space
    v4l: Export enums used by tracepoints to user space
    SUNRPC: Export enums in tracepoints to user space
    mm: tracing: Export enums in tracepoints to user space
    irq/tracing: Export enums in tracepoints to user space
    f2fs: Export the enums in the tracepoints to userspace
    net/9p/tracing: Export enums in tracepoints to userspace
    x86/tlb/trace: Export enums in used by tlb_flush tracepoint
    tracing/samples: Update the trace-event-sample.h with TRACE_DEFINE_ENUM()
    tracing: Allow for modules to convert their enums to values
    tracing: Add TRACE_DEFINE_ENUM() macro to map enums to their values
    tracing: Update trace-event-sample with TRACE_SYSTEM_VAR documentation
    tracing: Give system name a pointer
    brcmsmac: Move each system tracepoints to their own header
    iwlwifi: Move each system tracepoints to their own header
    mac80211: Move message tracepoints to their own header
    tracing: Add TRACE_SYSTEM_VAR to xhci-hcd
    tracing: Add TRACE_SYSTEM_VAR to kvm-s390
    tracing: Add TRACE_SYSTEM_VAR to intel-sst
    ...

    Linus Torvalds
     
  • Pull trivial tree from Jiri Kosina:
    "Usual trivial tree updates. Nothing outstanding -- mostly printk()
    and comment fixes and unused identifier removals"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial:
    goldfish: goldfish_tty_probe() is not using 'i' any more
    powerpc: Fix comment in smu.h
    qla2xxx: Fix printks in ql_log message
    lib: correct link to the original source for div64_u64
    si2168, tda10071, m88ds3103: Fix firmware wording
    usb: storage: Fix printk in isd200_log_config()
    qla2xxx: Fix printk in qla25xx_setup_mode
    init/main: fix reset_device comment
    ipwireless: missing assignment
    goldfish: remove unreachable line of code
    coredump: Fix do_coredump() comment
    stacktrace.h: remove duplicate declaration task_struct
    smpboot.h: Remove unused function prototype
    treewide: Fix typo in printk messages
    treewide: Fix typo in printk messages
    mod_devicetable: fix comment for match_flags

    Linus Torvalds
     

14 Apr, 2015

10 commits

  • ACPICA commit 84f3569db7accc576ace2dae81d101467254fe9d

    Was using %d instead of properly using %u.

    This patch only affects acpidump tool.

    Link: https://github.com/acpica/acpica/commit/84f3569d
    Signed-off-by: Bob Moore
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Bob Moore
     
  • ACPICA commit 9e2d8180f4d5e61949b17513bae8aff6412f62dd

    The offset calculation needn't convert a pointer to a special integer type.
    So this patch uses ACPI_TO_INTEGER() instead.

    This patch only affects acpidump tool.

    Link: https://github.com/acpica/acpica/commit/9e2d8180
    Signed-off-by: Lv Zheng
    Signed-off-by: Bob Moore
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • Pull staging driver updates from Greg KH:
    "Here's the big staging driver patchset for 4.1-rc1.

    There's a lot of patches here, the Outreachy application period
    happened during this development cycle, so that means that there was a
    lot of cleanup patches accepted. Other than the normal coding style
    and sparse fixes here, there are some driver updates and work toward
    making some of the drivers into "mergable" shape (like the Unisys
    drivers.)

    All of these have been in linux-next for a while"

    * tag 'staging-4.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (1214 commits)
    staging: lustre: orthography & coding style
    staging: lustre: lnet: lnet: fix error return code
    staging: lustre: fix sparse warning
    Revert "Staging: sm750fb: Fix C99 Comments"
    Staging: rtl8192u: use correct array for debug output
    staging: rtl8192e: Remove dead code
    staging: rtl8192e: Comment cleanup (style/format)
    staging: rtl8192e: Fix indentation in rtllib_rx_auth_resp()
    staging: rtl8192e: Decrease nesting of rtllib_rx_auth_resp()
    staging: rtl8192e: Divide rtllib_rx_auth()
    staging: rtl8192e: Fix PRINTK_WITHOUT_KERN_LEVEL warnings
    staging: rtl8192e: Fix DO_WHILE_MACRO_WITH_TRAILING_SEMICOLON warning
    staging: rtl8192e: Fix BRACES warning
    staging: rtl8192e: Fix LINE_CONTINUATIONS warning
    staging: rtl8192e: Fix UNNECESSARY_PARENTHESES warnings
    staging: rtl8192e: remove unused EXPORT_SYMBOL_RSL macro
    staging: rtl8192e: Fix RETURN_VOID warnings
    staging: rtl8192e: Fix UNNECESSARY_ELSE warning
    staging: rtl8723au: Remove unneeded comments
    staging: rtl8723au: Use __func__ in trace logs
    ...

    Linus Torvalds
     
  • The first argument passed to find_probe_point_lazy() should be CU die,
    which will be passed to die_walk_lines() when lazy_line matches.
    Currently, when we probe with lazy_line pattern to file without function
    name, NULL pointer is passed and causes a segment fault.

    Can be reproduced as following:

    $ perf probe -k vmlinux --add='fs/super.c;s->s_count=1;'
    [ 1958.984658] perf[1020]: segfault at 10 ip 00007fc6e10d8c71 sp
    00007ffcbfaaf900 error 4 in libdw-0.161.so[7fc6e10ce000+34000]
    Segmentation fault

    After this patch:

    $ perf probe -k vmlinux --add='fs/super.c;s->s_count=1;'
    Added new event:
    probe:_stext (on @fs/super.c)

    You can now use it in all perf tools, such as:
    perf record -e probe:_stext -aR sleep 1

    Signed-off-by: He Kuang
    Tested-by: Arnaldo Carvalho de Melo
    Acked-by: Masami Hiramatsu
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Wang Nan
    Link: http://lkml.kernel.org/r/1428925290-5623-3-git-send-email-hekuang@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo

    He Kuang
     
  • If we use lazy matching, it failed to open a souce file if perf command
    is invoked outside of compilation directory:

    $ perf probe -a '__schedule;clear_*'
    Failed to open kernel/sched/core.c: No such file or directory
    Error: Failed to add events. (-2)

    OTOH, other commands like "probe -L" can solve the souce directory by
    themselves. Let's make it possible for lazy matching too!

    Signed-off-by: Naohiro Aota
    Acked-by: Masami Hiramatsu
    Cc: He Kuang
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1426223923-1493-1-git-send-email-naota@elisp.net
    Signed-off-by: Arnaldo Carvalho de Melo

    Naohiro Aota
     
  • When perf probe searched in a debuginfo file and failed, it tried with
    an alternative, in function get_alternative_probe_event():

    memcpy(tmp, &pev->point, sizeof(*tmp));
    memset(&pev->point, 0, sizeof(pev->point));

    In this case, it drops the retprobe flag and forgets to set it back in
    find_alternative_probe_point(), so the problem occurs.

    Can be reproduced as following:

    $ perf probe -v -k vmlinux --add='sys_write%return'
    ...
    Added new event:
    Writing event: p:probe/sys_write _stext+1584952
    probe:sys_write (on sys_write%return)

    $ cat /sys/kernel/debug/tracing/kprobe_events
    p:probe/sys_write _stext+1584952

    After this patch:

    $ perf probe -v -k vmlinux --add='sys_write%return'
    Added new event:
    Writing event: r:probe/sys_write SyS_write+0
    probe:sys_write (on sys_write%return)

    $ cat /sys/kernel/debug/tracing/kprobe_events
    r:probe/sys_write SyS_write

    Signed-off-by: He Kuang
    Tested-by: Arnaldo Carvalho de Melo
    Acked-by: Masami Hiramatsu
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Wang Nan
    Link: http://lkml.kernel.org/r/1428925290-5623-1-git-send-email-hekuang@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo

    He Kuang
     
  • Pull x86 asm changes from Ingo Molnar:
    "There were lots of changes in this development cycle:

    - over 100 separate cleanups, restructuring changes, speedups and
    fixes in the x86 system call, irq, trap and other entry code, part
    of a heroic effort to deobfuscate a decade old spaghetti asm code
    and its C code dependencies (Denys Vlasenko, Andy Lutomirski)

    - alternatives code fixes and enhancements (Borislav Petkov)

    - simplifications and cleanups to the compat code (Brian Gerst)

    - signal handling fixes and new x86 testcases (Andy Lutomirski)

    - various other fixes and cleanups

    By their nature many of these changes are risky - we tried to test
    them well on many different x86 systems (there are no known
    regressions), and they are split up finely to help bisection - but
    there's still a fair bit of residual risk left so caveat emptor"

    * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (148 commits)
    perf/x86/64: Report regs_user->ax too in get_regs_user()
    perf/x86/64: Simplify regs_user->abi setting code in get_regs_user()
    perf/x86/64: Do report user_regs->cx while we are in syscall, in get_regs_user()
    perf/x86/64: Do not guess user_regs->cs, ss, sp in get_regs_user()
    x86/asm/entry/32: Tidy up JNZ instructions after TESTs
    x86/asm/entry/64: Reduce padding in execve stubs
    x86/asm/entry/64: Remove GET_THREAD_INFO() in ret_from_fork
    x86/asm/entry/64: Simplify jumps in ret_from_fork
    x86/asm/entry/64: Remove a redundant jump
    x86/asm/entry/64: Optimize [v]fork/clone stubs
    x86/asm/entry: Zero EXTRA_REGS for stub32_execve() too
    x86/asm/entry/64: Move stub_x32_execvecloser() to stub_execveat()
    x86/asm/entry/64: Use common code for rt_sigreturn() epilogue
    x86/asm/entry/64: Add forgotten CFI annotation
    x86/asm/entry/irq: Simplify interrupt dispatch table (IDT) layout
    x86/asm/entry/64: Move opportunistic sysret code to syscall code path
    x86, selftests: Add sigreturn selftest
    x86/alternatives: Guard NOPs optimization
    x86/asm/entry: Clear EXTRA_REGS for all executable formats
    x86/signal: Remove pax argument from restore_sigcontext
    ...

    Linus Torvalds
     
  • syntax only.

    The cool kids are now using the phrase "base frequency",
    where in the past we used "max non-turbo frequency" or "TSC frequency".

    This distinction becomes important when a processor has a TSC
    that runs at a different speed than the "base frequency".

    Signed-off-by: Len Brown

    Len Brown
     
  • cosmetic only.

    order the decoding of MSR_PERF_LIMIT_REASONS bits
    from MSB to LSB -- which you notice when more than 1 bit is set
    and you are, say, comparing the output to the documentation...

    Signed-off-by: Len Brown

    Len Brown
     
  • Casual turbostat users generally just want to know MHz.
    So by default, just print enough information to make sense of MHz.

    All the other configuration data and columns for C-states and temperature etc,
    are printed with the --debug option.

    Signed-off-by: Len Brown

    Len Brown
     

13 Apr, 2015

2 commits

  • …/git/shuah/linux-kselftest

    Pull kselftest updates from Shuah Khan:
    "This is a milestone update in a sense. Several new tests and install
    and packaging support is added in this update.

    This update adds install and packaging tools developed on top of
    back-end shared logic enhancemnets to run and install tests. In
    addition several timer tests are added.

    - New timer tests from John Stultz

    - rtc test from Prarit Bhargava

    - Enhancements to un and install tests from Michael Ellerman

    - Install and packaging tools from Shuah Khan

    - Cross-compilation enablement from Tyler Baker

    - A couple of bug fixes"

    * tag 'linux-kselftest-4.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: (42 commits)
    ftracetest: Do not use usleep directly
    selftest/mqueue: enable cross compilation
    selftest/ipc: enable cross compilation
    selftest/memfd: include default header install path
    selftest/mount: enable cross compilation
    selftest/memfd: enable cross compilation
    kselftests: timers: Make set-timer-lat fail more gracefully for !CAP_WAKE_ALARM
    selftests: Change memory on-off-test.sh name to be unique
    selftests: change cpu on-off-test.sh name to be unique
    selftests/mount: Make git ignore all binaries in mount test suite
    kselftests: timers: Reduce default runtime on inconsistency-check and set-timer-lat
    ftracetest: Convert exit -1 to exit $FAIL
    ftracetest: Cope properly with stack tracer not being enabled
    tools, update rtctest.c to verify passage of time
    Documentation, split up rtc.txt into documentation and test file
    selftests: Add tool to generate kselftest tar archive
    selftests: Add kselftest install tool
    selftests: Set CC using CROSS_COMPILE once in lib.mk
    selftests: Add install support for the powerpc tests
    selftests/timers: Use shared logic to run and install tests
    ...

    Linus Torvalds
     
  • The perf kmem command records and analyze kernel memory allocation only
    for SLAB objects. This patch implement a simple page allocator analyzer
    using kmem:mm_page_alloc and kmem:mm_page_free events.

    It adds two new options of --slab and --page. The --slab option is for
    analyzing SLAB allocator and that's what perf kmem currently does.

    The new --page option enables page allocator events and analyze kernel
    memory usage in page unit. Currently, 'stat --alloc' subcommand is
    implemented only.

    If none of these --slab nor --page is specified, --slab is implied.

    First run 'perf kmem record' to generate a suitable perf.data file:

    # perf kmem record --page sleep 5

    Then run 'perf kmem stat' to postprocess the perf.data file:

    # perf kmem stat --page --alloc --line 10

    -------------------------------------------------------------------------------
    PFN | Total alloc (KB) | Hits | Order | Mig.type | GFP flags
    -------------------------------------------------------------------------------
    4045014 | 16 | 1 | 2 | RECLAIM | 00285250
    4143980 | 16 | 1 | 2 | RECLAIM | 00285250
    3938658 | 16 | 1 | 2 | RECLAIM | 00285250
    4045400 | 16 | 1 | 2 | RECLAIM | 00285250
    3568708 | 16 | 1 | 2 | RECLAIM | 00285250
    3729824 | 16 | 1 | 2 | RECLAIM | 00285250
    3657210 | 16 | 1 | 2 | RECLAIM | 00285250
    4120750 | 16 | 1 | 2 | RECLAIM | 00285250
    3678850 | 16 | 1 | 2 | RECLAIM | 00285250
    3693874 | 16 | 1 | 2 | RECLAIM | 00285250
    ... | ... | ... | ... | ... | ...
    -------------------------------------------------------------------------------

    SUMMARY (page allocator)
    ========================
    Total allocation requests : 44,260 [ 177,256 KB ]
    Total free requests : 117 [ 468 KB ]

    Total alloc+freed requests : 49 [ 196 KB ]
    Total alloc-only requests : 44,211 [ 177,060 KB ]
    Total free-only requests : 68 [ 272 KB ]

    Total allocation failures : 0 [ 0 KB ]

    Order Unmovable Reclaimable Movable Reserved CMA/Isolated
    ----- ------------ ------------ ------------ ------------ ------------
    0 32 . 44,210 . .
    1 . . . . .
    2 . 18 . . .
    3 . . . . .
    4 . . . . .
    5 . . . . .
    6 . . . . .
    7 . . . . .
    8 . . . . .
    9 . . . . .
    10 . . . . .

    Signed-off-by: Namhyung Kim
    Tested-by: Arnaldo Carvalho de Melo
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Joonsoo Kim
    Cc: Minchan Kim
    Cc: Peter Zijlstra
    Cc: linux-mm@kvack.org
    Link: http://lkml.kernel.org/r/1428298576-9785-4-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     

11 Apr, 2015

2 commits


10 Apr, 2015

2 commits

  • The data_head and data_tail fields are defined as __u64 in
    linux/perf_event.h, but perf userspace uses int and unsigned int.

    Convert all references to u64 for consistency.

    Signed-off-by: David Ahern
    Acked-by: Peter Zijlstra
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1428420037-26599-1-git-send-email-dsahern@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo

    David Ahern
     
  • To avoid probing in unintended binary, the orphaned -x option must be
    checked and warned.

    Without this patch, following command sets up the probe in the kernel.

    -----
    # perf probe -a strcpy -x ./perf
    Added new event:
    probe:strcpy (on strcpy)

    You can now use it in all perf tools, such as:

    perf record -e probe:strcpy -aR sleep 1
    -----

    But in this case, it seems that the user may want to probe in the perf
    binary. With this patch, perf-probe correctly handles the orphaned -x.

    -----
    # perf probe -a strcpy -x ./perf
    Error: -x/-m must follow the probe definitions.
    ...
    -----

    Reported-by: Jiri Olsa
    Acked-by: Jiri Olsa
    Cc: David Ahern
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20150401102541.17137.75477.stgit@localhost.localdomain
    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu