08 Oct, 2016

4 commits

  • This patch will randomly perform mlock/mlock2 on a given memory region,
    and verify the RLIMIT_MEMLOCK limitation works properly.

    Suggested-by: David Rientjes
    Link: http://lkml.kernel.org/r/1473325970-11393-4-git-send-email-wei.guo.simon@gmail.com
    Signed-off-by: Simon Guo
    Cc: Shuah Khan
    Cc: Vlastimil Babka
    Cc: "Kirill A. Shutemov"
    Cc: Michal Hocko
    Cc: Eric B Munson
    Cc: Simon Guo
    Cc: Mel Gorman
    Cc: Alexey Klimov
    Cc: Andrea Arcangeli
    Cc: Thierry Reding
    Cc: Mike Kravetz
    Cc: Geert Uytterhoeven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Simon Guo
     
  • Function seek_to_smaps_entry() can be useful for other selftest
    functionalities, so move it out to header file.

    Link: http://lkml.kernel.org/r/1473325970-11393-3-git-send-email-wei.guo.simon@gmail.com
    Signed-off-by: Simon Guo
    Cc: Shuah Khan
    Cc: Vlastimil Babka
    Cc: "Kirill A. Shutemov"
    Cc: Michal Hocko
    Cc: Eric B Munson
    Cc: Simon Guo
    Cc: Mel Gorman
    Cc: Alexey Klimov
    Cc: Andrea Arcangeli
    Cc: Thierry Reding
    Cc: Mike Kravetz
    Cc: Geert Uytterhoeven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Simon Guo
     
  • This patch adds mlock() test for multiple invocation on the same address
    area, and verify it doesn't mess the rlimit mlock limitation.

    Link: http://lkml.kernel.org/r/1472554781-9835-5-git-send-email-wei.guo.simon@gmail.com
    Signed-off-by: Simon Guo
    Cc: Alexey Klimov
    Cc: Eric B Munson
    Cc: Geert Uytterhoeven
    Cc: "Kirill A. Shutemov"
    Cc: Mel Gorman
    Cc: Michal Hocko
    Cc: Shuah Khan
    Cc: Simon Guo
    Cc: Thierry Reding
    Cc: Vlastimil Babka
    Cc: David Rientjes
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Simon Guo
     
  • To prepare mlock2.h whose functionality will be reused.

    Link: http://lkml.kernel.org/r/1472554781-9835-4-git-send-email-wei.guo.simon@gmail.com
    Signed-off-by: Simon Guo
    Cc: Alexey Klimov
    Cc: Eric B Munson
    Cc: Geert Uytterhoeven
    Cc: "Kirill A. Shutemov"
    Cc: Mel Gorman
    Cc: Michal Hocko
    Cc: Shuah Khan
    Cc: Simon Guo
    Cc: Thierry Reding
    Cc: Vlastimil Babka
    Cc: David Rientjes
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Simon Guo
     

07 Oct, 2016

1 commit

  • Pull namespace updates from Eric Biederman:
    "This set of changes is a number of smaller things that have been
    overlooked in other development cycles focused on more fundamental
    change. The devpts changes are small things that were a distraction
    until we managed to kill off DEVPTS_MULTPLE_INSTANCES. There is an
    trivial regression fix to autofs for the unprivileged mount changes
    that went in last cycle. A pair of ioctls has been added by Andrey
    Vagin making it is possible to discover the relationships between
    namespaces when referring to them through file descriptors.

    The big user visible change is starting to add simple resource limits
    to catch programs that misbehave. With namespaces in general and user
    namespaces in particular allowing users to use more kinds of
    resources, it has become important to have something to limit errant
    programs. Because the purpose of these limits is to catch errant
    programs the code needs to be inexpensive to use as it always on, and
    the default limits need to be high enough that well behaved programs
    on well behaved systems don't encounter them.

    To this end, after some review I have implemented per user per user
    namespace limits, and use them to limit the number of namespaces. The
    limits being per user mean that one user can not exhause the limits of
    another user. The limits being per user namespace allow contexts where
    the limit is 0 and security conscious folks can remove from their
    threat anlysis the code used to manage namespaces (as they have
    historically done as it root only). At the same time the limits being
    per user namespace allow other parts of the system to use namespaces.

    Namespaces are increasingly being used in application sand boxing
    scenarios so an all or nothing disable for the entire system for the
    security conscious folks makes increasing use of these sandboxes
    impossible.

    There is also added a limit on the maximum number of mounts present in
    a single mount namespace. It is nontrivial to guess what a reasonable
    system wide limit on the number of mount structure in the kernel would
    be, especially as it various based on how a system is using
    containers. A limit on the number of mounts in a mount namespace
    however is much easier to understand and set. In most cases in
    practice only about 1000 mounts are used. Given that some autofs
    scenarious have the potential to be 30,000 to 50,000 mounts I have set
    the default limit for the number of mounts at 100,000 which is well
    above every known set of users but low enough that the mount hash
    tables don't degrade unreaonsably.

    These limits are a start. I expect this estabilishes a pattern that
    other limits for resources that namespaces use will follow. There has
    been interest in making inotify event limits per user per user
    namespace as well as interest expressed in making details about what
    is going on in the kernel more visible"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (28 commits)
    autofs: Fix automounts by using current_real_cred()->uid
    mnt: Add a per mount namespace limit on the number of mounts
    netns: move {inc,dec}_net_namespaces into #ifdef
    nsfs: Simplify __ns_get_path
    tools/testing: add a test to check nsfs ioctl-s
    nsfs: add ioctl to get a parent namespace
    nsfs: add ioctl to get an owning user namespace for ns file descriptor
    kernel: add a helper to get an owning user namespace for a namespace
    devpts: Change the owner of /dev/pts/ptmx to the mounter of /dev/pts
    devpts: Remove sync_filesystems
    devpts: Make devpts_kill_sb safe if fsi is NULL
    devpts: Simplify devpts_mount by using mount_nodev
    devpts: Move the creation of /dev/pts/ptmx into fill_super
    devpts: Move parse_mount_options into fill_super
    userns: When the per user per user namespace limit is reached return ENOSPC
    userns; Document per user per user namespace limits.
    mntns: Add a limit on the number of mount namespaces.
    netns: Add a limit on the number of net namespaces
    cgroupns: Add a limit on the number of cgroup namespaces
    ipcns: Add a limit on the number of ipc namespaces
    ...

    Linus Torvalds
     

06 Oct, 2016

1 commit

  • Pull staging and IIO updates from Greg KH:
    "Here is the big staging and IIO driver pull request for 4.9-rc1.

    There are a lot of patches in here, the majority due to the
    drivers/staging/greybus/ subsystem being merged in with full
    development history that went back a few years, in order to preserve
    the work that those developers did over time.

    Lots and lots of tiny cleanups happened in the tree as well, due to
    the Outreachy application process and lots of other developers showing
    up for the first time to clean code up. Along with those changes, we
    deleted a wireless driver, and added a raspberrypi driver (currently
    marked broken), and lots of new iio drivers.

    Overall the tree still shrunk with more lines removed than added,
    about 10 thousand lines removed in total. Full details are in the very
    long shortlog below.

    All of this has been in the linux-next tree with no issues. There will
    be some merge problems with other subsystem trees, but those are all
    minor problems and shouldn't be hard to work out when they happen
    (MAINTAINERS and some lustre build problems with the IB tree)"

    And furter from me asking for clarification about greybus:
    "Right now there is a phone from Motorola shipping with this code (a
    slightly older version, but the same tree), so even though Ara is not
    alive in the same form, the functionality is happening. We are working
    with the developers of that phone to merge the newer stuff in with
    their fork so they can use the upstream version in future versions of
    their phone product line.

    Toshiba has at least one chip shipping in their catalog that
    needs/uses this protocol over a Unipro link, and rumor has it that
    there might be more in the future.

    There are also other users of the greybus protocols, there is a talk
    next week at ELC that shows how it is being used across a network
    connection to control a device, and previous ELC talks have showed the
    protocol stack being used over USB to drive embedded Linux boards.
    I've also talked to some people who are starting to work to add a host
    controller driver to control arduinos as the greybus PHY protocols are
    very useful to control a serial/i2c/spio/whatever device across a
    random physical link, as it is a way to have a self-describing device
    be attached to a host without needing manual configuration.

    So yes, people are using it, and there is still the chance that it
    will show up in a phone/laptop/tablet/whatever from Google in the
    future as well, the tech isn't dead, even if the original large phone
    project happens to be"

    * tag 'staging-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (3703 commits)
    Staging: fbtft: Fix bug in fbtft-core
    staging: rtl8188eu: fix double unlock error in rtw_resume_process()
    staging:r8188eu: remove GEN_MLME_EXT_HANDLER macro
    staging:r8188eu: remove GEN_DRV_CMD_HANDLER macro
    staging:r8188eu: remove GEN_EVT_CODE macro
    staging:r8188eu: remove GEN_CMD_CODE macro
    staging:r8188eu: remove pkt_newalloc member of the recv_buf structure
    staging:r8188eu: remove rtw_handle_dualmac declaration
    staging:r8188eu: remove (RGTRY|BSSID)_(OFT|SZ) macros
    staging:r8188eu: change rtl8188e_process_phy_info function argument type
    Staging: fsl-mc: Remove blank lines
    Staging: fsl-mc: Fix unaligned * in block comments
    Staging: comedi: Align the * in block comments
    Staging : ks7010 : Fix block comments warninig
    Staging: vt6655: Remove explicit NULL comparison using Coccinelle
    staging: rtl8188eu: core: rtw_xmit: Use macros instead of constants
    staging: rtl8188eu: core: rtw_xmit: Move constant of the right side
    staging: dgnc: Fix lines longer than 80 characters
    Staging: dgnc: constify attribute_group structures
    Staging: most: hdm-dim2: constify attribute_group structures
    ...

    Linus Torvalds
     

05 Oct, 2016

1 commit

  • Pull spi updates from Mark Brown:
    "The SPI subsystem has also had quite a quiet release, though with a
    fairly large set of per-driver changes and several new drivers. The
    bulk of the changes are:

    - lots and lots of cleanups and improvements for the fsl-espi driver

    - new drivers for Broadcom MSPI/iProc/STB, Cavium ThunderX and
    J-Core"

    * tag 'spi-v4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (80 commits)
    spi: sc18is602: Change gpiod_set_value to gpiod_set_value_cansleep
    spi: pxa2xx: Fix build error because of missing header
    spi: imx: fix error return code in spi_imx_probe()
    spi: pxa2xx: Add support for GPIO descriptor chip selects
    spi: imx: Gracefully handle NULL master->cs_gpios
    spi: iproc-qspi: Add Broadcom iProc SoCs support
    spi: fsl-espi: improve return value handling in fsl_espi_probe
    spi: fsl-espi: simplify of_fsl_espi_probe
    spi: fsl-espi: remove unused variable in fsl_espi_setup
    spi: bcm-qspi: Fix error return code in bcm_qspi_probe()
    spi: bcm-qspi: Fix return value check in bcm_qspi_probe()
    spi: bcm-qspi: fix suspend/resume #ifdef
    spi: bcm-qspi: don't include linux/mtd/cfi.h
    spi: core: Use spi_sync_transfer() in spi_write()/spi_read()
    spi: fsl-espi: improve and extend register bit definitions
    spi: fsl-espi: align register access with other drivers
    spi: fsl-espi: improve and simplify interrupt handler
    spi: fsl-espi: simplify fsl_espi_setup_transfer
    spi: imx: support loopback mode on imx35
    spi: imx: set spi_bus_clk for mx1, mx31 and mx35
    ...

    Linus Torvalds
     

04 Oct, 2016

6 commits

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

    Lots of little things here, all over the driver tree for subsystems
    that flow through me. Nothing major that I can discern, full details
    are in the shortlog.

    All have been in the linux-next tree with no reported issues"

    * tag 'char-misc-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (144 commits)
    drivers/misc/hpilo: Changes to support new security states in iLO5 FW
    at25: fix debug and error messaging
    misc/genwqe: ensure zero initialization
    vme: fake: remove unexpected unlock in fake_master_set()
    vme: fake: mark symbols static where possible
    spmi: pmic-arb: Return an error code if sanity check fails
    Drivers: hv: get rid of id in struct vmbus_channel
    Drivers: hv: make VMBus bus ids persistent
    mcb: Add a dma_device to mcb_device
    mcb: Enable PCI bus mastering by default
    mei: stop the stall timer worker if not needed
    clk: probe common clock drivers earlier
    vme: fake: fix build for 64-bit dma_addr_t
    ttyprintk: Neaten and simplify printing
    mei: me: add kaby point device ids
    coresight: tmc: mark symbols static where possible
    coresight: perf: deal with error condition properly
    Drivers: hv: hv_util: Avoid dynamic allocation in time synch
    fpga manager: Add hardware dependency to Zynq driver
    Drivers: hv: utils: Support TimeSync version 4.0 protocol samples.
    ...

    Linus Torvalds
     
  • Pull CPU hotplug updates from Thomas Gleixner:
    "Yet another batch of cpu hotplug core updates and conversions:

    - Provide core infrastructure for multi instance drivers so the
    drivers do not have to keep custom lists.

    - Convert custom lists to the new infrastructure. The block-mq custom
    list conversion comes through the block tree and makes the diffstat
    tip over to more lines removed than added.

    - Handle unbalanced hotplug enable/disable calls more gracefully.

    - Remove the obsolete CPU_STARTING/DYING notifier support.

    - Convert another batch of notifier users.

    The relayfs changes which conflicted with the conversion have been
    shipped to me by Andrew.

    The remaining lot is targeted for 4.10 so that we finally can remove
    the rest of the notifiers"

    * 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (46 commits)
    cpufreq: Fix up conversion to hotplug state machine
    blk/mq: Reserve hotplug states for block multiqueue
    x86/apic/uv: Convert to hotplug state machine
    s390/mm/pfault: Convert to hotplug state machine
    mips/loongson/smp: Convert to hotplug state machine
    mips/octeon/smp: Convert to hotplug state machine
    fault-injection/cpu: Convert to hotplug state machine
    padata: Convert to hotplug state machine
    cpufreq: Convert to hotplug state machine
    ACPI/processor: Convert to hotplug state machine
    virtio scsi: Convert to hotplug state machine
    oprofile/timer: Convert to hotplug state machine
    block/softirq: Convert to hotplug state machine
    lib/irq_poll: Convert to hotplug state machine
    x86/microcode: Convert to hotplug state machine
    sh/SH-X3 SMP: Convert to hotplug state machine
    ia64/mca: Convert to hotplug state machine
    ARM/OMAP/wakeupgen: Convert to hotplug state machine
    ARM/shmobile: Convert to hotplug state machine
    arm64/FP/SIMD: Convert to hotplug state machine
    ...

    Linus Torvalds
     
  • Pull low-level x86 updates from Ingo Molnar:
    "In this cycle this topic tree has become one of those 'super topics'
    that accumulated a lot of changes:

    - Add CONFIG_VMAP_STACK=y support to the core kernel and enable it on
    x86 - preceded by an array of changes. v4.8 saw preparatory changes
    in this area already - this is the rest of the work. Includes the
    thread stack caching performance optimization. (Andy Lutomirski)

    - switch_to() cleanups and all around enhancements. (Brian Gerst)

    - A large number of dumpstack infrastructure enhancements and an
    unwinder abstraction. The secret long term plan is safe(r) live
    patching plus maybe another attempt at debuginfo based unwinding -
    but all these current bits are standalone enhancements in a frame
    pointer based debug environment as well. (Josh Poimboeuf)

    - More __ro_after_init and const annotations. (Kees Cook)

    - Enable KASLR for the vmemmap memory region. (Thomas Garnier)"

    [ The virtually mapped stack changes are pretty fundamental, and not
    x86-specific per se, even if they are only used on x86 right now. ]

    * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (70 commits)
    x86/asm: Get rid of __read_cr4_safe()
    thread_info: Use unsigned long for flags
    x86/alternatives: Add stack frame dependency to alternative_call_2()
    x86/dumpstack: Fix show_stack() task pointer regression
    x86/dumpstack: Remove dump_trace() and related callbacks
    x86/dumpstack: Convert show_trace_log_lvl() to use the new unwinder
    oprofile/x86: Convert x86_backtrace() to use the new unwinder
    x86/stacktrace: Convert save_stack_trace_*() to use the new unwinder
    perf/x86: Convert perf_callchain_kernel() to use the new unwinder
    x86/unwind: Add new unwind interface and implementations
    x86/dumpstack: Remove NULL task pointer convention
    fork: Optimize task creation by caching two thread stacks per CPU if CONFIG_VMAP_STACK=y
    sched/core: Free the stack early if CONFIG_THREAD_INFO_IN_TASK
    lib/syscall: Pin the task stack in collect_syscall()
    x86/process: Pin the target stack in get_wchan()
    x86/dumpstack: Pin the target stack when dumping it
    kthread: Pin the stack via try_get_task_stack()/put_task_stack() in to_live_kthread() function
    sched/core: Add try_get_task_stack() and put_task_stack()
    x86/entry/64: Fix a minor comment rebase error
    iommu/amd: Don't put completion-wait semaphore on stack
    ...

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

    - irqtime accounting cleanups and enhancements. (Frederic Weisbecker)

    - schedstat debugging enhancements, make it more broadly runtime
    available. (Josh Poimboeuf)

    - More work on asymmetric topology/capacity scheduling. (Morten
    Rasmussen)

    - sched/wait fixes and cleanups. (Oleg Nesterov)

    - PELT (per entity load tracking) improvements. (Peter Zijlstra)

    - Rewrite and enhance select_idle_siblings(). (Peter Zijlstra)

    - sched/numa enhancements/fixes (Rik van Riel)

    - sched/cputime scalability improvements (Stanislaw Gruszka)

    - Load calculation arithmetics fixes. (Dietmar Eggemann)

    - sched/deadline enhancements (Tommaso Cucinotta)

    - Fix utilization accounting when switching to the SCHED_NORMAL
    policy. (Vincent Guittot)

    - ... plus misc cleanups and enhancements"

    * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (64 commits)
    sched/irqtime: Consolidate irqtime flushing code
    sched/irqtime: Consolidate accounting synchronization with u64_stats API
    u64_stats: Introduce IRQs disabled helpers
    sched/irqtime: Remove needless IRQs disablement on kcpustat update
    sched/irqtime: No need for preempt-safe accessors
    sched/fair: Fix min_vruntime tracking
    sched/debug: Add SCHED_WARN_ON()
    sched/core: Fix set_user_nice()
    sched/fair: Introduce set_curr_task() helper
    sched/core, ia64: Rename set_curr_task()
    sched/core: Fix incorrect utilization accounting when switching to fair class
    sched/core: Optimize SCHED_SMT
    sched/core: Rewrite and improve select_idle_siblings()
    sched/core: Replace sd_busy/nr_busy_cpus with sched_domain_shared
    sched/core: Introduce 'struct sched_domain_shared'
    sched/core: Restructure destroy_sched_domain()
    sched/core: Remove unused @cpu argument from destroy_sched_domain*()
    sched/wait: Introduce init_wait_entry()
    sched/wait: Avoid abort_exclusive_wait() in __wait_on_bit_lock()
    sched/wait: Avoid abort_exclusive_wait() in ___wait_event()
    ...

    Linus Torvalds
     
  • Pull perf updates from Ingo Molnar:
    "The main kernel side changes were:

    - uprobes enhancements (Masami Hiramatsu)

    - Uncore group events enhancements (David Carrillo-Cisneros)

    - x86 Intel: Add support for Skylake server uncore PMUs (Kan Liang)

    - x86 Intel: LBR cleanups and enhancements, for better branch
    annotation tracking (Peter Zijlstra)

    - x86 Intel: Add support for PTWRITE and power event tracing
    (Alexander Shishkin)

    - ... various fixes, cleanups and smaller enhancements.

    Lots of tooling changes - a couple of highlights:

    - Support event group view with hierarchy mode in 'perf top' and
    'perf report' (Namhyung Kim)

    e.g.:

    $ perf record -e '{cycles,instructions}' make
    $ perf report --hierarchy --stdio
    ...
    # Overhead Command / Shared Object / Symbol
    # ...................... ..................................
    ...
    25.74% 27.18%sh
    19.96% 24.14%libc-2.24.so
    9.55% 14.64%[.] __strcmp_sse2
    1.54% 0.00%[.] __tfind
    1.07% 1.13%[.] _int_malloc
    0.95% 0.00%[.] __strchr_sse2
    0.89% 1.39%[.] __tsearch
    0.76% 0.00%[.] strlen

    - Add branch stack / basic block info to 'perf annotate --stdio',
    where for each branch, we add an asm comment after the instruction
    with information on how often it was taken and predicted. See
    example with color output at:

    http://vger.kernel.org/~acme/perf/annotate_basic_blocks.png

    (Peter Zijlstra)

    - Add support for using symbols in address filters with Intel PT and
    ARM CoreSight (hardware assisted tracing facilities) (Adrian
    Hunter, Mathieu Poirier)

    - Add support for interacting with Coresight PMU ETMs/PTMs, that are
    IP blocks to perform hardware assisted tracing on a ARM CPU core
    (Mathieu Poirier)

    - Support generating cross arch probes, i.e. if you specify a vmlinux
    file for different arch than the one in the host machine,

    $ perf probe --definition function_name args

    will generate the probe definition string needed to append to the
    target machine /sys/kernel/debug/tracing/kprobes_events file, using
    scripting (Masami Hiramatsu).

    - Allow configuring the default 'perf report -s' sort order in
    ~/.perfconfig, for instance, "sym,dso" may be more fitting for
    kernel developers. (Arnaldo Carvalho de Melo)

    - ... plus lots of other changes, refactorings, features and fixes"

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (149 commits)
    perf tests: Add dwarf unwind test for powerpc
    perf probe: Match linkage name with mangled name
    perf probe: Fix to cut off incompatible chars from group name
    perf probe: Skip if the function address is 0
    perf probe: Ignore the error of finding inline instance
    perf intel-pt: Fix decoding when there are address filters
    perf intel-pt: Enable decoder to handle TIP.PGD with missing IP
    perf intel-pt: Read address filter from AUXTRACE_INFO event
    perf intel-pt: Record address filter in AUXTRACE_INFO event
    perf intel-pt: Add a helper function for processing AUXTRACE_INFO
    perf intel-pt: Fix missing error codes processing auxtrace_info
    perf intel-pt: Add support for recording the max non-turbo ratio
    perf intel-pt: Fix snapshot overlap detection decoder errors
    perf probe: Increase debug level of SDT debug messages
    perf record: Add support for using symbols in address filters
    perf symbols: Add dso__last_symbol()
    perf record: Fix error paths
    perf record: Rename label 'out_symbol_exit'
    perf script: Fix vanished idle symbols
    perf evsel: Add support for address filters
    ...

    Linus Torvalds
     
  • Pull ACPI updates from Rafael Wysocki:
    "First off, the ACPICA code in the kernel is updated to upstream
    revision 20160831 that brings in a few bug fixes and cleanups. In
    particular, it is possible to mask GPEs now (and the sysfs interface
    for GPE control is fixed on top of that), problems related to the
    table loading mechanism are fixed and all code related to FADT version
    2 (which has never been part of the ACPI specification) is dropped.

    On the new features front, there is a new watchdog driver based on the
    ACPI WDAT (ACPI Watchdog Action Table), needed on some platforms to
    replace the iTCO watchdog that doesn't work there, and some UART
    devices get new definitions of built-in properties (to be accessed via
    the generic device properties API).

    Also, included is a fix for an ACPI-related PCI resorces allocation
    issue and a few problems in the EC driver and in the button and
    battery drivers are fixed.

    In addition to that, the ACPI CPPC library is updated to make batching
    of requests sent over the PCC channel possible (which reduces the PCC
    usage overhead substantially in some cases) and to support functional
    fixed hardware (FFH) type of CPPC registers access (which will allow
    CPPC to be used on x86 too in the future).

    As usual, there are some assorted fixes and cleanups too.

    Specifics:

    - Update of the ACPICA code in the kernel to upstream revision
    20160831 with the following major changes:

    * New mechanism for GPE masking.
    * Fixes for issues related to the LoadTable operator and table
    loading.
    * Fixes for issues related to so-called module-level code (MLC),
    that is AML that doesn't belong to any methods.
    * Change of the return value of the _OSI method to reflect the
    Windows behavior.
    * GAS (Generic Address Structure) support fix related to 32-bit
    FADT addresses.
    * Elimination of unnecessary FADT version 2 support.
    * ACPI tools fixes and cleanups.

    From Bob Moore, Lv Zheng, and Jung-uk Kim.

    - ACPI sysfs interface updates to fix GPE handling (on top of the new
    GPE masking mechanism in ACPICA) and issues related to table
    loading (Lv Zheng).

    - New watchdog driver based on the ACPI WDAT (ACPI Watchdog Action
    Table), needed on some platforms to replace the iTCO watchdog that
    doesn't work there and related updates of the intel_pmc_ipc,
    i2c/i801 and MFD/lcp_ich drivers (Mika Westerberg).

    - Driver core fix to prevent it from leaking secondary fwnode objects
    during device removal (Lukas Wunner).

    - New definitions of built-in properties for UART in ACPI-based x86
    SoC drivers and a 8250_dw driver quirk for the APM X-Gene SoC
    (Heikki Krogerus).

    - New device ID for the Vulcan SPI controller and constification of
    local strucures in the AMD SoC (APD) ACPI driver (Kamlakant Patel,
    Julia Lawall).

    - Fix for a bug causing the allocation of PCI resorces to fail if
    ACPI-enumerated child platform devices are registered below the PCI
    devices in question (Mika Westerberg).

    - Change of the default polarity for PCI legacy IRQs to high on
    systems booting wth ACPI on platforms with a GIC interrupt
    controller model fixing the discrepancy between the specification
    and HW behavior (Lorenzo Pieralisi).

    - Fixes for the handling of system suspend/resume in the ACPI EC
    driver and update of that driver to make it cope with the cases
    when the EC device defined in the ECDT has to be used throughout
    the entire system life cycle (Lv Zheng).

    - Update of the ACPI CPPC library to allow it to batch requests sent
    over the PCC channel (to reduce overhead), to support the fixed
    functional hardware (FFH) CPPC registers access type, to notify the
    mailbox framework about TX completions when the interrupt flag is
    set for the PCC mailbox, and to support HW-Reduced Communication
    Subspace type 2 (Ashwin Chaugule, Prashanth Prakash, Srinivas
    Pandruvada, Hoan Tran).

    - ACPI button driver fix and documentation update related to the
    handling of laptop lids (Lv Zheng).

    - ACPI battery driver initialization fix (Carlos Garnacho).

    - ACPI GPIO enumeration documentation update (Mika Westerberg).

    - Assorted updates of the core ACPI bus type code (Lukas Wunner, Lv
    Zheng).

    - Assorted cleanups of the ACPI table parsing code and the
    x86-specific ACPI code (Al Stone).

    - Fixes for assorted ACPI-related issues found in linux-next (Wei
    Yongjun)"

    * tag 'acpi-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (98 commits)
    ACPI / documentation: Use recommended name in GPIO property names
    watchdog: wdat_wdt: Fix warning for using 0 as NULL
    watchdog: wdat_wdt: fix return value check in wdat_wdt_probe()
    platform/x86: intel_pmc_ipc: Do not create iTCO watchdog when WDAT table exists
    i2c: i801: Do not create iTCO watchdog when WDAT table exists
    mfd: lpc_ich: Do not create iTCO watchdog when WDAT table exists
    ACPI / bus: Adjust ACPI subsystem initialization for new table loading mode
    ACPICA: Parser: Fix a regression in LoadTable support
    ACPICA: Tables: Fix "UNLOAD" code path lock issues
    ACPI / watchdog: Add support for WDAT hardware watchdog
    ACPI / platform: Pay attention to parent device's resources
    PCI: Add pci_find_resource()
    ACPI / CPPC: Support PCC with interrupt flag
    ACPI / sysfs: Update sysfs signature handling code
    ACPI / sysfs: Fix an issue for LoadTable opcode
    ACPICA: Tables: Fix a regression in acpi_tb_find_table()
    ACPI / tables: Remove duplicated include from tables.c
    ACPI / APD: constify local structures
    x86: ACPI: make variable names clearer in acpi_parse_madt_lapic_entries()
    x86: ACPI: remove extraneous white space after semicolon
    ...

    Linus Torvalds
     

02 Oct, 2016

1 commit

  • * acpica: (45 commits)
    ACPICA: Parser: Fix a regression in LoadTable support
    ACPICA: Tables: Fix "UNLOAD" code path lock issues
    ACPICA: Tables: Fix a regression in acpi_tb_find_table()
    ACPICA: Update version to 20160831
    ACPICA: Tables: Tune table mutex to be a leaf lock
    ACPICA: Dispatcher: Fix a mutex issue for method auto serialization
    ACPICA: Namespace: Fix dynamic table loading issues
    ACPICA: Namespace: Add acpi_ns_get_node_unlocked()
    ACPICA: Interpreter: Fix MLC issues by switching to new term_list grammar for table loading
    ACPICA: Update return value for intenal _OSI method
    ACPICA: Tables: Override all 64-bit GAS fields when acpi_gbl_use32_bit_fadt_addresses is TRUE
    ACPICA: Tables: Add new table events indicating table installation/uninstallation
    ACPICA: Tables: Remove wrong table event macros
    ACPICA: Tables: Remove acpi_tb_install_fixed_table()
    ACPICA: Add a couple of casts to uthex.c
    ACPICA: Cleanup for all string-to-integer conversions
    ACPICA: Debugger: Add subcommand for predefined name execution
    ACPICA: Update version to 20160729
    ACPICA: OSL: Fix a regression that old GCC requires a workaround for strchr()
    ACPICA: OSL: Cleanup the inclusion order of the compiler-specific headers
    ...

    Rafael J. Wysocki
     

01 Oct, 2016

3 commits


30 Sep, 2016

3 commits

  • Get the cr4 fixes so we can apply the final cleanup

    Thomas Gleixner
     
  • Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Pull libnvdimm fixes from Dan Williams:

    - Four fixes for "flush hint" support.

    Flush hints are addresses advertised by the ACPI 6+ NFIT (NVDIMM
    Firmware Interface Table) that when written and fenced guarantee that
    writes pending in platform write buffers (outside the cpu) have been
    flushed to media. They might also be used by hypervisors as a
    trigger condition to flush guest-persistent memory ranges to storage.

    Fix a potential data corruption issue, a broken definition of the
    hint array, a wrong allocation size for the unit test implementation
    of the flush hint table, and missing NULL check in an error path.

    The unit test, while it did not prevent these bugs from being
    merged, at least triggered occasional crashes in advance of
    production usages.

    - Fix handling of ACPI DSM error status results. The DSM mechanism
    allows communication with platform and memory device firmware. We
    correctly parse known errors, but were silently ignoring others.

    Fix it to consistently fail any command with a non-zero status return
    that we otherwise do not interpret / handle.

    * 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
    libnvdimm, region: fix flush hint table thinko
    nfit: fail DSMs that return non-zero status by default
    libnvdimm: fix devm_nvdimm_memremap() error path
    tools/testing/nvdimm: fix allocation range for mock flush hint tables
    nvdimm: fix PHYS_PFN/PFN_PHYS mixup

    Linus Torvalds
     

29 Sep, 2016

20 commits

  • The user stack dump feature was recently added for powerpc. But there
    was no test case available to test it.

    This test works same as on other architectures by preparing a stack
    frame on the perf test thread and comparing each frame by unwinding it.

    $ ./perf test 50
    50: Test dwarf unwind : Ok

    User stack dump for powerpc: https://lkml.org/lkml/2016/4/28/482

    Signed-off-by: Ravi Bangoria
    Acked-by: Jiri Olsa
    Cc: Alexander Shishkin
    Cc: Anju T Sudhakar
    Cc: Josh Poimboeuf
    Cc: Masami Hiramatsu
    Cc: Matt Fleming
    Cc: Michael Ellerman
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Wang Nan
    Cc: linuxppc-dev@lists.ozlabs.org
    Link: http://lkml.kernel.org/r/1474267100-31079-1-git-send-email-ravi.bangoria@linux.vnet.ibm.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Ravi Bangoria
     
  • Match linkage name with mangled name if exists. The linkage_name is used
    for storing mangled name of the object.

    Thus, this allows 'perf probe' to find appropriate probe point from
    mangled symbol as below.

    E.g. without this fix:
    ----
    $ perf probe -x /usr/lib64/libstdc++.so.6 \
    -D _ZNKSt15basic_fstreamXXIwSt11char_traitsIwEE7is_openEv
    Probe point '_ZNKSt15basic_fstreamXXIwSt11char_traitsIwEE7is_openEv'
    not found.
    Error: Failed to add events.
    ----

    With this fix, perf probe can find the correct one.
    ----
    $ perf probe -x /usr/lib64/libstdc++.so.6 \
    -D _ZNKSt15basic_fstreamXXIwSt11char_traitsIwEE7is_openEv
    p:probe_libstdc/_ZNKSt15basic_fstreamXXIwSt11char_traitsIwEE7is_openEv
    /usr/lib64/libstdc++.so.6.0.22:0x8ca60
    ----

    Committer notes:

    After the fix, setting it for real (no -D/--definition, that amounts to
    a --dry-run):

    # perf probe -x /usr/lib64/libstdc++.so.6 _ZNKSt15basic_fstreamXXIwSt11char_traitsIwEE7is_openEv
    Added new event:
    probe_libstdc:_ZNKSt15basic_fstreamXXIwSt11char_traitsIwEE7is_openEv (on _ZNKSt15basic_fstreamXXIwSt11char_traitsIwEE7is_openEv in /usr/lib64/libstdc++.so.6.0.22)

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

    perf record -e probe_libstdc:_ZNKSt15basic_fstreamXXIwSt11char_traitsIwEE7is_openEv -aR sleep 1

    # perf probe -l probe_libstdc:*
    probe_libstdc:_ZNKSt15basic_fstreamXXIwSt11char_traitsIwEE7is_openEv (on is_open@libstdc++-v3/include/fstream in /usr/lib64/libstdc++.so.6.0.22)
    #

    Reported-by: Thomas Gleixner
    Signed-off-by: Masami Hiramatsu
    Tested-by: Arnaldo Carvalho de Melo
    Tested-by: Jiri Olsa
    Cc: David Ahern
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/147464493162.29804.16715053505069382443.stgit@devbox
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • Cut off the characters which can not use for group name of uprobes
    when making it based on executable filename.

    For example, if the exec name is libstdc++.so, without this fix
    perf probe generates "probe_libstdc++" as the group name, but
    it is failed to set because '+' can not be used for group name.

    With this fix perf accepts only alphabet, number or '_' for group
    name, thus perf generates "probe_libstdc" as the group name.

    E.g. with this fix, you can see the event name has no "+".
    ----
    $ ./perf probe -x /usr/lib64/libstdc++.so.6 -D is_open
    p:probe_libstdc/is_open /usr/lib64/libstdc++.so.6.0.22:0x8ca80
    p:probe_libstdc/is_open_1 /usr/lib64/libstdc++.so.6.0.22:0x8ca70
    p:probe_libstdc/is_open_2 /usr/lib64/libstdc++.so.6.0.22:0x8ca60
    p:probe_libstdc/is_open_3 /usr/lib64/libstdc++.so.6.0.22:0xb0ad0
    p:probe_libstdc/is_open_4 /usr/lib64/libstdc++.so.6.0.22:0xecca9
    ----

    Committer note:

    Before this fix:

    # perf probe -x /usr/lib64/libstdc++.so.6 is_open
    Failed to write event: Invalid argument
    Error: Failed to add events.
    #

    After the fix:

    # perf probe -x /usr/lib64/libstdc++.so.6 is_open
    Added new events:
    probe_libstdc:is_open (on is_open in /usr/lib64/libstdc++.so.6.0.22)
    probe_libstdc:is_open_1 (on is_open in /usr/lib64/libstdc++.so.6.0.22)
    probe_libstdc:is_open_2 (on is_open in /usr/lib64/libstdc++.so.6.0.22)
    probe_libstdc:is_open_3 (on is_open in /usr/lib64/libstdc++.so.6.0.22)
    probe_libstdc:is_open_4 (on is_open in /usr/lib64/libstdc++.so.6.0.22)

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

    perf record -e probe_libstdc:is_open_4 -aR sleep 1

    # perf probe -l probe_libstdc:*
    probe_libstdc:is_open (on is_open@libstdc++-v3/include/fstream in /usr/lib64/libstdc++.so.6.0.22)
    probe_libstdc:is_open_1 (on is_open@libstdc++-v3/include/fstream in /usr/lib64/libstdc++.so.6.0.22)
    probe_libstdc:is_open_2 (on is_open@libstdc++-v3/include/fstream in /usr/lib64/libstdc++.so.6.0.22)
    probe_libstdc:is_open_3 (on is_open@src/c++98/basic_file.cc in /usr/lib64/libstdc++.so.6.0.22)
    probe_libstdc:is_open_4 (on stdio_filebuf:5@include/ext/stdio_filebuf.h in /usr/lib64/libstdc++.so.6.0.22)
    #

    Signed-off-by: Masami Hiramatsu
    Tested-by: Arnaldo Carvalho de Melo
    Tested-by: Jiri Olsa
    Cc: David Ahern
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/147464491667.29804.9553638175441827970.stgit@devbox
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • Skip probes if the entry address of the target function is 0. This can
    happen when we're handling C++ debuginfo files.

    E.g. without this fix, below case still fail.
    ----
    $ ./perf probe -x /usr/lib64/libstdc++.so.6 -vD is_open
    probe-definition(0): is_open
    symbol:is_open file:(null) line:0 offset:0 return:0 lazy:(null)
    0 arguments
    symbol:catch file:(null) line:0 offset:0 return:0 lazy:(null)
    symbol:throw file:(null) line:0 offset:0 return:0 lazy:(null)
    symbol:rethrow file:(null) line:0 offset:0 return:0 lazy:(null)
    Open Debuginfo file: /usr/lib/debug/usr/lib64/libstdc++.so.6.0.22.debug
    Try to find probe point from debuginfo.
    Matched function: is_open [295df]
    found inline addr: 0x8ca80
    Probe point found: is_open+0
    found inline addr: 0x8ca70
    Probe point found: is_open+0
    found inline addr: 0x8ca60
    Probe point found: is_open+0
    Matched function: is_open [6527f]
    Matched function: is_open [9fe8a]
    Probe point found: is_open+0
    Matched function: is_open [19710b]
    found inline addr: 0xecca9
    Probe point found: stdio_filebuf+57
    found inline addr: 0x0
    Probe point found: swap+0
    Matched function: is_open [19fc9d]
    Probe point found: is_open+0
    Found 7 probe_trace_events.
    p:probe_libstdc++/is_open /usr/lib64/libstdc++.so.6.0.22:0x8ca80
    p:probe_libstdc++/is_open_1 /usr/lib64/libstdc++.so.6.0.22:0x8ca70
    p:probe_libstdc++/is_open_2 /usr/lib64/libstdc++.so.6.0.22:0x8ca60
    p:probe_libstdc++/is_open_3 /usr/lib64/libstdc++.so.6.0.22:0xb0ad0
    p:probe_libstdc++/is_open_4 /usr/lib64/libstdc++.so.6.0.22:0xecca9
    Failed to synthesize probe trace event.
    Error: Failed to add events. Reason: Invalid argument (Code: -22)
    ----
    This is because some instances have entry_pc == 0 (see 19710b and
    19fc9d). With this fix, those are skipped.

    ----
    $ ./perf probe -x /usr/lib64/libstdc++.so.6 -D is_open
    p:probe_libstdc++/is_open /usr/lib64/libstdc++.so.6.0.22:0x8ca80
    p:probe_libstdc++/is_open_1 /usr/lib64/libstdc++.so.6.0.22:0x8ca70
    p:probe_libstdc++/is_open_2 /usr/lib64/libstdc++.so.6.0.22:0x8ca60
    p:probe_libstdc++/is_open_3 /usr/lib64/libstdc++.so.6.0.22:0xb0ad0
    p:probe_libstdc++/is_open_4 /usr/lib64/libstdc++.so.6.0.22:0xecca9
    ----

    Signed-off-by: Masami Hiramatsu
    Tested-by: Arnaldo Carvalho de Melo
    Tested-by: Jiri Olsa
    Cc: David Ahern
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/147464490707.29804.14277897643725143867.stgit@devbox
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • Ignore the error when the perf probe failed to find inline function
    instances. This can happen when we search a method in C++ debuginfo. If
    there is completely no instance in target, perf probe can return an
    error.

    E.g. without this fix:
    ----
    $ perf probe -x /usr/lib64/libstdc++.so.6 -vD showmanyc
    probe-definition(0): showmanyc
    symbol:showmanyc file:(null) line:0 offset:0 return:0 lazy:(null)
    0 arguments
    symbol:catch file:(null) line:0 offset:0 return:0 lazy:(null)
    symbol:throw file:(null) line:0 offset:0 return:0 lazy:(null)
    symbol:rethrow file:(null) line:0 offset:0 return:0 lazy:(null)
    Open Debuginfo file: /usr/lib/debug/usr/lib64/libstdc++.so.6.0.22.debug
    Try to find probe point from debuginfo.
    Matched function: showmanyc
    An error occurred in debuginfo analysis (-2).
    Trying to use symbols.
    Failed to find symbol showmanyc in /usr/lib64/libstdc++.so.6.0.22
    Error: Failed to add events. Reason: No such file or directory (Code: -2)
    ----

    This is because one of showmanyc is defined as inline but no instance
    found. With this fix, it is succeeded to show as below.
    ----
    $ perf probe -x /usr/lib64/libstdc++.so.6 -D showmanyc
    p:probe_libstdc++/showmanyc /usr/lib64/libstdc++.so.6.0.22:0xb0e50
    p:probe_libstdc++/showmanyc_1 /usr/lib64/libstdc++.so.6.0.22:0xc7c40
    p:probe_libstdc++/showmanyc_2 /usr/lib64/libstdc++.so.6.0.22:0xecfa0
    p:probe_libstdc++/showmanyc_3 /usr/lib64/libstdc++.so.6.0.22:0x115fc0
    p:probe_libstdc++/showmanyc_4 /usr/lib64/libstdc++.so.6.0.22:0x121a90
    ----

    Signed-off-by: Masami Hiramatsu
    Tested-by: Arnaldo Carvalho de Melo
    Tested-by: Jiri Olsa
    Cc: David Ahern
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/147464489775.29804.3190419491209875936.stgit@devbox
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • Due to errata SKL014 "Intel PT TIP.PGD May Not Have Target IP Payload",
    the Intel PT decoder needs to match address filters against TIP.PGD
    packets. Parse the address filters and implement the decoder's
    'pgd_ip()' callback to match the IP against the filter regions.

    Signed-off-by: Adrian Hunter
    Cc: Jiri Olsa
    Cc: Masami Hiramatsu
    Cc: Mathieu Poirier
    Link: http://lkml.kernel.org/r/1474641528-18776-17-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • When address filters are used, the decoder must detect the end of a
    filter region (or a branch into a tracestop region) by matching Packet
    Generation Disabled (TIP.PGD) packets against the object code using the
    IP given in the packet. However, due to errata SKL014 "Intel PT TIP.PGD
    May Not Have Target IP Payload", that IP may not be present.

    Enable the decoder to handle that by adding a new callback function
    'pgd_ip()' which indicates whether the IP is not traced, in which case
    that is the point where the trace was disabled.

    Signed-off-by: Adrian Hunter
    Cc: Jiri Olsa
    Cc: Masami Hiramatsu
    Cc: Mathieu Poirier
    Link: http://lkml.kernel.org/r/1474641528-18776-16-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • Read the address filter from the AUXTRACE_INFO event in preparation for
    using it to assist in decoding.

    Signed-off-by: Adrian Hunter
    Cc: Jiri Olsa
    Cc: Masami Hiramatsu
    Cc: Mathieu Poirier
    Link: http://lkml.kernel.org/r/1474641528-18776-15-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • The address filter is needed to help decode the trace, so store it in
    the AUXTRACE_INFO event.

    Signed-off-by: Adrian Hunter
    Cc: Jiri Olsa
    Cc: Masami Hiramatsu
    Cc: Mathieu Poirier
    Link: http://lkml.kernel.org/r/1474641528-18776-14-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • Add a helper function 'intel_pt_has()' to make it easier to determine
    which members the AUXTRACE_INFO event contains.

    Signed-off-by: Adrian Hunter
    Cc: Jiri Olsa
    Cc: Masami Hiramatsu
    Cc: Mathieu Poirier
    Link: http://lkml.kernel.org/r/1474641528-18776-13-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • Fix 2 places where the err variable was not being set.

    Signed-off-by: Adrian Hunter
    Cc: Jiri Olsa
    Cc: Masami Hiramatsu
    Cc: Mathieu Poirier
    Link: http://lkml.kernel.org/r/1474641528-18776-12-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • Previously the maximum non-turbo ratio was calculated from TSC assuming
    a 100 MHz multiplier which is correct for current hardware supporting
    Intel PT. However more recent kernels also now export the value, so use
    that in preference to the calculated value.

    Signed-off-by: Adrian Hunter
    Cc: Jiri Olsa
    Cc: Masami Hiramatsu
    Cc: Mathieu Poirier
    Link: http://lkml.kernel.org/r/1474641528-18776-11-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • Fix occasional decoder errors decoding trace data collected in snapshot
    mode.

    Snapshot mode can take successive snapshots of trace which might overlap.
    The decoder checks whether there is an overlap but only looks at the
    current and previous buffer. However buffers that do not contain
    synchronization (i.e. PSB) packets cannot be decoded or used for overlap
    checking. That means the decoder actually needs to check overlaps between
    the current buffer and the previous buffer that contained usable data.
    Make that change.

    Signed-off-by: Adrian Hunter
    Cc: Jiri Olsa
    Cc: Masami Hiramatsu
    Cc: Mathieu Poirier
    Cc: stable@vger.kernel.org # v4.3+
    Link: http://lkml.kernel.org/r/1474641528-18776-10-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • Two SDT debug messages can occur for every DSO which is too noisy.
    Consequently, increase debug level of SDT messages.

    Signed-off-by: Adrian Hunter
    Acked-by: Masami Hiramatsu
    Cc: Jiri Olsa
    Cc: Mathieu Poirier
    Link: http://lkml.kernel.org/r/1474641528-18776-9-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • Symbols come from either the DSO or /proc/kallsyms for the kernel.
    Details of the functionality can be found in Documentation/perf-record.txt.

    Signed-off-by: Adrian Hunter
    Cc: Jiri Olsa
    Cc: Masami Hiramatsu
    Cc: Mathieu Poirier
    Link: http://lkml.kernel.org/r/1474641528-18776-8-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • Add a function to find the last symbol in a DSO. This will be used when
    parsing address filters to calculate a region that includes the entire
    DSO.

    Signed-off-by: Adrian Hunter
    Cc: Jiri Olsa
    Cc: Masami Hiramatsu
    Cc: Mathieu Poirier
    Link: http://lkml.kernel.org/r/1474641528-18776-7-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • Some error paths do not tidy-up. Fix that.

    Signed-off-by: Adrian Hunter
    Cc: Jiri Olsa
    Cc: Masami Hiramatsu
    Cc: Mathieu Poirier
    Link: http://lkml.kernel.org/r/1474641528-18776-6-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • In preparation for fixing the error paths, rename label
    'out_symbol_exit' to be 'out' because that error path can be used
    irrespective of whether symbols (or anything else) has been initialized.

    Signed-off-by: Adrian Hunter
    Cc: Jiri Olsa
    Cc: Masami Hiramatsu
    Cc: Mathieu Poirier
    Link: http://lkml.kernel.org/r/1474641528-18776-5-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • Commit 608c34de0b3d ("perf symbols: Mark if a symbol is idle in the
    library") causes idle symbols to vanish from perf script output. That is
    because print functions suppress symbols marked as 'idle'.

    However, suppression of 'idle' functions is only used by 'perf top' and
    'perf top' does not use the print functions. Consequently that
    functionality can simply be removed from the print functions.

    Signed-off-by: Adrian Hunter
    Cc: Jiri Olsa
    Cc: Masami Hiramatsu
    Cc: Mathieu Poirier
    Fixes: 608c34de0b3d ("perf symbols: Mark if a symbol is idle in the library")
    Link: http://lkml.kernel.org/r/1474641528-18776-4-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Adrian Hunter
     
  • This patch makes it possible to use the current filter framework with
    address filters. That way address filters for HW tracers such as
    CoreSight and Intel PT can be communicated to the kernel drivers.

    Signed-off-by: Mathieu Poirier
    Acked-by: Adrian Hunter
    Cc: Alexander Shishkin
    Cc: Jiri Olsa
    Cc: Peter Zijlstra
    Cc: linux-arm-kernel@lists.infradead.org
    Link: http://lkml.kernel.org/r/1474037045-31730-4-git-send-email-mathieu.poirier@linaro.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Mathieu Poirier