06 Jul, 2015

6 commits

  • …/acme/linux into perf/urgent

    Pull rbtree build fix from Arnaldo Carvalho de Melo.

    Signed-off-by: Ingo Molnar <mingo@kernel.org>

    Ingo Molnar
     
  • To complete the transitioning to not to share the same files with the
    kernel, also moving it from tools/perf/include/linux/ to
    tools/include/linux to make the whoke rbtree kit to other tools/ living
    codebases.

    Cc: Adrian Hunter
    Cc: Borislav Petkov
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-5bxyehixafckqm6ez25alnfo@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • The previous step, copying the contents minus the rcupdate.h parts, was
    done as a minimal fix, now do the move from tools/perf/.

    Cc: Adrian Hunter
    Cc: Borislav Petkov
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-52fllxtsgmtke66pmv98mcma@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • So that we can remove kernel specific stuff we've been stubbing out via
    a tools/include/linux/export.h that gets removed in this patch and to
    avoid breakages in the future like the one fixed recently where
    rcupdate.h started being used in rbtree.h.

    Cc: Adrian Hunter
    Cc: Borislav Petkov
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-rxuzfsozpb8hv1emwpx06rm6@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • We were using the include/linux/rbtree.h directly from the kernel,
    which broke the build as soon as it started using rcupdate.h, to
    avoid dragging the rcu header files into tools/, for which there is
    no use so far, grab a copy of rbtree.h.

    This is the minimal fix, later patches will copy as well lib/rbtree.c
    and move rbtree.h into tools/include/, etc.

    Cc: Adrian Hunter
    Cc: Borislav Petkov
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-dfmuj0j63w4by7vhlh4hhn74@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • We need it to build rbtree.c after this cset:

    commit d72da4a4d973
    Author: Peter Zijlstra
    Date: Wed May 27 11:09:36 2015 +0930

    rbtree: Make lockless searches non-fatal

    Cc: Adrian Hunter
    Cc: Borislav Petkov
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-qlnzhezv5ddwst0w9fydju0y@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

04 Jul, 2015

1 commit

  • Pull perf updates from Ingo Molnar:
    "This tree includes an x86 PMU scheduling fix, but most changes are
    late breaking tooling fixes and updates:

    User visible fixes:

    - Create config.detected into OUTPUT directory, fixing parallel
    builds sharing the same source directory (Aaro Kiskinen)

    - Allow to specify custom linker command, fixing some MIPS64 builds.
    (Aaro Kiskinen)

    - Fix to show proper convergence stats in 'perf bench numa' (Srikar
    Dronamraju)

    User visible changes:

    - Validate syscall list passed via -e argument to 'perf trace'.
    (Arnaldo Carvalho de Melo)

    - Introduce 'perf stat --per-thread' (Jiri Olsa)

    - Check access permission for --kallsyms and --vmlinux (Li Zhang)

    - Move toggling event logic from 'perf top' and into hists browser,
    allowing freeze/unfreeze with event lists with more than one entry
    (Namhyung Kim)

    - Add missing newlines when dumping PERF_RECORD_FINISHED_ROUND and
    showing the Aggregated stats in 'perf report -D' (Adrian Hunter)

    Infrastructure fixes:

    - Add missing break for PERF_RECORD_ITRACE_START, which caused those
    events samples to be parsed as well as PERF_RECORD_LOST_SAMPLES.
    ITRACE_START only appears when Intel PT or BTS are present, so..
    (Jiri Olsa)

    - Call the perf_session destructor when bailing out in the inject,
    kmem, report, kvm and mem tools (Taeung Song)

    Infrastructure changes:

    - Move stuff out of 'perf stat' and into the lib for further use
    (Jiri Olsa)

    - Reference count the cpu_map and thread_map classes (Jiri Olsa)

    - Set evsel->{cpus,threads} from the evlist, if not set, allowing the
    generalization of some 'perf stat' functions that previously were
    accessing private static evlist variable (Jiri Olsa)

    - Delete an unnecessary check before the calling free_event_desc()
    (Markus Elfring)

    - Allow auxtrace data alignment (Adrian Hunter)

    - Allow events with dot (Andi Kleen)

    - Fix failure to 'perf probe' events on arm (He Kuang)

    - Add testing for Makefile.perf (Jiri Olsa)

    - Add test for make install with prefix (Jiri Olsa)

    - Fix single target build dependency check (Jiri Olsa)

    - Access thread_map entries via accessors, prep patch to hold more
    info per entry, for ongoing 'perf stat --per-thread' work (Jiri
    Olsa)

    - Use __weak definition from compiler.h (Sukadev Bhattiprolu)

    - Split perf_pmu__new_alias() (Sukadev Bhattiprolu)"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (54 commits)
    perf tools: Allow to specify custom linker command
    perf tools: Create config.detected into OUTPUT directory
    perf mem: Fill in the missing session freeing after an error occurs
    perf kvm: Fill in the missing session freeing after an error occurs
    perf report: Fill in the missing session freeing after an error occurs
    perf kmem: Fill in the missing session freeing after an error occurs
    perf inject: Fill in the missing session freeing after an error occurs
    perf tools: Add missing break for PERF_RECORD_ITRACE_START
    perf/x86: Fix 'active_events' imbalance
    perf symbols: Check access permission when reading symbol files
    perf stat: Introduce --per-thread option
    perf stat: Introduce print_counters function
    perf stat: Using init_stats instead of memset
    perf stat: Rename print_interval to process_interval
    perf stat: Remove perf_evsel__read_cb function
    perf stat: Move perf_stat initialization counter process code
    perf stat: Move zero_per_pkg into counter process code
    perf stat: Separate counters reading and processing
    perf stat: Introduce read_counters function
    perf stat: Introduce perf_evsel__read function
    ...

    Linus Torvalds
     

03 Jul, 2015

1 commit

  • Pull ACPICA updates from Rafael Wysocki:
    "Additional ACPICA material for v4.2-rc1

    This will update the ACPICA code in the kernel to upstream revision
    20150619 (a bug-fix release mostly including stable-candidate fixes)
    and restore an earlier ACPICA commit that had to be reverted due to a
    regression introduced by it (the regression is addressed by
    blacklisting the only known system affected by it to date).

    The only new feature added by this update is the support for
    overriding objects in the ACPI namespace and a new ACPI table that can
    be used for that called the Override System Definition Table (OSDT).
    That should allow us to "patch" the ACPI namespace built from
    incomplete or incorrect ACPI System Definition tables (DSDT, SSDT)
    during system startup without the need to provide replacements for all
    of those tables in the future.

    Specifics:

    - Fix system resume problems related to 32-bit and 64-bit versions of
    the Firmware ACPI Control Structure (FACS) in the firmare (Lv
    Zheng)

    - Fix double initialization of the FACS (Lv Zheng)

    - Add _CLS object processing code to ACPICA (Suravee Suthikulpanit)

    - Add support for the (currently missing) new GIC version field in
    the Multiple APIC Description Table (MADT) (Hanjun Guo)

    - Add support for overriding objects in the ACPI namespace to ACPICA
    and OSDT support (Lv Zheng, Bob Moore, Zhang Rui)

    - Updates related to the TCPA and TPM2 ACPI tables (Bob Moore)

    - Restore the commit modifying _REV to always return "2" (as required
    by ACPI 6) and add a blacklisting mechanism for systems that may be
    affected by that change (Rafael J Wysocki)

    - Assorted fixes and cleanups (Bob Moore, Lv Zheng, Sascha Wildner)"

    * tag 'acpica-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (28 commits)
    Revert 'Revert "ACPICA: Permanently set _REV to the value '2'."'
    ACPI / init: Make it possible to override _REV
    ACPICA: Update version to 20150619
    ACPICA: Comment update, no functional change
    ACPICA: Update TPM2 ACPI table
    ACPICA: Update definitions for the TCPA and TPM2 ACPI tables
    ACPICA: Split C library prototypes to new header
    ACPICA: De-macroize calls to standard C library functions
    ACPI / acpidump: Update acpidump manual
    ACPICA: acpidump: Convert the default behavior to dump from /sys/firmware/acpi/tables
    ACPICA: acpidump: Allow customized tables to be dumped without accessing /dev/mem
    ACPICA: Cleanup output for the ASL Debug object
    ACPICA: Update for acpi_install_table memory types
    ACPICA: Namespace: Change namespace override to avoid node deletion
    ACPICA: Namespace: Add support of OSDT table
    ACPICA: Namespace: Add support to allow overriding objects
    ACPICA: ACPI 6.0: Add values for MADT GIC version field
    ACPICA: Utilities: Add _CLS processing
    ACPICA: Add dragon_fly support to unix file mapping file
    ACPICA: EFI: Add EFI interface definitions to eliminate dependency of GNU EFI
    ...

    Linus Torvalds
     

02 Jul, 2015

13 commits

  • ACPICA commit 3b1026e0bdd3c32eb6d5d313f3ba0b1fee7597b4
    ACPICA commit 00f0dc83f5cfca53b27a3213ae0d7719b88c2d6b
    ACPICA commit 47d22a738d0e19fd241ffe4e3e9d4e198e4afc69

    Across all of ACPICA. Replace C library macros such as ACPI_STRLEN with the
    standard names such as strlen. The original purpose for these macros is
    long since obsolete.
    Also cast various invocations as necessary. Bob Moore, Jung-uk Kim, Lv Zheng.

    Link: https://github.com/acpica/acpica/commit/3b1026e0
    Link: https://github.com/acpica/acpica/commit/00f0dc83
    Link: https://github.com/acpica/acpica/commit/47d22a73
    Signed-off-by: Bob Moore
    Signed-off-by: Jung-uk Kim
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Bob Moore
     
  • This patch updates acpidump manual according to the recent changes.

    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • ACPICA commit 04c3bd7e9d6aeb2b3edebe99c90dc271ae4e6353

    In order to work without any additional option to dump tables when /dev/mem
    doesn't exist, this patch switches the default behavior of acpidump to dump
    from /sys/firmware/acpi/tables. Reported by Al Stone, Fixed by Lv Zheng.

    Link: https://github.com/acpica/acpica/commit/04c3bd7e
    Reported-by: Al Stone
    Signed-off-by: Lv Zheng
    Signed-off-by: Bob Moore
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • ACPICA commit ab29013cfa2424140446aff196a70b211ab343a9

    The /dev/mem can be configured out, in which case, acpidump should still
    work with "-c" option as tables can be found in /sys/firmware/acpi/tables.
    This patch allows acpidump to work without /dev/mem.
    This patch has been tested with "acpidump -c" and "acpidump -c -n FADT".
    And it worked as expected. Lv Zheng.

    Link: https://github.com/acpica/acpica/commit/ab29013c
    Reported-by: Al Stone
    Signed-off-by: Lv Zheng
    Signed-off-by: Bob Moore
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • ACPICA commit 795b215d6fd062386f0a1c23dff9ffa244683c4f

    ACPICA BZ 1130

    This patch doesn't affect Linux kernel.

    Link: https://bugs.acpica.org/show_bug.cgi?id=1130
    Link: https://github.com/acpica/acpica/commit/795b215d
    Signed-off-by: Sascha Wildner
    Signed-off-by: Bob Moore
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Sascha Wildner
     
  • Allow to specify custom linker command. This fixes MIPS64 builds for
    64-bit userspace as it will allow to pass a linker using the correct
    linker flags for 64-bit ABI (by default GNU binutils ld will assume
    N32).

    Signed-off-by: Aaro Koskinen
    Acked-by: Jiri Olsa
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1435751683-18500-2-git-send-email-aaro.koskinen@nokia.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Aaro Koskinen
     
  • Create config.detected into OUTPUT directory instead of source
    directory.

    This fixes parallel builds that share the same source directory.

    Signed-off-by: Aaro Koskinen
    Acked-by: Jiri Olsa
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1435751683-18500-1-git-send-email-aaro.koskinen@nokia.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Aaro Koskinen
     
  • When an error occurs an error value is just returned without freeing the
    session. So allocating and freeing session have to be matched as a pair
    even if an error occurs.

    Signed-off-by: Taeung Song
    Acked-by: Jiri Olsa
    Cc: Namhyung Kim
    Link: http://lkml.kernel.org/r/1435752499-11752-1-git-send-email-treeze.taeung@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Taeung Song
     
  • When an error occurs an error value is just returned without freeing the
    session. So allocating and freeing session have to be matched as a pair
    even if an error occurs.

    Signed-off-by: Taeung Song
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Link: http://lkml.kernel.org/r/1435677525-28055-1-git-send-email-treeze.taeung@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Taeung Song
     
  • When an error occurs an error value is just returned without freeing the
    session. So allocating and freeing session have to be matched as a pair
    even if an error occurs.

    Signed-off-by: Taeung Song
    Acked-by: Jiri Olsa
    Cc: Namhyung Kim
    Link: http://lkml.kernel.org/r/1435652124-22414-6-git-send-email-treeze.taeung@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Taeung Song
     
  • When an error occurs an error value is just returned without freeing the
    session. So allocating and freeing session have to be matched as a pair
    even if an error occurs.

    Signed-off-by: Taeung Song
    Acked-by: Jiri Olsa
    Cc: Namhyung Kim
    Link: http://lkml.kernel.org/r/1435652124-22414-3-git-send-email-treeze.taeung@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Taeung Song
     
  • When an error occur an error value is just returned without freeing the
    session. So allocating and freeing session have to be matched as a pair
    even if an error occurs.

    Signed-off-by: Taeung Song
    Acked-by: Jiri Olsa
    Cc: Namhyung Kim
    Link: http://lkml.kernel.org/r/1435652124-22414-2-git-send-email-treeze.taeung@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Taeung Song
     
  • Missing switch break since introduction of new event:

    c4937a91ea56 perf tools: handle PERF_RECORD_LOST_SAMPLES

    Also removing unneeded break for PERF_RECORD_LOST_SAMPLES.

    Signed-off-by: Jiri Olsa
    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Kan Liang
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20150629112745.GA21507@krava.brq.redhat.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     

30 Jun, 2015

2 commits

  • Pull libnvdimm subsystem from Dan Williams:
    "The libnvdimm sub-system introduces, in addition to the
    libnvdimm-core, 4 drivers / enabling modules:

    NFIT:
    Instantiates an "nvdimm bus" with the core and registers memory
    devices (NVDIMMs) enumerated by the ACPI 6.0 NFIT (NVDIMM Firmware
    Interface table).

    After registering NVDIMMs the NFIT driver then registers "region"
    devices. A libnvdimm-region defines an access mode and the
    boundaries of persistent memory media. A region may span multiple
    NVDIMMs that are interleaved by the hardware memory controller. In
    turn, a libnvdimm-region can be carved into a "namespace" device and
    bound to the PMEM or BLK driver which will attach a Linux block
    device (disk) interface to the memory.

    PMEM:
    Initially merged in v4.1 this driver for contiguous spans of
    persistent memory address ranges is re-worked to drive
    PMEM-namespaces emitted by the libnvdimm-core.

    In this update the PMEM driver, on x86, gains the ability to assert
    that writes to persistent memory have been flushed all the way
    through the caches and buffers in the platform to persistent media.
    See memcpy_to_pmem() and wmb_pmem().

    BLK:
    This new driver enables access to persistent memory media through
    "Block Data Windows" as defined by the NFIT. The primary difference
    of this driver to PMEM is that only a small window of persistent
    memory is mapped into system address space at any given point in
    time.

    Per-NVDIMM windows are reprogrammed at run time, per-I/O, to access
    different portions of the media. BLK-mode, by definition, does not
    support DAX.

    BTT:
    This is a library, optionally consumed by either PMEM or BLK, that
    converts a byte-accessible namespace into a disk with atomic sector
    update semantics (prevents sector tearing on crash or power loss).

    The sinister aspect of sector tearing is that most applications do
    not know they have a atomic sector dependency. At least today's
    disk's rarely ever tear sectors and if they do one almost certainly
    gets a CRC error on access. NVDIMMs will always tear and always
    silently. Until an application is audited to be robust in the
    presence of sector-tearing the usage of BTT is recommended.

    Thanks to: Ross Zwisler, Jeff Moyer, Vishal Verma, Christoph Hellwig,
    Ingo Molnar, Neil Brown, Boaz Harrosh, Robert Elliott, Matthew Wilcox,
    Andy Rudoff, Linda Knippers, Toshi Kani, Nicholas Moulin, Rafael
    Wysocki, and Bob Moore"

    * tag 'libnvdimm-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm: (33 commits)
    arch, x86: pmem api for ensuring durability of persistent memory updates
    libnvdimm: Add sysfs numa_node to NVDIMM devices
    libnvdimm: Set numa_node to NVDIMM devices
    acpi: Add acpi_map_pxm_to_online_node()
    libnvdimm, nfit: handle unarmed dimms, mark namespaces read-only
    pmem: flag pmem block devices as non-rotational
    libnvdimm: enable iostat
    pmem: make_request cleanups
    libnvdimm, pmem: fix up max_hw_sectors
    libnvdimm, blk: add support for blk integrity
    libnvdimm, btt: add support for blk integrity
    fs/block_dev.c: skip rw_page if bdev has integrity
    libnvdimm: Non-Volatile Devices
    tools/testing/nvdimm: libnvdimm unit test infrastructure
    libnvdimm, nfit, nd_blk: driver for BLK-mode access persistent memory
    nd_btt: atomic sector updates
    libnvdimm: infrastructure for btt devices
    libnvdimm: write blk label set
    libnvdimm: write pmem label set
    libnvdimm: blk labels and namespace instantiation
    ...

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

    Pull kselftest update from Shuah Khan:
    "This update adds two new test suites: futex and seccomp.

    In addition, it includes fixes for bugs in timers, other tests, and
    compile framework. It introduces new quicktest feature to enable
    users to choose to run tests that complete in a short time"

    * tag 'linux-kselftest-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
    selftests: add quicktest support
    selftests: add seccomp suite
    selftest, x86: fix incorrect comment
    tools selftests: Fix 'clean' target with make 3.81
    selftests/futex: Add .gitignore
    kselftest: Add exit code defines
    selftests: Add futex tests to the top-level Makefile
    selftests/futex: Increment ksft pass and fail counters
    selftests/futex: Update Makefile to use lib.mk
    selftests: Add futex functional tests
    kselftests: timers: Check _ALARM clockids are supported before suspending
    kselftests: timers: Ease alarmtimer-suspend unreasonable latency value
    kselftests: timers: Increase delay between suspends in alarmtimer-suspend
    selftests/exec: do not install subdir as it is already created
    selftests/ftrace: install test.d
    selftests: copy TEST_DIRS to INSTALL_PATH
    Test compaction of mlocked memory
    selftests/mount: output WARN messages when mount test skipped
    selftests/timers: Make git ignore all binaries in timers test suite

    Linus Torvalds
     

27 Jun, 2015

3 commits

  • Pull staging driver updates from Greg KH:
    "Here's the big, really big, staging tree patches for 4.2-rc1.

    Loads of stuff in here, almost all just coding style fixes / churn,
    and a few new drivers as well, one of which I just disabled from the
    build a few minutes ago due to way too many build warnings.

    Other than the one "disable this driver" patch, all of these have been
    in linux-next for quite a while with no reported issues"

    * tag 'staging-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (1163 commits)
    staging: wilc1000: disable driver due to build warnings
    Staging: rts5208: fix CHANGE_LINK_STATE value
    Staging: sm750fb: ddk750_swi2c.c: Insert spaces before parenthesis
    Staging: sm750fb: ddk750_swi2c.c: Place braces on correct lines
    Staging: sm750fb: ddk750_swi2c.c: Insert spaces around operators
    Staging: sm750fb: ddk750_swi2c.c: Replace spaces with tabs
    Staging: sm750fb: ddk750_swi2c.h: Shorten lines to under 80 characters
    Staging: sm750fb: ddk750_swi2c.h: Replace spaces with tabs
    Staging: sm750fb: modedb.h: Shorten lines to under 80 characters
    Staging: sm750fb: modedb.h: Replace spaces with tabs
    staging: comedi: addi_apci_3120: rename 'this_board' variables
    staging: comedi: addi_apci_1516: rename 'this_board' variables
    staging: comedi: ni_atmio: cleanup ni_getboardtype()
    staging: comedi: vmk80xx: sanity check context used to get the boardinfo
    staging: comedi: vmk80xx: rename 'boardinfo' variables
    staging: comedi: dt3000: rename 'this_board' variables
    staging: comedi: adv_pci_dio: rename 'this_board' variables
    staging: comedi: cb_pcidas64: rename 'thisboard' variables
    staging: comedi: cb_pcidas: rename 'thisboard' variables
    staging: comedi: me4000: rename 'thisboard' variables
    ...

    Linus Torvalds
     
  • Pull char/misc driver updates from Greg KH:
    "Here's the big char/misc driver pull request for 4.2-rc1.

    Lots of mei, extcon, coresight, uio, mic, and other driver updates in
    here. Full details in the shortlog. All of these have been in
    linux-next for some time with no reported problems"

    * tag 'char-misc-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (176 commits)
    mei: me: wait for power gating exit confirmation
    mei: reset flow control on the last client disconnection
    MAINTAINERS: mei: add mei_cl_bus.h to maintained file list
    misc: sram: sort and clean up included headers
    misc: sram: move reserved block logic out of probe function
    misc: sram: add private struct device and virt_base members
    misc: sram: report correct SRAM pool size
    misc: sram: bump error message level on unclean driver unbinding
    misc: sram: fix device node reference leak on error
    misc: sram: fix enabled clock leak on error path
    misc: mic: Fix reported static checker warning
    misc: mic: Fix randconfig build error by including errno.h
    uio: pruss: Drop depends on ARCH_DAVINCI_DA850 from config
    uio: pruss: Add CONFIG_HAS_IOMEM dependence
    uio: pruss: Include
    extcon: Redefine the unique id of supported external connectors without 'enum extcon' type
    char:xilinx_hwicap:buffer_icap - change 1/0 to true/false for bool type variable in function buffer_icap_set_configuration().
    Drivers: hv: vmbus: Allocate ring buffer memory in NUMA aware fashion
    parport: check exclusive access before register
    w1: use correct lock on error in w1_seq_show()
    ...

    Linus Torvalds
     
  • Pull tracing updates from Steven Rostedt:
    "This patch series contains several clean ups and even a new trace
    clock "monitonic raw". Also some enhancements to make the ring buffer
    even faster. But the biggest and most noticeable change is the
    renaming of the ftrace* files, structures and variables that have to
    deal with trace events.

    Over the years I've had several developers tell me about their
    confusion with what ftrace is compared to events. Technically,
    "ftrace" is the infrastructure to do the function hooks, which include
    tracing and also helps with live kernel patching. But the trace
    events are a separate entity altogether, and the files that affect the
    trace events should not be named "ftrace". These include:

    include/trace/ftrace.h -> include/trace/trace_events.h
    include/linux/ftrace_event.h -> include/linux/trace_events.h

    Also, functions that are specific for trace events have also been renamed:

    ftrace_print_*() -> trace_print_*()
    (un)register_ftrace_event() -> (un)register_trace_event()
    ftrace_event_name() -> trace_event_name()
    ftrace_trigger_soft_disabled() -> trace_trigger_soft_disabled()
    ftrace_define_fields_##call() -> trace_define_fields_##call()
    ftrace_get_offsets_##call() -> trace_get_offsets_##call()

    Structures have been renamed:

    ftrace_event_file -> trace_event_file
    ftrace_event_{call,class} -> trace_event_{call,class}
    ftrace_event_buffer -> trace_event_buffer
    ftrace_subsystem_dir -> trace_subsystem_dir
    ftrace_event_raw_##call -> trace_event_raw_##call
    ftrace_event_data_offset_##call-> trace_event_data_offset_##call
    ftrace_event_type_funcs_##call -> trace_event_type_funcs_##call

    And a few various variables and flags have also been updated.

    This has been sitting in linux-next for some time, and I have not
    heard a single complaint about this rename breaking anything. Mostly
    because these functions, variables and structures are mostly internal
    to the tracing system and are seldom (if ever) used by anything
    external to that"

    * tag 'trace-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (33 commits)
    ring_buffer: Allow to exit the ring buffer benchmark immediately
    ring-buffer-benchmark: Fix the wrong type
    ring-buffer-benchmark: Fix the wrong param in module_param
    ring-buffer: Add enum names for the context levels
    ring-buffer: Remove useless unused tracing_off_permanent()
    ring-buffer: Give NMIs a chance to lock the reader_lock
    ring-buffer: Add trace_recursive checks to ring_buffer_write()
    ring-buffer: Allways do the trace_recursive checks
    ring-buffer: Move recursive check to per_cpu descriptor
    ring-buffer: Add unlikelys to make fast path the default
    tracing: Rename ftrace_get_offsets_##call() to trace_event_get_offsets_##call()
    tracing: Rename ftrace_define_fields_##call() to trace_event_define_fields_##call()
    tracing: Rename ftrace_event_type_funcs_##call to trace_event_type_funcs_##call
    tracing: Rename ftrace_data_offset_##call to trace_event_data_offset_##call
    tracing: Rename ftrace_raw_##call event structures to trace_event_raw_##call
    tracing: Rename ftrace_trigger_soft_disabled() to trace_trigger_soft_disabled()
    tracing: Rename FTRACE_EVENT_FL_* flags to EVENT_FILE_FL_*
    tracing: Rename struct ftrace_subsystem_dir to trace_subsystem_dir
    tracing: Rename ftrace_event_name() to trace_event_name()
    tracing: Rename FTRACE_MAX_EVENT to TRACE_EVENT_TYPE_MAX
    ...

    Linus Torvalds
     

26 Jun, 2015

14 commits

  • Upon detection of an unarmed dimm in a region, arrange for descendant
    BTT, PMEM, or BLK instances to be read-only. A dimm is primarily marked
    "unarmed" via flags passed by platform firmware (NFIT).

    The flags in the NFIT memory device sub-structure indicate the state of
    the data on the nvdimm relative to its energy source or last "flush to
    persistence". For the most part there is nothing the driver can do but
    advertise the state of these flags in sysfs and emit a message if
    firmware indicates that the contents of the device may be corrupted.
    However, for the case of ACPI_NFIT_MEM_ARMED, the driver can arrange for
    the block devices incorporating that nvdimm to be marked read-only.
    This is a safe default as the data is still available and new writes are
    held off until the administrator either forces read-write mode, or the
    energy source becomes armed.

    A 'read_only' attribute is added to REGION devices to allow for
    overriding the default read-only policy of all descendant block devices.

    Signed-off-by: Dan Williams

    Dan Williams
     
  • 'libnvdimm' is the first driver sub-system in the kernel to implement
    mocking for unit test coverage. The nfit_test module gets built as an
    external module and arranges for external module replacements of nfit,
    libnvdimm, nd_pmem, and nd_blk. These replacements use the linker
    --wrap option to redirect calls to ioremap() + request_mem_region() to
    custom defined unit test resources. The end result is a fully
    functional nvdimm_bus, as far as userspace is concerned, but with the
    capability to perform otherwise destructive tests on emulated resources.

    Q: Why not use QEMU for this emulation?
    QEMU is not suitable for unit testing. QEMU's role is to faithfully
    emulate the platform. A unit test's role is to unfaithfully implement
    the platform with the goal of triggering bugs in the corners of the
    sub-system implementation. As bugs are discovered in platforms, or the
    sub-system itself, the unit tests are extended to backstop a fix with a
    reproducer unit test.

    Another problem with QEMU is that it would require coordination of 3
    software projects instead of 2 (kernel + libndctl [1]) to maintain and
    execute the tests. The chances for bit rot and the difficulty of
    getting the tests running goes up non-linearly the more components
    involved.

    Q: Why submit this to the kernel tree instead of external modules in
    libndctl?
    Simple, to alleviate the same risk that out-of-tree external modules
    face. Updates to drivers/nvdimm/ can be immediately evaluated to see if
    they have any impact on tools/testing/nvdimm/.

    Q: What are the negative implications of merging this?
    It is a unique maintenance burden because the purpose of mocking an
    interface to enable a unit test is to purposefully short circuit the
    semantics of a routine to enable testing. For example
    __wrap_ioremap_cache() fakes the pmem driver into "ioremap()'ing" a test
    resource buffer allocated by dma_alloc_coherent(). The future
    maintenance burden hits when someone changes the semantics of
    ioremap_cache() and wonders what the implications are for the unit test.

    [1]: https://github.com/pmem/ndctl

    Cc:
    Cc: Lv Zheng
    Cc: Robert Moore
    Cc: Rafael J. Wysocki
    Cc: Christoph Hellwig
    Signed-off-by: Dan Williams

    Dan Williams
     
  • There 2 problems when reading symbols files:

    * It doesn't report any errors even if when users specify symbol
    files which don't exist with --kallsyms or --vmlinux. The result
    just shows the address without symbols, which is not what is expected.
    So it's better to report errors and exit the program.

    * When using command perf report --kallsyms=/proc/kallsyms with a
    non-root user, symbols are resolved. Then select one symbol and
    annotate it, it reports the error as the following:
    Can't annotate __clear_user: No vmlinux file with build id xxx was
    found.

    The problem is caused by reading /proc/kcore without access permission.
    /proc/kcore requires CAP_SYS_RAWIO capability to access, so it needs to
    change access permission to allow a specific user to read /proc/kcore or
    use root to execute the perf command.

    This patch is to report errors when symbol files specified by users
    don't exist. And check access permission of /proc/kcore when reading it.

    Signed-off-by: Li Zhang
    Cc: Sukadev Bhattiprolu
    Link: http://lkml.kernel.org/r/1434704253-2632-1-git-send-email-zhlcindy@linux.vnet.ibm.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Li Zhang
     
  • Currently all the -p option PID arguments tasks values get aggregated
    and printed as single values.

    Adding --per-tasks option to print values per task.

    $ perf stat -e cycles,instructions --per-thread -p 30190,30242
    ^C
    Performance counter stats for process id '30190,30242':

    cat-30190 0 cycles
    yes-30242 3,842,525,421 cycles
    cat-30190 0 instructions
    yes-30242 10,370,817,010 instructions

    1.143155657 seconds time elapsed

    Also works under interval mode:

    $ perf stat -e cycles,instructions --per-thread -p 30190,30242 -I 1000
    # time comm-pid counts unit events
    1.000073435 cat-30190 89,058 cycles
    1.000073435 yes-30242 3,360,786,902 cycles (100.00%)
    1.000073435 cat-30190 14,066 instructions
    1.000073435 yes-30242 9,069,937,462 instructions
    2.000204830 cat-30190 0 cycles
    2.000204830 yes-30242 3,351,667,626 cycles
    2.000204830 cat-30190 0 instructions
    2.000204830 yes-30242 9,045,796,885 instructions
    ^C 2.771286639 cat-30190 0 cycles
    2.771286639 yes-30242 2,593,884,166 cycles
    2.771286639 cat-30190 0 instructions
    2.771286639 yes-30242 7,001,171,191 instructions

    It works only with -t and -p options, otherwise following error is
    printed:

    $ perf stat -e cycles --per-thread -I 1000 ls
    The --per-thread option is only available when monitoring via -p -t options.
    -p, --pid stat events on existing process id
    -t, --tid stat events on existing thread id

    Signed-off-by: Jiri Olsa
    Tested-by: Arnaldo Carvalho de Melo
    Cc: Adrian Hunter
    Cc: Andi Kleen
    Cc: David Ahern
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1435310967-14570-23-git-send-email-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • Centralize counters print code into single print_counters function.

    Signed-off-by: Jiri Olsa
    Cc: Adrian Hunter
    Cc: Andi Kleen
    Cc: David Ahern
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1435310967-14570-22-git-send-email-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • The init_stats function is meant to init 'struct stats'.

    Reported-by: David Ahern
    Signed-off-by: Jiri Olsa
    Cc: Adrian Hunter
    Cc: Andi Kleen
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1435310967-14570-21-git-send-email-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • It suits better, because the function also reads counter's data.

    Also the 'print_interval' name will be used in following generalization
    of counters display.

    Signed-off-by: Jiri Olsa
    Cc: Adrian Hunter
    Cc: Andi Kleen
    Cc: David Ahern
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1435310967-14570-20-git-send-email-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • It's no longer used, the stat command uses perf_evsel__read now.

    Signed-off-by: Jiri Olsa
    Cc: Adrian Hunter
    Cc: Andi Kleen
    Cc: David Ahern
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1435310967-14570-19-git-send-email-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • Moving perf_stat initialization counter process code,
    to make the reading path free of processing logic.

    Signed-off-by: Jiri Olsa
    Cc: Adrian Hunter
    Cc: Andi Kleen
    Cc: David Ahern
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1435310967-14570-18-git-send-email-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • Moving zero_per_pkg into counter process code,
    to make the reading path free of processing logic.

    Signed-off-by: Jiri Olsa
    Cc: Adrian Hunter
    Cc: Andi Kleen
    Cc: David Ahern
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1435310967-14570-17-git-send-email-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • Separating counters reading and processing so we could use the
    processing part in following patches.

    Using simple reading via perf_evsel__read function to read counters now,
    because part of the processing was in the read_cb callback.

    Signed-off-by: Jiri Olsa
    Cc: Adrian Hunter
    Cc: Andi Kleen
    Cc: David Ahern
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1435310967-14570-16-git-send-email-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • Moving read counters logic into single read_counters function, which
    will be called for both interval and overall processing legs.

    The reason is to split reading and processing (following patches)
    counters code, so we could read counters from other sources (like
    perf.data) and process them in the same way as 'perf stat' command does.

    Signed-off-by: Jiri Olsa
    Cc: Adrian Hunter
    Cc: Andi Kleen
    Cc: David Ahern
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1435310967-14570-15-git-send-email-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • Adding simple read function that reads/store data into given struct
    perf_counts_values *count object.

    Signed-off-by: Jiri Olsa
    Cc: Adrian Hunter
    Cc: Andi Kleen
    Cc: David Ahern
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1435310967-14570-14-git-send-email-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • Move all stat allocation logic related to stat object under single
    function. This way we can use it separately for stat object out of
    evlist object.

    Signed-off-by: Jiri Olsa
    Cc: Adrian Hunter
    Cc: Andi Kleen
    Cc: David Ahern
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1435310967-14570-13-git-send-email-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa