1. 25 Sep, 2015 1 commit
    • Arnaldo Carvalho de Melo's avatar
      perf probe: Use existing routine to look for a kernel module by dso->short_name · 266fa2b2
      Arnaldo Carvalho de Melo authored
      We have map_groups__find_by_name() to look at the list of modules that
      are in place for a given machine, so use it instead of traversing the
      machine dso list, which also includes DSOs for userspace.
      
      When merging the user and kernel DSO lists a bug was introduced where
      'perf probe' stopped being able to add probes to modules using its short
      name:
      
        # perf probe -m usbnet --add usbnet_start_xmit
        usbnet_start_xmit is out of .text, skip it.
          Error: Failed to add events.
        #
      
      With this fix it works again:
      
        # perf probe -m usbnet --add usbnet_start_xmit
        Added new event:
          probe:usbnet_start_xmit (on usbnet_start_xmit in usbnet)
      
        You can now use it in all perf tools, such as:
      
        	perf record -e probe:usbnet_start_xmit -aR sleep 1
        #
      Reported-by: default avatarWang Nan <wangnan0@huawei.com>
      Acked-by: default avatarMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Stephane Eranian <eranian@google.com>
      Fixes: 3d39ac53 ("perf machine: No need to have two DSOs lists")
      Link: http://lkml.kernel.org/r/20150924015008.GE1897@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      266fa2b2
  2. 23 Sep, 2015 1 commit
  3. 22 Sep, 2015 1 commit
  4. 18 Sep, 2015 19 commits
  5. 17 Sep, 2015 18 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client · 8e64a733
      Linus Torvalds authored
      Pull Ceph fixes from Sage Weil:
       "These are both fixes to the new and improved keepalive2 behavior"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
        libceph: advertise support for keepalive2
        libceph: don't access invalid memory in keepalive2 path
      8e64a733
    • Linus Torvalds's avatar
      Merge tag 'for-v4.3-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply · 2e5735f4
      Linus Torvalds authored
      Pull power supply fixes from Sebastian Reichel:
       "twl4030-charger fixes"
      
      * tag 'for-v4.3-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply:
        twl4030_charger: fix another compile error
        Revert "twl4030_charger: correctly handle -EPROBE_DEFER from devm_usb_get_phy_by_node"
      2e5735f4
    • Peter Senna Tschudin's avatar
      perf tools: Bool functions shouldn't return -1 · bf644563
      Peter Senna Tschudin authored
      Returning a negative value for a boolean function seem to have the
      undesired effect of returning true. Replace -1 by false in a
      bool-returning function.
      
      The diff of the .s file before and after the change (for x86_64):
      
        3907c3907
        < 	movl	$1, %ebx
        ---
        > 	xorl	%ebx, %ebx
      
      while if -1 is replaced by true, the diff is empty.
      
      This issue was found by the following Coccinelle semantic patch:
      
        <smpl>
        @@
        identifier f;
        constant C;
        typedef bool;
        @@
        bool f (...){
        <+...
        * return -C;
        ...+>
        }
        </smpl>
      Signed-off-by: default avatarPeter Senna Tschudin <peter.senna@gmail.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kan Liang <kan.liang@intel.com>
      Cc: Matt Fleming <matt.fleming@intel.com>
      Cc: Milos Vyletel <milos@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1442484533-19742-1-git-send-email-peter.senna@gmail.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      bf644563
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · d109c4bb
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "This addresses some problems with filesystem writeback due to the
        recently merged hardware DBM patches, which caused us to treat some
        read-only pages as dirty.
      
        There are also some other, less significant fixes that are described
        in the summary below:
      
        A mixture of fixes for regressions introduced during the merge window,
        some longer standing problems that we spotted and a couple of hardware
        errata.  The main changes are:
      
         - Fix fallout from the h/w DBM patches, causing filesystem writeback
           issues on both v8 and v8.1 CPUs
      
         - Workaround for Cortex-A53 erratum #843419 in the module loader
      
         - Fix for long-standing issue with compat big-endian signal handlers
           using the saved floating point state"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: errata: add module build workaround for erratum #843419
        arm64: compat: fix vfp save/restore across signal handlers in big-endian
        arm64: cpu hotplug: ensure we mask out CPU_TASKS_FROZEN in notifiers
        arm64: head.S: initialise mdcr_el2 in el2_setup
        arm64: enable generic idle loop
        arm64: pgtable: use a single bit for PTE_WRITE regardless of DBM
        arm64: Fix pte_modify() to preserve the hardware dirty information
        arm64: Fix the pte_hw_dirty() check when AF/DBM is enabled
        arm64: dma-mapping: check whether cma area is initialized or not
      d109c4bb
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 42dc2a30
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       - misc fixes all around the map
       - block non-root vm86(old) if mmap_min_addr != 0
       - two small debuggability improvements
       - removal of obsolete paravirt op
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/platform: Fix Geode LX timekeeping in the generic x86 build
        x86/apic: Serialize LVTT and TSC_DEADLINE writes
        x86/ioapic: Force affinity setting in setup_ioapic_dest()
        x86/paravirt: Remove the unused pv_time_ops::get_tsc_khz method
        x86/ldt: Fix small LDT allocation for Xen
        x86/vm86: Fix the misleading CONFIG_VM86 Kconfig help text
        x86/cpu: Print family/model/stepping in hex
        x86/vm86: Block non-root vm86(old) if mmap_min_addr != 0
        x86/alternatives: Make optimize_nops() interrupt safe and synced
        x86/mm/srat: Print non-volatile flag in SRAT
        x86/cpufeatures: Enable cpuid for Intel SHA extensions
      42dc2a30
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1345df21
      Linus Torvalds authored
      Pull timer fixes from Ingo Molnar:
       "A fix for an abs()/abs64() bug that caused too slow NTP convergence on
        32-bit kernels, plus a removal of an obsolete clockevents driver
        facility after all users got converted during the merge window"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        clockevents: Remove unused set_mode() callback
        time: Fix timekeeping_freqadjust()'s incorrect use of abs() instead of abs64()
      1345df21
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c2ea72fd
      Linus Torvalds authored
      Pull scheduler fixes from Ingo Molnar:
       "A migrate_tasks() locking fix, and a late-coming nohz change plus a
        nohz debug check"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched: 'Annotate' migrate_tasks()
        nohz: Assert existing housekeepers when nohz full enabled
        nohz: Affine unpinned timers to housekeepers
      c2ea72fd
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a706797f
      Linus Torvalds authored
      Pull perf fixes from Ingo MOlnar:
       "Mostly tooling fixes, but also two x86 PMU driver fixes"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf tests: Fix software clock events test setting maps
        perf tests: Fix task exit test setting maps
        perf evlist: Fix create_syswide_maps() not propagating maps
        perf evlist: Fix add() not propagating maps
        perf evlist: Factor out a function to propagate maps for a single evsel
        perf evlist: Make create_maps() use set_maps()
        perf evlist: Make set_maps() more resilient
        perf evsel: Add own_cpus member
        perf evlist: Fix missing thread_map__put in propagate_maps()
        perf evlist: Fix splice_list_tail() not setting evlist
        perf evlist: Add has_user_cpus member
        perf evlist: Remove redundant validation from propagate_maps()
        perf evlist: Simplify set_maps() logic
        perf evlist: Simplify propagate_maps() logic
        perf top: Fix segfault pressing -> with no hist entries
        perf header: Fixup reading of HEADER_NRCPUS feature
        perf/x86/intel: Fix constraint access
        perf/x86/intel/bts: Set event->hw.itrace_started in pmu::start to match the new logic
        perf tools: Fix use of wrong event when processing exit events
        perf tools: Fix parse_events_add_pmu caller
      a706797f
    • Ilya Dryomov's avatar
      libceph: advertise support for keepalive2 · 335c2585
      Ilya Dryomov authored
      We are the client, but advertise keepalive2 anyway - for consistency,
      if nothing else.  In the future the server might want to know whether
      its clients support keepalive2.
      Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
      Reviewed-by: default avatarYan, Zheng <zyan@redhat.com>
      335c2585
    • Ilya Dryomov's avatar
      libceph: don't access invalid memory in keepalive2 path · 7f61f545
      Ilya Dryomov authored
      This
      
          struct ceph_timespec ceph_ts;
          ...
          con_out_kvec_add(con, sizeof(ceph_ts), &ceph_ts);
      
      wraps ceph_ts into a kvec and adds it to con->out_kvec array, yet
      ceph_ts becomes invalid on return from prepare_write_keepalive().  As
      a result, we send out bogus keepalive2 stamps.  Fix this by encoding
      into a ceph_timespec member, similar to how acks are read and written.
      Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
      Reviewed-by: default avatarYan, Zheng <zyan@redhat.com>
      7f61f545
    • Arnaldo Carvalho de Melo's avatar
      tools build: Add test for presence of __get_cpuid() gcc builtin · b0063dbf
      Arnaldo Carvalho de Melo authored
      The auxtrace code needed by Intel PT uses the __get_cpuid() gcc builtin,
      that is not present in old systems, breaking the build.
      
      Add a test to check for that builtin and disable AUXTRACE in those
      systems.
      
        [acme@rhel5 linux]$  make NO_LIBPERL=1 -C tools/perf O=/tmp/build/perf install-bin
        make: Entering directory `/home/acme/git/linux/tools/perf'
          BUILD:   Doing 'make -j2' parallel build
      
        Auto-detecting system features:
        <SNIP>
        ...                          lzma: [ on  ]
        ...                     get_cpuid: [ OFF ]
        <SNIP>
        config/Makefile:630: Your gcc lacks the __get_cpuid() builtin, disables support for auxtrace/Intel PT, please install a newer gcc
          MKDIR    /tmp/build/perf/util/
        <SNIP>
      
      This fixes the build on old systems such as RHEL/CentOS 5.11.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Victor Kamensky <victor.kamensky@linaro.org>
      Cc: Vinson Lee <vlee@twopensource.com>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/n/tip-d4puslul0jltoodzpx9r4sje@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      b0063dbf
    • Arnaldo Carvalho de Melo's avatar
      tools build: Add test for presence of numa_num_possible_cpus() in libnuma · f8ac8606
      Arnaldo Carvalho de Melo authored
      The existing numa test checks only if numa.h and numa_available() are
      present, but that can be satisfied with an old libnuma that is not
      enough for the 'perf bench numa' entry, so add a test to check for that:
      
        [acme@rhel5 linux]$  make NO_AUXTRACE=1 NO_LIBPERL=1 -C tools/perf O=/tmp/build/perf install-bin
        make: Entering directory `/home/acme/git/linux/tools/perf'
          BUILD:   Doing 'make -j2' parallel build
      
        Auto-detecting system features:
        ...                        libelf: [ on  ]
        ...                       libnuma: [ on  ]
        ...        numa_num_possible_cpus: [ OFF ]
        ...                       libperl: [ on  ]
      
        <SNIP>
        config/Makefile:577: Old numa library found, disables 'perf bench numa mem' benchmark, please install numactl-devel/libnuma-devel/libnuma-dev >= 2.0.8
          INSTALL  binaries
        <SNIP>
      
      This fixes the build on old systems such as RHEL/CentOS 5.11.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Victor Kamensky <victor.kamensky@linaro.org>
      Cc: Vinson Lee <vlee@twopensource.com>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/n/tip-zqriqkezppi2de2iyjin1tnc@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      f8ac8606
    • Arnaldo Carvalho de Melo's avatar
      Revert "perf symbols: Fix mismatched declarations for elf_getphdrnum" · 179f36dd
      Arnaldo Carvalho de Melo authored
      This reverts commit f785f235.
      
      We have a test to check if elf_getphdrnum() is present, so, if it fails,
      we'll get:
      
        [acme@rhel5 linux]$ cat /tmp/build/perf/feature/test-libelf-getphdrnum.make.output
        cc1: warnings being treated as errors
        test-libelf-getphdrnum.c: In function ‘main’:
        test-libelf-getphdrnum.c:7: warning: implicit declaration of function ‘elf_getphdrnum’
        [acme@rhel5 linux]$
      
      And this block will not be compiled:
      
        #ifndef HAVE_ELF_GETPHDRNUM_SUPPORT
        static int elf_getphdrnum(Elf *elf, size_t *dst)
        ...
        #endif
      
      So, if elf_getphdrnum() is being defined somewhere, there is a problem
      with the test that is not detecting that function, go fix it.
      Reported-by: default avatarVinson Lee <vlee@twopensource.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Victor Kamensky <victor.kamensky@linaro.org>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/n/tip-qn459fal6acvcvm50i8zxx9k@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      179f36dd
    • Linus Torvalds's avatar
      Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9786cff3
      Linus Torvalds authored
      Pull locking fixes from Ingo Molnar:
       "Spinlock performance regression fix, plus documentation fixes"
      
      * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        locking/static_keys: Fix up the static keys documentation
        locking/qspinlock/x86: Only emit the test-and-set fallback when building guest support
        locking/qspinlock/x86: Fix performance regression under unaccelerated VMs
        locking/static_keys: Fix a silly typo
      9786cff3
    • Linus Torvalds's avatar
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1b3dfde3
      Linus Torvalds authored
      Pull RCU fix from Ingo Molnar:
       "Fix a false positive warning"
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        security/device_cgroup: Fix RCU_LOCKDEP_WARN() condition
      1b3dfde3
    • Will Deacon's avatar
      arm64: errata: add module build workaround for erratum #843419 · df057cc7
      Will Deacon authored
      Cortex-A53 processors <= r0p4 are affected by erratum #843419 which can
      lead to a memory access using an incorrect address in certain sequences
      headed by an ADRP instruction.
      
      There is a linker fix to generate veneers for ADRP instructions, but
      this doesn't work for kernel modules which are built as unlinked ELF
      objects.
      
      This patch adds a new config option for the erratum which, when enabled,
      builds kernel modules with the mcmodel=large flag. This uses absolute
      addressing for all kernel symbols, thereby removing the use of ADRP as
      a PC-relative form of addressing. The ADRP relocs are removed from the
      module loader so that we fail to load any potentially affected modules.
      
      Cc: <stable@vger.kernel.org>
      Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      df057cc7
    • Will Deacon's avatar
      arm64: compat: fix vfp save/restore across signal handlers in big-endian · bdec97a8
      Will Deacon authored
      When saving/restoring the VFP registers from a compat (AArch32)
      signal frame, we rely on the compat registers forming a prefix of the
      native register file and therefore make use of copy_{to,from}_user to
      transfer between the native fpsimd_state and the compat_vfp_sigframe.
      
      Unfortunately, this doesn't work so well in a big-endian environment.
      Our fpsimd save/restore code operates directly on 128-bit quantities
      (Q registers) whereas the compat_vfp_sigframe represents the registers
      as an array of 64-bit (D) registers. The architecture packs the compat D
      registers into the Q registers, with the least significant bytes holding
      the lower register. Consequently, we need to swap the 64-bit halves when
      converting between these two representations on a big-endian machine.
      
      This patch replaces the __copy_{to,from}_user invocations in our
      compat VFP signal handling code with explicit __put_user loops that
      operate on 64-bit values and swap them accordingly.
      
      Cc: <stable@vger.kernel.org>
      Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      bdec97a8
    • Will Deacon's avatar
      arm64: cpu hotplug: ensure we mask out CPU_TASKS_FROZEN in notifiers · e56d82a1
      Will Deacon authored
      We have a couple of CPU hotplug notifiers for resetting the CPU debug
      state to a sane value when a CPU comes online.
      
      This patch ensures that we mask out CPU_TASKS_FROZEN so that we don't
      miss any online events occuring due to suspend/resume.
      Acked-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      e56d82a1