12 Sep, 2015

2 commits

  • Update the membarrier syscall self-test to match the membarrier
    interface. Extend coverage of the interface. Consider ENOSYS as a
    "SKIP" test, since it is a valid configuration, but does not allow
    testing the system call.

    Signed-off-by: Mathieu Desnoyers
    Cc: Michael Ellerman
    Cc: Pranith Kumar
    Cc: Shuah Khan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mathieu Desnoyers
     
  • Add a self test for the membarrier system call.

    Signed-off-by: Pranith Kumar
    Signed-off-by: Mathieu Desnoyers
    Cc: Michael Ellerman
    Cc: Shuah Khan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pranith Kumar
     

09 Sep, 2015

9 commits

  • Merge second patch-bomb from Andrew Morton:
    "Almost all of the rest of MM. There was an unusually large amount of
    MM material this time"

    * emailed patches from Andrew Morton : (141 commits)
    zpool: remove no-op module init/exit
    mm: zbud: constify the zbud_ops
    mm: zpool: constify the zpool_ops
    mm: swap: zswap: maybe_preload & refactoring
    zram: unify error reporting
    zsmalloc: remove null check from destroy_handle_cache()
    zsmalloc: do not take class lock in zs_shrinker_count()
    zsmalloc: use class->pages_per_zspage
    zsmalloc: consider ZS_ALMOST_FULL as migrate source
    zsmalloc: partial page ordering within a fullness_list
    zsmalloc: use shrinker to trigger auto-compaction
    zsmalloc: account the number of compacted pages
    zsmalloc/zram: introduce zs_pool_stats api
    zsmalloc: cosmetic compaction code adjustments
    zsmalloc: introduce zs_can_compact() function
    zsmalloc: always keep per-class stats
    zsmalloc: drop unused variable `nr_to_migrate'
    mm/memblock.c: fix comment in __next_mem_range()
    mm/page_alloc.c: fix type information of memoryless node
    memory-hotplug: fix comments in zone_spanned_pages_in_node() and zone_spanned_pages_in_node()
    ...

    Linus Torvalds
     
  • …/git/shuah/linux-kselftest

    Pull kselftest update from Shuah Khan:
    "This update adds new zram test and fixes to problems found during
    testing this new zram test. In addition, there are a few bug fixes
    and ksefltest improvement patches from Linaro developers.

    I will send another update later on this week to fix kselftest
    breakage due to commit 2bf9e0ab08c6 ("locking/static_keys: Provide a
    selftest") after the fix soaks in next for a couple of days"

    * tag 'linux-kselftest-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
    selftests/zram: Makefile fix
    selftests/zram: must be run as root
    selftests: breakpoints: fix installing error on the architecture except x86
    selftests: check before install
    selftests/zram: Adding zram tests

    Linus Torvalds
     
  • The hugetlb selftests provide minimal coverage. Have run script point
    people at libhugetlbfs for better regression testing.

    Signed-off-by: Mike Kravetz
    Acked-by: Naoya Horiguchi
    Cc: Joern Engel
    Cc: Davidlohr Bueso
    Cc: David Rientjes
    Cc: Shuah Khan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Kravetz
     
  • This manually reverts 7e50533d4b842 ("selftests: add hugetlbfstest").

    The hugetlbfstest test depends on hugetlb pages being counted in a
    task's rss. This functionality is not in the kernel, so the test will
    always fail. Remove test to avoid confusion.

    Signed-off-by: Mike Kravetz
    Acked-by: Naoya Horiguchi
    Cc: Joern Engel
    Cc: Davidlohr Bueso
    Cc: David Rientjes
    Cc: Shuah Khan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Kravetz
     
  • This patch sets bit 56 in pagemap if this page is mapped only once. It
    allows to detect exclusively used pages without exposing PFN:

    present file exclusive state
    0 0 0 non-present
    1 1 0 file page mapped somewhere else
    1 1 1 file page mapped only here
    1 0 0 anon non-CoWed page (shared with parent/child)
    1 0 1 anon CoWed page (or never forked)

    CoWed pages in (MAP_FILE | MAP_PRIVATE) areas are anon in this context.

    MMap-exclusive bit doesn't reflect potential page-sharing via swapcache:
    page could be mapped once but has several swap-ptes which point to it.
    Application could detect that by swap bit in pagemap entry and touch that
    pte via /proc/pid/mem to get real information.

    See http://lkml.kernel.org/r/CAEVpBa+_RyACkhODZrRvQLs80iy0sqpdrd0AaP_-tgnX3Y9yNQ@mail.gmail.com

    Requested by Mark Williamson.

    [akpm@linux-foundation.org: fix spello]
    Signed-off-by: Konstantin Khlebnikov
    Reviewed-by: Mark Williamson
    Tested-by: Mark Williamson
    Reviewed-by: Naoya Horiguchi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Konstantin Khlebnikov
     
  • This patch removes page-shift bits (scheduled to remove since 3.11) and
    completes migration to the new bit layout. Also it cleans messy macro.

    Signed-off-by: Konstantin Khlebnikov
    Reviewed-by: Naoya Horiguchi
    Cc: Mark Williamson
    Tested-by: Mark Williamson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Konstantin Khlebnikov
     
  • On 32-bit:

    userfaultfd.c: In function 'locking_thread':
    userfaultfd.c:152: warning: left shift count >= width of type
    userfaultfd.c: In function 'uffd_poll_thread':
    userfaultfd.c:295: warning: cast to pointer from integer of different size
    userfaultfd.c: In function 'uffd_read_thread':
    userfaultfd.c:332: warning: cast to pointer from integer of different size

    Fix the shift warning by splitting the shift in two parts, and the
    integer/pointer warnigns by adding intermediate casts to "unsigned long".

    Signed-off-by: Geert Uytterhoeven
    Cc: Andrea Arcangeli
    Cc: Shuah Khan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     
  • Pull libnvdimm updates from Dan Williams:
    "This update has successfully completed a 0day-kbuild run and has
    appeared in a linux-next release. The changes outside of the typical
    drivers/nvdimm/ and drivers/acpi/nfit.[ch] paths are related to the
    removal of IORESOURCE_CACHEABLE, the introduction of memremap(), and
    the introduction of ZONE_DEVICE + devm_memremap_pages().

    Summary:

    - Introduce ZONE_DEVICE and devm_memremap_pages() as a generic
    mechanism for adding device-driver-discovered memory regions to the
    kernel's direct map.

    This facility is used by the pmem driver to enable pfn_to_page()
    operations on the page frames returned by DAX ('direct_access' in
    'struct block_device_operations').

    For now, the 'memmap' allocation for these "device" pages comes
    from "System RAM". Support for allocating the memmap from device
    memory will arrive in a later kernel.

    - Introduce memremap() to replace usages of ioremap_cache() and
    ioremap_wt(). memremap() drops the __iomem annotation for these
    mappings to memory that do not have i/o side effects. The
    replacement of ioremap_cache() with memremap() is limited to the
    pmem driver to ease merging the api change in v4.3.

    Completion of the conversion is targeted for v4.4.

    - Similar to the usage of memcpy_to_pmem() + wmb_pmem() in the pmem
    driver, update the VFS DAX implementation and PMEM api to provide
    persistence guarantees for kernel operations on a DAX mapping.

    - Convert the ACPI NFIT 'BLK' driver to map the block apertures as
    cacheable to improve performance.

    - Miscellaneous updates and fixes to libnvdimm including support for
    issuing "address range scrub" commands, clarifying the optimal
    'sector size' of pmem devices, a clarification of the usage of the
    ACPI '_STA' (status) property for DIMM devices, and other minor
    fixes"

    * tag 'libnvdimm-for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (34 commits)
    libnvdimm, pmem: direct map legacy pmem by default
    libnvdimm, pmem: 'struct page' for pmem
    libnvdimm, pfn: 'struct page' provider infrastructure
    x86, pmem: clarify that ARCH_HAS_PMEM_API implies PMEM mapped WB
    add devm_memremap_pages
    mm: ZONE_DEVICE for "device memory"
    mm: move __phys_to_pfn and __pfn_to_phys to asm/generic/memory_model.h
    dax: drop size parameter to ->direct_access()
    nd_blk: change aperture mapping from WC to WB
    nvdimm: change to use generic kvfree()
    pmem, dax: have direct_access use __pmem annotation
    dax: update I/O path to do proper PMEM flushing
    pmem: add copy_from_iter_pmem() and clear_pmem()
    pmem, x86: clean up conditional pmem includes
    pmem: remove layer when calling arch_has_wmb_pmem()
    pmem, x86: move x86 PMEM API to new pmem.h header
    libnvdimm, e820: make CONFIG_X86_PMEM_LEGACY a tristate option
    pmem: switch to devm_ allocations
    devres: add devm_memremap
    libnvdimm, btt: write and validate parent_uuid
    ...

    Linus Torvalds
     
  • It changed as result of other syscalls, and while the system call list
    itself was correctly updated, the selftest program was not.

    Signed-off-by: Andrea Arcangeli
    Cc: Andrew Morton
    Cc: Stephen Rothwell
    Cc: Thomas Gleixner
    Cc: Andy Lutomirski
    Signed-off-by: Linus Torvalds

    Andrea Arcangeli
     

05 Sep, 2015

2 commits

  • This test allocates two virtual areas and bounces the physical memory
    across the two virtual areas using only userfaultfd.

    Signed-off-by: Andrea Arcangeli
    Cc: Pavel Emelyanov
    Cc: Dave Hansen
    Cc: Linus Torvalds
    Cc: Shuah Khan
    Cc: Shuah Khan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrea Arcangeli
     
  • This test focuses on ambient capabilities. It requires either root or
    the ability to create user namespaces. Some of the test cases will be
    skipped for nonroot users.

    Signed-off-by: Andy Lutomirski
    Acked-by: Kees Cook
    Cc: Christoph Lameter # Original author
    Cc: Serge E. Hallyn
    Cc: James Morris
    Cc: Shuah Khan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Lutomirski
     

04 Sep, 2015

3 commits

  • Pull powerpc updates from Michael Ellerman:

    - support "hybrid" iommu/direct DMA ops for coherent_mask < dma_mask
    from Benjamin Herrenschmidt

    - EEH fixes for SRIOV from Gavin

    - introduce rtas_get_sensor_fast() for IRQ handlers from Thomas Huth

    - use hardware RNG for arch_get_random_seed_* not arch_get_random_*
    from Paul Mackerras

    - seccomp filter support from Michael Ellerman

    - opal_cec_reboot2() handling for HMIs & machine checks from Mahesh
    Salgaonkar

    - add powerpc timebase as a trace clock source from Naveen N. Rao

    - misc cleanups in the xmon, signal & SLB code from Anshuman Khandual

    - add an inline function to update POWER8 HID0 from Gautham R. Shenoy

    - fix pte_pagesize_index() crash on 4K w/64K hash from Michael Ellerman

    - drop support for 64K local store on 4K kernels from Michael Ellerman

    - move dma_get_required_mask() from pnv_phb to pci_controller_ops from
    Andrew Donnellan

    - initialize distance lookup table from drconf path from Nikunj A
    Dadhania

    - enable RTC class support from Vaibhav Jain

    - disable automatically blocked PCI config from Gavin Shan

    - add LEDs driver for PowerNV platform from Vasant Hegde

    - fix endianness issues in the HVSI driver from Laurent Dufour

    - kexec endian fixes from Samuel Mendoza-Jonas

    - fix corrupted pdn list from Gavin Shan

    - fix fenced PHB caused by eeh_slot_error_detail() from Gavin Shan

    - Freescale updates from Scott: Highlights include 32-bit memcpy/memset
    optimizations, checksum optimizations, 85xx config fragments and
    updates, device tree updates, e6500 fixes for non-SMP, and misc
    cleanup and minor fixes.

    - a ton of cxl updates & fixes:
    - add explicit precision specifiers from Rasmus Villemoes
    - use more common format specifier from Rasmus Villemoes
    - destroy cxl_adapter_idr on module_exit from Johannes Thumshirn
    - destroy afu->contexts_idr on release of an afu from Johannes
    Thumshirn
    - compile with -Werror from Daniel Axtens
    - EEH support from Daniel Axtens
    - plug irq_bitmap getting leaked in cxl_context from Vaibhav Jain
    - add alternate MMIO error handling from Ian Munsie
    - allow release of contexts which have been OPENED but not STARTED
    from Andrew Donnellan
    - remove use of macro DEFINE_PCI_DEVICE_TABLE from Vaishali Thakkar
    - release irqs if memory allocation fails from Vaibhav Jain
    - remove racy attempt to force EEH invocation in reset from Daniel
    Axtens
    - fix + cleanup error paths in cxl_dev_context_init from Ian Munsie
    - fix force unmapping mmaps of contexts allocated through the kernel
    api from Ian Munsie
    - set up and enable PSL Timebase from Philippe Bergheaud

    * tag 'powerpc-4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (140 commits)
    cxl: Set up and enable PSL Timebase
    cxl: Fix force unmapping mmaps of contexts allocated through the kernel api
    cxl: Fix + cleanup error paths in cxl_dev_context_init
    powerpc/eeh: Fix fenced PHB caused by eeh_slot_error_detail()
    powerpc/pseries: Cleanup on pci_dn_reconfig_notifier()
    powerpc/pseries: Fix corrupted pdn list
    powerpc/powernv: Enable LEDS support
    powerpc/iommu: Set default DMA offset in dma_dev_setup
    cxl: Remove racy attempt to force EEH invocation in reset
    cxl: Release irqs if memory allocation fails
    cxl: Remove use of macro DEFINE_PCI_DEVICE_TABLE
    powerpc/powernv: Fix mis-merge of OPAL support for LEDS driver
    powerpc/powernv: Reset HILE before kexec_sequence()
    powerpc/kexec: Reset secondary cpu endianness before kexec
    powerpc/hvsi: Fix endianness issues in the HVSI driver
    leds/powernv: Add driver for PowerNV platform
    powerpc/powernv: Create LED platform device
    powerpc/powernv: Add OPAL interfaces for accessing and modifying system LED states
    powerpc/powernv: Fix the log message when disabling VF
    cxl: Allow release of contexts which have been OPENED but not STARTED
    ...

    Linus Torvalds
     
  • Pull perf fixes from Ingo Molnar:
    "Tooling fixes plus a handful of late arriving tooling changes"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    perf tools: Fix link time error with sample_reg_masks on non x86
    perf build: Fix Intel PT instruction decoder dependency problem
    perf dwarf: Fix potential array out of bounds access
    perf record: Add ability to name registers to record
    perf/x86: Add list of register names
    perf script: Enable printing of interrupted machine state
    perf evlist: Open event on evsel cpus and threads
    bpf tools: New API to get name from a BPF object
    perf tools: Fix build on powerpc broken by pt/bts

    Linus Torvalds
     
  • Pull locking and atomic updates from Ingo Molnar:
    "Main changes in this cycle are:

    - Extend atomic primitives with coherent logic op primitives
    (atomic_{or,and,xor}()) and deprecate the old partial APIs
    (atomic_{set,clear}_mask())

    The old ops were incoherent with incompatible signatures across
    architectures and with incomplete support. Now every architecture
    supports the primitives consistently (by Peter Zijlstra)

    - Generic support for 'relaxed atomics':

    - _acquire/release/relaxed() flavours of xchg(), cmpxchg() and {add,sub}_return()
    - atomic_read_acquire()
    - atomic_set_release()

    This came out of porting qwrlock code to arm64 (by Will Deacon)

    - Clean up the fragile static_key APIs that were causing repeat bugs,
    by introducing a new one:

    DEFINE_STATIC_KEY_TRUE(name);
    DEFINE_STATIC_KEY_FALSE(name);

    which define a key of different types with an initial true/false
    value.

    Then allow:

    static_branch_likely()
    static_branch_unlikely()

    to take a key of either type and emit the right instruction for the
    case. To be able to know the 'type' of the static key we encode it
    in the jump entry (by Peter Zijlstra)

    - Static key self-tests (by Jason Baron)

    - qrwlock optimizations (by Waiman Long)

    - small futex enhancements (by Davidlohr Bueso)

    - ... and misc other changes"

    * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (63 commits)
    jump_label/x86: Work around asm build bug on older/backported GCCs
    locking, ARM, atomics: Define our SMP atomics in terms of _relaxed() operations
    locking, include/llist: Use linux/atomic.h instead of asm/cmpxchg.h
    locking/qrwlock: Make use of _{acquire|release|relaxed}() atomics
    locking/qrwlock: Implement queue_write_unlock() using smp_store_release()
    locking/lockref: Remove homebrew cmpxchg64_relaxed() macro definition
    locking, asm-generic: Add _{relaxed|acquire|release}() variants for 'atomic_long_t'
    locking, asm-generic: Rework atomic-long.h to avoid bulk code duplication
    locking/atomics: Add _{acquire|release|relaxed}() variants of some atomic operations
    locking, compiler.h: Cast away attributes in the WRITE_ONCE() magic
    locking/static_keys: Make verify_keys() static
    jump label, locking/static_keys: Update docs
    locking/static_keys: Provide a selftest
    jump_label: Provide a self-test
    s390/uaccess, locking/static_keys: employ static_branch_likely()
    x86, tsc, locking/static_keys: Employ static_branch_likely()
    locking/static_keys: Add selftest
    locking/static_keys: Add a new static_key interface
    locking/static_keys: Rework update logic
    locking/static_keys: Add static_key_{en,dis}able() helpers
    ...

    Linus Torvalds
     

03 Sep, 2015

1 commit

  • Pull networking updates from David Miller:
    "Another merge window, another set of networking changes. I've heard
    rumblings that the lightweight tunnels infrastructure has been voted
    networking change of the year. But what do I know?

    1) Add conntrack support to openvswitch, from Joe Stringer.

    2) Initial support for VRF (Virtual Routing and Forwarding), which
    allows the segmentation of routing paths without using multiple
    devices. There are some semantic kinks to work out still, but
    this is a reasonably strong foundation. From David Ahern.

    3) Remove spinlock fro act_bpf fast path, from Alexei Starovoitov.

    4) Ignore route nexthops with a link down state in ipv6, just like
    ipv4. From Andy Gospodarek.

    5) Remove spinlock from fast path of act_gact and act_mirred, from
    Eric Dumazet.

    6) Document the DSA layer, from Florian Fainelli.

    7) Add netconsole support to bcmgenet, systemport, and DSA. Also
    from Florian Fainelli.

    8) Add Mellanox Switch Driver and core infrastructure, from Jiri
    Pirko.

    9) Add support for "light weight tunnels", which allow for
    encapsulation and decapsulation without bearing the overhead of a
    full blown netdevice. From Thomas Graf, Jiri Benc, and a cast of
    others.

    10) Add Identifier Locator Addressing support for ipv6, from Tom
    Herbert.

    11) Support fragmented SKBs in iwlwifi, from Johannes Berg.

    12) Allow perf PMUs to be accessed from eBPF programs, from Kaixu Xia.

    13) Add BQL support to 3c59x driver, from Loganaden Velvindron.

    14) Stop using a zero TX queue length to mean that a device shouldn't
    have a qdisc attached, use an explicit flag instead. From Phil
    Sutter.

    15) Use generic geneve netdevice infrastructure in openvswitch, from
    Pravin B Shelar.

    16) Add infrastructure to avoid re-forwarding a packet in software
    that was already forwarded by a hardware switch. From Scott
    Feldman.

    17) Allow AF_PACKET fanout function to be implemented in a bpf
    program, from Willem de Bruijn"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1458 commits)
    netfilter: nf_conntrack: make nf_ct_zone_dflt built-in
    netfilter: nf_dup{4, 6}: fix build error when nf_conntrack disabled
    net: fec: clear receive interrupts before processing a packet
    ipv6: fix exthdrs offload registration in out_rt path
    xen-netback: add support for multicast control
    bgmac: Update fixed_phy_register()
    sock, diag: fix panic in sock_diag_put_filterinfo
    flow_dissector: Use 'const' where possible.
    flow_dissector: Fix function argument ordering dependency
    ixgbe: Resolve "initialized field overwritten" warnings
    ixgbe: Remove bimodal SR-IOV disabling
    ixgbe: Add support for reporting 2.5G link speed
    ixgbe: fix bounds checking in ixgbe_setup_tc for 82598
    ixgbe: support for ethtool set_rxfh
    ixgbe: Avoid needless PHY access on copper phys
    ixgbe: cleanup to use cached mask value
    ixgbe: Remove second instance of lan_id variable
    ixgbe: use kzalloc for allocating one thing
    flow: Move __get_hash_from_flowi{4,6} into flow_dissector.c
    ixgbe: Remove unused PCI bus types
    ...

    Linus Torvalds
     

02 Sep, 2015

6 commits

  • Pull power management and ACPI updates from Rafael Wysocki:
    "From the number of commits perspective, the biggest items are ACPICA
    and cpufreq changes with the latter taking the lead (over 50 commits).

    On the cpufreq front, there are many cleanups and minor fixes in the
    core and governors, driver updates etc. We also have a new cpufreq
    driver for Mediatek MT8173 chips.

    ACPICA mostly updates its debug infrastructure and adds a number of
    fixes and cleanups for a good measure.

    The Operating Performance Points (OPP) framework is updated with new
    DT bindings and support for them among other things.

    We have a few updates of the generic power domains framework and a
    reorganization of the ACPI device enumeration code and bus type
    operations.

    And a lot of fixes and cleanups all over.

    Included is one branch from the MFD tree as it contains some
    PM-related driver core and ACPI PM changes a few other commits are
    based on.

    Specifics:

    - ACPICA update to upstream revision 20150818 including method
    tracing extensions to allow more in-depth AML debugging in the
    kernel and a number of assorted fixes and cleanups (Bob Moore, Lv
    Zheng, Markus Elfring).

    - ACPI sysfs code updates and a documentation update related to AML
    method tracing (Lv Zheng).

    - ACPI EC driver fix related to serialized evaluations of _Qxx
    methods and ACPI tools updates allowing the EC userspace tool to be
    built from the kernel source (Lv Zheng).

    - ACPI processor driver updates preparing it for future introduction
    of CPPC support and ACPI PCC mailbox driver updates (Ashwin
    Chaugule).

    - ACPI interrupts enumeration fix for a regression related to the
    handling of IRQ attribute conflicts between MADT and the ACPI
    namespace (Jiang Liu).

    - Fixes related to ACPI device PM (Mika Westerberg, Srinidhi
    Kasagar).

    - ACPI device registration code reorganization to separate the
    sysfs-related code and bus type operations from the rest (Rafael J
    Wysocki).

    - Assorted cleanups in the ACPI core (Jarkko Nikula, Mathias Krause,
    Andy Shevchenko, Rafael J Wysocki, Nicolas Iooss).

    - ACPI cpufreq driver and ia64 cpufreq driver fixes and cleanups (Pan
    Xinhui, Rafael J Wysocki).

    - cpufreq core cleanups on top of the previous changes allowing it to
    preseve its sysfs directories over system suspend/resume (Viresh
    Kumar, Rafael J Wysocki, Sebastian Andrzej Siewior).

    - cpufreq fixes and cleanups related to governors (Viresh Kumar).

    - cpufreq updates (core and the cpufreq-dt driver) related to the
    turbo/boost mode support (Viresh Kumar, Bartlomiej Zolnierkiewicz).

    - New DT bindings for Operating Performance Points (OPP), support for
    them in the OPP framework and in the cpufreq-dt driver plus related
    OPP framework fixes and cleanups (Viresh Kumar).

    - cpufreq powernv driver updates (Shilpasri G Bhat).

    - New cpufreq driver for Mediatek MT8173 (Pi-Cheng Chen).

    - Assorted cpufreq driver (speedstep-lib, sfi, integrator) cleanups
    and fixes (Abhilash Jindal, Andrzej Hajda, Cristian Ardelean).

    - intel_pstate driver updates including Skylake-S support, support
    for enabling HW P-states per CPU and an additional vendor bypass
    list entry (Kristen Carlson Accardi, Chen Yu, Ethan Zhao).

    - cpuidle core fixes related to the handling of coupled idle states
    (Xunlei Pang).

    - intel_idle driver updates including Skylake Client support and
    support for freeze-mode-specific idle states (Len Brown).

    - Driver core updates related to power management (Andy Shevchenko,
    Rafael J Wysocki).

    - Generic power domains framework fixes and cleanups (Jon Hunter,
    Geert Uytterhoeven, Rajendra Nayak, Ulf Hansson).

    - Device PM QoS framework update to allow the latency tolerance
    setting to be exposed to user space via sysfs (Mika Westerberg).

    - devfreq support for PPMUv2 in Exynos5433 and a fix for an incorrect
    exynos-ppmu DT binding (Chanwoo Choi, Javier Martinez Canillas).

    - System sleep support updates (Alan Stern, Len Brown, SungEun Kim).

    - rockchip-io AVS support updates (Heiko Stuebner).

    - PM core clocks support fixup (Colin Ian King).

    - Power capping RAPL driver update including support for Skylake H/S
    and Broadwell-H (Radivoje Jovanovic, Seiichi Ikarashi).

    - Generic device properties framework fixes related to the handling
    of static (driver-provided) property sets (Andy Shevchenko).

    - turbostat and cpupower updates (Len Brown, Shilpasri G Bhat,
    Shreyas B Prabhu)"

    * tag 'pm+acpi-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (180 commits)
    cpufreq: speedstep-lib: Use monotonic clock
    cpufreq: powernv: Increase the verbosity of OCC console messages
    cpufreq: sfi: use kmemdup rather than duplicating its implementation
    cpufreq: drop !cpufreq_driver check from cpufreq_parse_governor()
    cpufreq: rename cpufreq_real_policy as cpufreq_user_policy
    cpufreq: remove redundant 'policy' field from user_policy
    cpufreq: remove redundant 'governor' field from user_policy
    cpufreq: update user_policy.* on success
    cpufreq: use memcpy() to copy policy
    cpufreq: remove redundant CPUFREQ_INCOMPATIBLE notifier event
    cpufreq: mediatek: Add MT8173 cpufreq driver
    dt-bindings: mediatek: Add MT8173 CPU DVFS clock bindings
    PM / Domains: Fix typo in description of genpd_dev_pm_detach()
    PM / Domains: Remove unusable governor dummies
    PM / Domains: Make pm_genpd_init() available to modules
    PM / domains: Align column headers and data in pm_genpd_summary output
    powercap / RAPL: disable the 2nd power limit properly
    tools: cpupower: Fix error when running cpupower monitor
    PM / OPP: Drop unlikely before IS_ERR(_OR_NULL)
    PM / OPP: Fix static checker warning (broken 64bit big endian systems)
    ...

    Linus Torvalds
     
  • Pull x86 apic updates from Thomas Gleixner:
    "This udpate contains:

    - rework the irq vector array to store a pointer to the irq
    descriptor instead of the irq number to avoid a lookup of the irq
    descriptor in the irq entry path

    - lguest interrupt handling cleanups

    - conversion of the local apic timer to the new clockevent callbacks

    - preparatory changes for the irq argument removal of interrupt flow
    handlers"

    * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/irq: Do not dereference irq descriptor before checking it
    tools/lguest: Clean up include dir
    tools/lguest: Fix redefinition of struct virtio_pci_cfg_cap
    x86/irq: Store irq descriptor in vector array
    genirq: Provide irq_desc_has_action
    x86/irq: Get rid of an indentation level
    x86/irq: Rename VECTOR_UNDEFINED to VECTOR_UNUSED
    x86/irq: Replace numeric constant
    x86/irq: Protect smp_cleanup_move
    x86/lguest: Do not setup unused irq vectors
    x86/lguest: Clean up lguest_setup_irq
    x86/apic: Drop local_irq_save/restore in timer callbacks
    x86/apic: Migrate apic timer to new set_state interface
    x86/irq: Use access helper irq_data_get_affinity_mask()
    x86/irq: Use accessor irq_data_get_irq_handler_data()
    x86/irq: Use accessor irq_data_get_node()

    Linus Torvalds
     
  • Do not override run_tests, The default rule will just run TEST_PROGS

    Signed-off-by: Naresh Kamboju
    Acked-by: Michael Ellerman
    Signed-off-by: Shuah Khan

    Naresh Kamboju
     
  • Adding new functionality check_prereqs() to check test must be run as root

    Signed-off-by: Naresh Kamboju
    Signed-off-by: Shuah Khan

    Naresh Kamboju
     
  • This patch makes perf compile on non x86 platforms by defining a weak
    symbol for sample_reg_masks[] in util/perf_regs.c.

    The patch also moves the REG() and REG_END() macros into the
    util/per_regs.h header file. The macros are renamed to
    SMPL_REG/SMPL_REG_END to avoid clashes with other header files.

    Signed-off-by: Stephane Eranian
    Acked-by: Jiri Olsa
    Cc: Adrian Hunter
    Cc: Andi Kleen
    Cc: David Ahern
    Cc: Kan Liang
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1441099814-26783-1-git-send-email-eranian@google.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Stephane Eranian
     
  • I hit following building error randomly:

    ...
    /bin/sh: /path/to/kernel/buildperf/util/intel-pt-decoder/inat-tables.c: No such file or directory
    ...
    LINK /path/to/kernel/buildperf/plugin_mac80211.so
    LINK /path/to/kernel/buildperf/plugin_kmem.so
    LINK /path/to/kernel/buildperf/plugin_xen.so
    LINK /path/to/kernel/buildperf/plugin_hrtimer.so
    In file included from util/intel-pt-decoder/intel-pt-insn-decoder.c:25:0:
    util/intel-pt-decoder/inat.c:24:25: fatal error: inat-tables.c: No such file or directory
    #include "inat-tables.c"
    ^
    compilation terminated.
    make[4]: *** [/path/to/kernel/buildperf/util/intel-pt-decoder/intel-pt-insn-decoder.o] Error 1
    make[4]: *** Waiting for unfinished jobs....
    LINK /path/to/kernel/buildperf/plugin_function.so

    This is caused by tools/perf/util/intel-pt-decoder/Build that, it tries
    to generate $(OUTPUT)util/intel-pt-decoder/inat-tables.c atomatically
    but forget to ensure the existance of $(OUTPUT)util/intel-pt-decoder
    directory.

    This patch fixes it by adding $(call rule_mkdir) like other similar rules.

    Signed-off-by: Wang Nan
    Acked-by: Adrian Hunter
    Acked-by: Jiri Olsa
    Cc: Zefan Li
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1441087005-107540-1-git-send-email-wangnan0@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Wang Nan
     

01 Sep, 2015

16 commits

  • Pull x86 asm changes from Ingo Molnar:
    "The biggest changes in this cycle were:

    - Revamp, simplify (and in some cases fix) Time Stamp Counter (TSC)
    primitives. (Andy Lutomirski)

    - Add new, comprehensible entry and exit handlers written in C.
    (Andy Lutomirski)

    - vm86 mode cleanups and fixes. (Brian Gerst)

    - 32-bit compat code cleanups. (Brian Gerst)

    The amount of simplification in low level assembly code is already
    palpable:

    arch/x86/entry/entry_32.S | 130 +----
    arch/x86/entry/entry_64.S | 197 ++-----

    but more simplifications are planned.

    There's also the usual laudry mix of low level changes - see the
    changelog for details"

    * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (83 commits)
    x86/asm: Drop repeated macro of X86_EFLAGS_AC definition
    x86/asm/msr: Make wrmsrl() a function
    x86/asm/delay: Introduce an MWAITX-based delay with a configurable timer
    x86/asm: Add MONITORX/MWAITX instruction support
    x86/traps: Weaken context tracking entry assertions
    x86/asm/tsc: Add rdtscll() merge helper
    selftests/x86: Add syscall_nt selftest
    selftests/x86: Disable sigreturn_64
    x86/vdso: Emit a GNU hash
    x86/entry: Remove do_notify_resume(), syscall_trace_leave(), and their TIF masks
    x86/entry/32: Migrate to C exit path
    x86/entry/32: Remove 32-bit syscall audit optimizations
    x86/vm86: Rename vm86->v86flags and v86mask
    x86/vm86: Rename vm86->vm86_info to user_vm86
    x86/vm86: Clean up vm86.h includes
    x86/vm86: Move the vm86 IRQ definitions to vm86.h
    x86/vm86: Use the normal pt_regs area for vm86
    x86/vm86: Eliminate 'struct kernel_vm86_struct'
    x86/vm86: Move fields from 'struct kernel_vm86_struct' to 'struct vm86'
    x86/vm86: Move vm86 fields out of 'thread_struct'
    ...

    Linus Torvalds
     
  • There is a problem in the dwarf-regs.c files for sh, sparc and x86 where
    it is possible to make an out-of-bounds array access when searching for
    register names.

    This patch fixes it by replacing '
    Reviewed-by: Matt Fleming
    Acked-by: Jiri Olsa
    Acked-by: Masami Hiramatsu
    Cc: David S. Miller
    Cc: Zefan Li
    Cc: pi3orama@huawei.com
    Link: http://lkml.kernel.org/r/1441078184-105038-1-git-send-email-wangnan0@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Wang Nan
     
  • * pm-tools:
    tools: cpupower: Fix error when running cpupower monitor
    tools/power turbostat: fix typo on DRAM column in Joules-mode
    cpupower: Do not change the frequency of offline cpu
    tools/power turbostat: fix parameter passing for forked command
    tools/power turbostat: dump CONFIG_TDP
    tools/power turbostat: cpu0 is no longer hard-coded, so update output
    tools/power turbostat: update turbostat(8)

    * powercap:
    powercap / RAPL: disable the 2nd power limit properly
    powercap / RAPL: Add support for Broadwell-H
    powercap / RAPL: Add support for Skylake H/S

    Rafael J. Wysocki
     
  • …/acme/linux into perf/urgent

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

    User visible changes:

    - Add ability to specify to select which registers to record,
    to reduce the size of perf.data files, and also allow printing
    the registers in 'perf script': (Stephane Eranian)

    # perf record --intr-regs=AX,SP usleep 1
    [ perf record: Woken up 1 times to write data ]
    [ perf record: Captured and wrote 0.016 MB perf.data (8 samples) ]
    # perf script -F ip,sym,iregs | tail -5
    ffffffff8105f42a native_write_msr_safe AX:0xf SP:0xffff8802629c3c00
    ffffffff8105f42a native_write_msr_safe AX:0xf SP:0xffff8802629c3c00
    ffffffff81761ac0 _raw_spin_lock AX:0xffff8801bfcf8020 SP:0xffff8802629c3ce8
    ffffffff81202bf8 __vma_adjust_trans_huge AX:0x7ffc75200000 SP:0xffff8802629c3b30
    ffffffff8122b089 dput AX:0x101 SP:0xffff8802629c3c78
    #

    Infrastructure changes:

    - Open event on evsel cpus and threads. (Kan Liang)

    - Add new bpf API to get name from a BPF object. (Wang Nan)

    Build fixes:

    - Fix build on powerpc broken by pt/bts. (Adrian Hunter)

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

    Ingo Molnar
     
  • Pull perf updates from Ingo Molnar:
    "Main perf kernel side changes:

    - uprobes updates/fixes. (Oleg Nesterov)

    - Add PERF_RECORD_SWITCH to indicate context switches and use it in
    tooling. (Adrian Hunter)

    - Support BPF programs attached to uprobes and first steps for BPF
    tooling support. (Wang Nan)

    - x86 generic x86 MSR-to-perf PMU driver. (Andy Lutomirski)

    - x86 Intel PT, LBR and BTS updates. (Alexander Shishkin)

    - x86 Intel Skylake support. (Andi Kleen)

    - x86 Intel Knights Landing (KNL) RAPL support. (Dasaratharaman
    Chandramouli)

    - x86 Intel Broadwell-DE uncore support. (Kan Liang)

    - x86 hw breakpoints robustization (Andy Lutomirski)

    Main perf tooling side changes:

    - Support Intel PT in several tools, enabling the use of the
    processor trace feature introduced in Intel Broadwell processors:
    (Adrian Hunter)

    # dmesg | grep Performance
    # [0.188477] Performance Events: PEBS fmt2+, 16-deep LBR, Broadwell events, full-width counters, Intel PMU driver.
    # perf record -e intel_pt//u -a sleep 1
    [ perf record: Woken up 1 times to write data ]
    [ perf record: Captured and wrote 0.216 MB perf.data ]
    # perf script # then navigate in the tool output to some area, like this one:
    184 1030 dl_main (/usr/lib64/ld-2.17.so) => 7f21ba661440 dl_main (/usr/lib64/ld-2.17.so)
    185 1457 dl_main (/usr/lib64/ld-2.17.so) => 7f21ba669f10 _dl_new_object (/usr/lib64/ld-2.17.so)
    186 9f37 _dl_new_object (/usr/lib64/ld-2.17.so) => 7f21ba677b90 strlen (/usr/lib64/ld-2.17.so)
    187 7ba3 strlen (/usr/lib64/ld-2.17.so) => 7f21ba677c75 strlen (/usr/lib64/ld-2.17.so)
    188 7c78 strlen (/usr/lib64/ld-2.17.so) => 7f21ba669f3c _dl_new_object (/usr/lib64/ld-2.17.so)
    189 9f8a _dl_new_object (/usr/lib64/ld-2.17.so) => 7f21ba65fab0 calloc@plt (/usr/lib64/ld-2.17.so)
    190 fab0 calloc@plt (/usr/lib64/ld-2.17.so) => 7f21ba675e70 calloc (/usr/lib64/ld-2.17.so)
    191 5e87 calloc (/usr/lib64/ld-2.17.so) => 7f21ba65fa90 malloc@plt (/usr/lib64/ld-2.17.so)
    192 fa90 malloc@plt (/usr/lib64/ld-2.17.so) => 7f21ba675e60 malloc (/usr/lib64/ld-2.17.so)
    193 5e68 malloc (/usr/lib64/ld-2.17.so) => 7f21ba65fa80 __libc_memalign@plt (/usr/lib64/ld-2.17.so)
    194 fa80 __libc_memalign@plt (/usr/lib64/ld-2.17.so) => 7f21ba675d50 __libc_memalign (/usr/lib64/ld-2.17.so)
    195 5d63 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675e20 __libc_memalign (/usr/lib64/ld-2.17.so)
    196 5e40 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675d73 __libc_memalign (/usr/lib64/ld-2.17.so)
    197 5d97 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675e18 __libc_memalign (/usr/lib64/ld-2.17.so)
    198 5e1e __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675df9 __libc_memalign (/usr/lib64/ld-2.17.so)
    199 5e10 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba669f8f _dl_new_object (/usr/lib64/ld-2.17.so)
    200 9fc2 _dl_new_object (/usr/lib64/ld-2.17.so) => 7f21ba678e70 memcpy (/usr/lib64/ld-2.17.so)
    201 8e8c memcpy (/usr/lib64/ld-2.17.so) => 7f21ba678ea0 memcpy (/usr/lib64/ld-2.17.so)

    - Add support for using several Intel PT features (CYC, MTC packets),
    the relevant documentation was updated in:
    tools/perf/Documentation/intel-pt.txt
    briefly describing those packets, its purposes, how to configure
    them in the event config terms and relevant external documentation
    for further reading. (Adrian Hunter)

    - Introduce support for probing at an absolute address, for user and
    kernel 'perf probe's, useful when one have the symbol maps on a
    developer machine but not on an embedded system. (Wang Nan)

    - Add Intel BTS support, with a call-graph script to show it and PT
    in use in a GUI using 'perf script' python scripting with
    postgresql and Qt. (Adrian Hunter)

    - Allow selecting the type of callchains per event, including
    disabling callchains in all but one entry in an event list, to save
    space, and also to ask for the callchains collected in one event to
    be used in other events. (Kan Liang)

    - Beautify more syscall arguments in 'perf trace': (Arnaldo Carvalho
    de Melo)
    * A bunch more translate file/pathnames from pointers to strings.
    * Convert numbers to strings for the 'keyctl' syscall 'option'
    arg.
    * Add missing 'clockid' entries.

    - Introduce 'srcfile' sort key: (Andi Kleen)

    # perf record -F 10000 usleep 1
    # perf report --stdio --dsos '[kernel.vmlinux]' -s srcfile

    # Overhead Source File
    26.49% copy_page_64.S
    5.49% signal.c
    0.51% msr.h
    #

    It can be combined with other fields, for instance, experiment with
    '-s srcfile,symbol'.

    There are some oddities in some distros and with some specific
    DSOs, being investigated, so your mileage may vary.

    - Support per-event 'freq' term: (Namhyung Kim)

    $ perf record -e 'cpu/instructions,freq=1234/',cycles -c 1000 sleep 1
    $ perf evlist -F
    cpu/instructions,freq=1234/: sample_freq=1234
    cycles: sample_period=1000
    $

    - Deref sys_enter pointer args with contents from probe:vfs_getname,
    showing pathnames instead of pointers in many syscalls in 'perf
    trace'. (Arnaldo Carvalho de Melo)

    - Stop collecting /proc/kallsyms in perf.data files, saving about
    4.5MB on a typical x86-64 system, use the the symbol resolution
    routines used in all the other tools (report, top, etc) now that we
    can ask libtraceevent to use perf's symbol resolution code.
    (Arnaldo Carvalho de Melo)

    - Allow filtering out of perf's PID via 'perf record --exclude-perf'.
    (Wang Nan)

    - 'perf trace' now supports syscall groups, like strace, i.e:

    $ trace -e file touch file

    Will expand 'file' into multiple, file related, syscalls. More
    work needed to add extra groups for other syscall groups, and also
    to complement what was added for the 'file' group, included as a
    proof of concept. (Arnaldo Carvalho de Melo)

    - Add lock_pi stresser to 'perf bench futex', to test the kernel code
    related to FUTEX_(UN)LOCK_PI. (Davidlohr Bueso)

    - Let user have timestamps with per-thread recording in 'perf record'
    (Adrian Hunter)

    - ... and tons of other changes, see the shortlog and the Git log for
    details"

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (240 commits)
    perf evlist: Add backpointer for perf_env to evlist
    perf tools: Rename perf_session_env to perf_env
    perf tools: Do not change lib/api/fs/debugfs directly
    perf tools: Add tracing_path and remove unneeded functions
    perf buildid: Introduce sysfs/filename__sprintf_build_id
    perf evsel: Add a backpointer to the evlist a evsel is in
    perf trace: Add header with copyright and background info
    perf scripts python: Add new compaction-times script
    perf stat: Get correct cpu id for print_aggr
    tools lib traceeveent: Allow for negative numbers in print format
    perf script: Add --[no-]-demangle/--[no-]-demangle-kernel
    tracing/uprobes: Do not print '0x (null)' when offset is 0
    perf probe: Support probing at absolute address
    perf probe: Fix error reported when offset without function
    perf probe: Fix list result when address is zero
    perf probe: Fix list result when symbol can't be found
    tools build: Allow duplicate objects in the object list
    perf tools: Remove export.h from MANIFEST
    perf probe: Prevent segfault when reading probe point with absolute address
    perf tools: Update Intel PT documentation
    ...

    Linus Torvalds
     
  • Pull liblockdep fixes from Ingo Molnar:
    "Three liblockdep fixes left over from the v4.2 cycle"

    * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    tools/liblockdep: Use the rbtree header provided by common tools headers
    tools/liblockdep: Correct macro for WARN
    tools: Restore export.h

    Linus Torvalds
     
  • * acpi-tools:
    tools/power/acpi: Enable build for EC userspace tool
    tools/power/acpi: Add descend support in ACPI tools Makefile

    Rafael J. Wysocki
     
  • Pull RCU updates from Ingo Molnar:
    "The main RCU changes in this cycle are:

    - the combination of tree geometry-initialization simplifications and
    OS-jitter-reduction changes to expedited grace periods. These two
    are stacked due to the large number of conflicts that would
    otherwise result.

    - privatize smp_mb__after_unlock_lock().

    This commit moves the definition of smp_mb__after_unlock_lock() to
    kernel/rcu/tree.h, in recognition of the fact that RCU is the only
    thing using this, that nothing else is likely to use it, and that
    it is likely to go away completely.

    - documentation updates.

    - torture-test updates.

    - misc fixes"

    * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (60 commits)
    rcu,locking: Privatize smp_mb__after_unlock_lock()
    rcu: Silence lockdep false positive for expedited grace periods
    rcu: Don't disable CPU hotplug during OOM notifiers
    scripts: Make checkpatch.pl warn on expedited RCU grace periods
    rcu: Update MAINTAINERS entry
    rcu: Clarify CONFIG_RCU_EQS_DEBUG help text
    rcu: Fix backwards RCU_LOCKDEP_WARN() in synchronize_rcu_tasks()
    rcu: Rename rcu_lockdep_assert() to RCU_LOCKDEP_WARN()
    rcu: Make rcu_is_watching() really notrace
    cpu: Wait for RCU grace periods concurrently
    rcu: Create a synchronize_rcu_mult()
    rcu: Fix obsolete priority-boosting comment
    rcu: Use WRITE_ONCE in RCU_INIT_POINTER
    rcu: Hide RCU_NOCB_CPU behind RCU_EXPERT
    rcu: Add RCU-sched flavors of get-state and cond-sync
    rcu: Add fastpath bypassing funnel locking
    rcu: Rename RCU_GP_DONE_FQS to RCU_GP_DOING_FQS
    rcu: Pull out wait_event*() condition into helper function
    documentation: Describe new expedited stall warnings
    rcu: Add stall warnings to synchronize_sched_expedited()
    ...

    Linus Torvalds
     
  • Pull xtensa updates from Chris Zankel:
    "Xtensa fixes and improvements for 4.3:

    - reimplement DMA API using common helpers
    - implement counting and sampling perf events using hardware perf
    counters
    - add fake NMI support for hardware perf counters
    - fix THREADPTR register reloading on return to userspace
    - keep exception/interrupt stack continuous for debugger
    - improve vmlinux.lds.S post-processing"

    * tag 'xtensa-20150830' of git://github.com/czankel/xtensa-linux:
    xtensa: improve vmlinux.lds.S sed post-processing
    xtensa: drop unused irq_err_count
    xtensa: implement fake NMI
    xtensa: don't touch EXC_TABLE_FIXUP in _switch_to
    xtensa: fix kernel register spilling
    xtensa: reorganize irq flags tracing
    perf tools: xtensa: add DWARF register names
    xtensa: implement counting and sampling perf events
    xtensa: count software page fault perf events
    xtensa: add profiling IRQ type to xtensa_irq_map
    xtensa: select PERF_USE_VMALLOC for cache-aliasing configurations
    xtensa: move oprofile stack tracing to stacktrace.c
    xtensa: keep exception/interrupt stack continuous
    xtensa: clean up Kconfig dependencies for custom cores
    xtensa: reimplement DMA API using common helpers
    xtensa: fix threadptr reload on return to userspace
    xtensa: ISS: add missing va_end into split_if_spec

    Linus Torvalds
     
  • This patch modifies the -I/--int-regs option to enablepassing the name
    of the registers to sample on interrupt. Registers can be specified by
    their symbolic names. For instance on x86, --intr-regs=ax,si.

    The motivation is to reduce the size of the perf.data file and the
    overhead of sampling by only collecting the registers useful to a
    specific analysis. For instance, for value profiling, sampling only the
    registers used to passed arguements to functions.

    With no parameter, the --intr-regs still records all possible registers
    based on the architecture.

    To name registers, it is necessary to use the long form of the option,
    i.e., --intr-regs:

    $ perf record --intr-regs=si,di,r8,r9 .....

    To record any possible registers:

    $ perf record -I .....
    $ perf report --intr-regs ...

    To display the register, one can use perf report -D

    To list the available registers:

    $ perf record --intr-regs=\?
    available registers: AX BX CX DX SI DI BP SP IP FLAGS CS SS R8 R9 R10 R11 R12 R13 R14 R15

    Signed-off-by: Stephane Eranian
    Tested-by: Arnaldo Carvalho de Melo
    Cc: Adrian Hunter
    Cc: Andi Kleen
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Kan Liang
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1441039273-16260-4-git-send-email-eranian@google.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Stephane Eranian
     
  • This patch adds a way to locate a register identifier (PERF_X86_REG_*)
    based on its name, e.g., AX.

    This will be used by a subsequent patch to improved flexibility of perf
    record.

    Signed-off-by: Stephane Eranian
    Cc: Adrian Hunter
    Cc: Andi Kleen
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Kan Liang
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1441039273-16260-3-git-send-email-eranian@google.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Stephane Eranian
     
  • This patch adds the output of the interrupted machine state (iregs) to
    perf script. It presents them as NAME:VALUE so this is easy to parse
    during post processing.

    To capture the interrupted machine state:
    $ perf record -I ....

    to display iregs, use the -F option:

    $ perf script -F ip,iregs
    40afc2 AX:0x6c5770 BX:0x1e CX:0x5f4d80a DX:0x101010101010101 SI:0x1

    Signed-off-by: Stephane Eranian
    Tested-by: Arnaldo Carvalho de Melo
    Cc: Adrian Hunter
    Cc: Andi Kleen
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Kan Liang
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1441039273-16260-2-git-send-email-eranian@google.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Stephane Eranian
     
  • An evsel may have different cpus and threads than the evlist it is in.

    Use it's own cpus and threads, when opening the evsel in 'perf record'.

    Signed-off-by: Kan Liang
    Cc: Jiri Olsa
    Link: http://lkml.kernel.org/r/1440138194-17001-1-git-send-email-kan.liang@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Kan Liang
     
  • Before this patch there's no way to connect a loaded bpf object
    to its source file. However, during applying perf's '--filter' to BPF
    object, without this connection makes things harder, because perf loads
    all programs together, but '--filter' setting is for each object.

    The API of bpf_object__open_buffer() is changed to allow passing a name.
    Fortunately, at this time there's only one user of it (perf test LLVM),
    so we change it together.

    Signed-off-by: Wang Nan
    Cc: Alexei Starovoitov
    Cc: Brendan Gregg
    Cc: Daniel Borkmann
    Cc: David Ahern
    Cc: He Kuang
    Cc: Jiri Olsa
    Cc: Kaixu Xia
    Cc: Masami Hiramatsu
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Zefan Li
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1440742821-44548-2-git-send-email-wangnan0@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Wang Nan
     
  • It is theoretically possible to process perf.data files created on x86
    and that contain Intel PT or Intel BTS data, on any other architecture,
    which is why it is possible for there to be build errors on powerpc
    caused by pt/bts.

    The errors were:

    util/intel-pt-decoder/intel-pt-insn-decoder.c: In function ‘intel_pt_insn_decoder’:
    util/intel-pt-decoder/intel-pt-insn-decoder.c:138:3: error: switch missing default case [-Werror=switch-default]
    switch (insn->immediate.nbytes) {
    ^
    cc1: all warnings being treated as errors

    linux-acme.git/tools/perf/perf-obj/libperf.a(libperf-in.o): In function `intel_pt_synth_branch_sample':
    sources/linux-acme.git/tools/perf/util/intel-pt.c:871: undefined reference to `tsc_to_perf_time'
    linux-acme.git/tools/perf/perf-obj/libperf.a(libperf-in.o): In function `intel_pt_sample':
    sources/linux-acme.git/tools/perf/util/intel-pt.c:915: undefined reference to `tsc_to_perf_time'
    sources/linux-acme.git/tools/perf/util/intel-pt.c:962: undefined reference to `tsc_to_perf_time'
    linux-acme.git/tools/perf/perf-obj/libperf.a(libperf-in.o): In function `intel_pt_process_event':
    sources/linux-acme.git/tools/perf/util/intel-pt.c:1454: undefined reference to `perf_time_to_tsc'

    Signed-off-by: Adrian Hunter
    Cc: Jiri Olsa
    Cc: Sukadev Bhattiprolu
    Cc: Wang Nan
    Cc: Zefan Li
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1441046384-28663-1-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • Pull staging driver updates from Greg KH:
    "Here is the big staging driver updates for 4.3-rc1.

    Lots of things all over the place, almost all of them trivial fixups
    and changes. The usual IIO updates and new drivers and we have added
    the MOST driver subsystem which is getting cleaned up in the tree.
    The ozwpan driver is finally being deleted as it is obviously
    abandoned and no one cares about it.

    Full details are in the shortlog, and all of these have been in
    linux-next with no reported issues"

    * tag 'staging-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (912 commits)
    staging/lustre/o2iblnd: remove references to ib_reg_phsy_mr()
    staging: wilc1000: fix build warning with setup_timer()
    staging: wilc1000: remove DECLARE_WILC_BUFFER()
    staging: wilc1000: remove void function return statements that are not useful
    staging: wilc1000: coreconfigurator.c: fix kmalloc error check
    staging: wilc1000: coreconfigurator.c: use kmalloc instead of WILC_MALLOC
    staging: wilc1000: remove unused codes of gps8ConfigPacket
    staging: wilc1000: remove unnecessary void pointer cast
    staging: wilc1000: remove WILC_NEW and WILC_NEW_EX
    staging: wilc1000: use kmalloc instead of WILC_NEW
    staging: wilc1000: Process WARN, INFO options of debug levels from user
    staging: wilc1000: remove unneeded tstrWILC_MsgQueueAttrs typedef
    staging: wilc1000: delete wilc_osconfig.h
    staging: wilc1000: delete wilc_log.h
    staging: wilc1000: delete wilc_timer.h
    staging: wilc1000: remove WILC_TimerStart()
    staging: wilc1000: remove WILC_TimerCreate()
    staging: wilc1000: remove WILC_TimerDestroy()
    staging: wilc1000: remove WILC_TimerStop()
    staging: wilc1000: remove tstrWILC_TimerAttrs typedef
    ...

    Linus Torvalds
     

31 Aug, 2015

1 commit

  • Pull driver core updates from Greg KH:
    "Here is the new patches for the driver core / sysfs for 4.3-rc1.

    Very small number of changes here, all the details are in the
    shortlog, nothing major happening at all this kernel release, which is
    nice to see"

    * tag 'driver-core-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
    bus: subsys: update return type of ->remove_dev() to void
    driver core: correct device's shutdown order
    driver core: fix docbook for device_private.device
    selftests: firmware: skip timeout checks for kernels without user mode helper
    kernel, cpu: Remove bogus __ref annotations
    cpu: Remove bogus __ref annotation of cpu_subsys_online()
    firmware: fix wrong memory deallocation in fw_add_devm_name()
    sysfs.txt: update show method notes about sprintf/snprintf/scnprintf usage
    devres: fix devres_get()

    Linus Torvalds