1. 23 Sep, 2015 2 commits
    • Namhyung Kim's avatar
      perf record: Synthesize COMM event for a command line workload · e803cf97
      Namhyung Kim authored
      When perf creates a new child to profile, the events are enabled on
      exec().  And in this case, it doesn't synthesize any event for the
      child since they'll be generated during exec().  But there's an window
      between the enabling and the event generation.
      
      It used to be overcome since samples are only in kernel (so we always
      have the map) and the comm is overridden by a later COMM event.
      However it won't work if events are processed and displayed before the
      COMM event overrides like in 'perf script'.  This leads to those early
      samples (like native_write_msr_safe) not having a comm but pid (like
      ':15328').
      
      So it needs to synthesize COMM event for the child explicitly before
      enabling so that it can have a correct comm.  But at this time, the
      comm will be "perf" since it's not exec-ed yet.
      
      Committer note:
      
      Before this patch:
      
        # perf record usleep 1
        [ perf record: Woken up 1 times to write data ]
        [ perf record: Captured and wrote 0.017 MB perf.data (7 samples) ]
        # perf script --show-task-events
          :4429  4429 27909.079372:          1 cycles:  ffffffff8105f45a native_write_msr_safe (/lib/modules/4.
          :4429  4429 27909.079375:          1 cycles:  ffffffff8105f45a native_write_msr_safe (/lib/modules/4.
          :4429  4429 27909.079376:         10 cycles:  ffffffff8105f45a native_write_msr_safe (/lib/modules/4.
          :4429  4429 27909.079377:        223 cycles:  ffffffff8105f45a native_write_msr_safe (/lib/modules/4.
          :4429  4429 27909.079378:       6571 cycles:  ffffffff8105f45a native_write_msr_safe (/lib/modules/4.
         usleep  4429 27909.079380: PERF_RECORD_COMM exec: usleep:4429/4429
         usleep  4429 27909.079381:     185403 cycles:  ffffffff810a72d3 flush_signal_handlers (/lib/modules/4.
         usleep  4429 27909.079444:    2241110 cycles:      7fc575355be3 _dl_start (/usr/lib64/ld-2.20.so)
         usleep  4429 27909.079875: PERF_RECORD_EXIT(4429:4429):(4429:4429)
      
      After:
      
        # perf record usleep 1
        [ perf record: Woken up 1 times to write data ]
        [ perf record: Captured and wrote 0.017 MB perf.data (7 samples) ]
        # perf script --show-task
           perf     0     0.000000: PERF_RECORD_COMM: perf:8446/8446
           perf  8446 30154.038944:          1 cycles:  ffffffff8105f45a native_write_msr_safe (/lib/modules/4.
           perf  8446 30154.038948:          1 cycles:  ffffffff8105f45a native_write_msr_safe (/lib/modules/4.
           perf  8446 30154.038949:          9 cycles:  ffffffff8105f45a native_write_msr_safe (/lib/modules/4.
           perf  8446 30154.038950:        230 cycles:  ffffffff8105f45a native_write_msr_safe (/lib/modules/4.
           perf  8446 30154.038951:       6772 cycles:  ffffffff8105f45a native_write_msr_safe (/lib/modules/4.
         usleep  8446 30154.038952: PERF_RECORD_COMM exec: usleep:8446/8446
         usleep  8446 30154.038954:     196923 cycles:  ffffffff81766440 _raw_spin_lock (/lib/modules/4.3.0-rc1
         usleep  8446 30154.039021:    2292130 cycles:      7f609a173dc4 memcpy (/usr/lib64/ld-2.20.so)
         usleep  8446 30154.039349: PERF_RECORD_EXIT(8446:8446):(8446:8446)
        #
      Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1442881495-2928-1-git-send-email-namhyung@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      e803cf97
    • Arnaldo Carvalho de Melo's avatar
      tools vm: Fix build due to removal of tools/lib/api/fs/debugfs.h · f6489bc2
      Arnaldo Carvalho de Melo authored
      There were some changes in how this debugfs mounting helper is
      implemented/exported and we forgot to check if there were other users
      besides perf, fix it.
      
      Need to do a make -C tools/ everytime we do changes to
      tools/{lib,include} and other places where we're moving things from
      tools/perf/ to be used by other tools/ living code.
      
      Fixed:
      
        $ make -C tools/vm
        make: Entering directory '/home/git/linux/tools/vm'
        make -C ../lib/api
        make[1]: Entering directory '/home/git/linux/tools/lib/api'
          CC       fd/array.o
          LD       fd/libapi-in.o
          CC       fs/fs.o
          CC       fs/tracing_path.o
          LD       fs/libapi-in.o
          CC       cpu.o
          LD       libapi-in.o
          AR       libapi.a
        make[1]: Leaving directory '/home/git/linux/tools/lib/api'
        gcc -Wall -Wextra -I../lib/ -o page-types page-types.c ../lib/api/libapi.a
        make: Leaving directory '/home/git/linux/tools/vm'
        $
      Reported-by: default avatarVinson Lee <vlee@twopensource.com>
      Tested-by: default avatarVinson Lee <vlee@twopensource.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Matt Fleming <matt@codeblueprint.co.uk>
      Cc: Raphael Beamonte <raphael.beamonte@gmail.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Fixes: 60a1133a ("tools lib api fs: Remove debugfs, tracefs and findfs objects")
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      f6489bc2
  2. 22 Sep, 2015 5 commits
    • Jiri Olsa's avatar
      perf tools: Add include/err.h into MANIFEST · 96d8bf75
      Jiri Olsa authored
      Otherwise the tarpkg is incomplete (tarpkg tests fails).
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Wang Nan <wangnan0@huawei.com>
      Fixes: 01ca9fd4 ("tools: Add err.h with ERR_PTR PTR_ERR interface")
      Link: http://lkml.kernel.org/r/1442846143-8556-1-git-send-email-jolsa@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      96d8bf75
    • Arnaldo Carvalho de Melo's avatar
      tools lib bpf: Use FEATURE_USER to allow building in the same dir as perf · 65f041be
      Arnaldo Carvalho de Melo authored
      When building tools/lib/bpf as part of the tools/perf/ build process,
      which will happend when we introduce a patch wiring that up, we end up
      stomping on the feature detection caching mechanism, that uses a file in
      the output directory (O=) that is shared by libbpf and perf to check if
      something changed from one build to another that requires redoing the
      feature detection process.
      
      By using the recently introduced FEATURE_USER tools/build/ knob, we can
      avoid that:
      
      Before, every make invokation would run the feature detection:
      
        $ make O=/tmp/build/perf -C tools/perf
        make: Entering directory '/home/git/linux/tools/perf'
        Auto-detecting system features:
        ...                         dwarf: [ on  ]
        ...                         glibc: [ on  ]
        <SNIP>
        ...                     get_cpuid: [ on  ]
        ...                           bpf: [ on  ]
      
          GEN      perf-archive
          GEN      perf-with-kcore
      
        Auto-detecting system features:
        ...                        libelf: [ on  ]
        ...                           bpf: [ on  ]
        <SNIP>
      
      After:
      
        $ make O=/tmp/build/perf -C tools/perf
        make: Entering directory '/home/git/linux/tools/perf'
          BUILD:   Doing 'make -j4' parallel build
        make: Leaving directory '/home/git/linux/tools/perf'
        $
      
      Because we now have two different feature detection state files:
      
        $ ls -la /tmp/build/perf/FEATURE-DUMP*
        -rw-rw-r--. 1 acme acme 338 Sep 21 17:25 /tmp/build/perf/FEATURE-DUMP
        -rw-rw-r--. 1 acme acme  33 Sep 21 17:25 /tmp/build/perf/FEATURE-DUMP.libbpf
        $
      Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexei Starovoitov <ast@plumgrid.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Wang Nan <wangnan0@huawei.com>
      Cc: pi3orama@163.com
      Fixes: 1b76c13e ("bpf tools: Introduce 'bpf' library and add bpf feature check")
      Link: http://lkml.kernel.org/n/tip-s6ev9wfqy7pvvs58emys2g90@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      65f041be
    • Arnaldo Carvalho de Melo's avatar
      tools build: Allow setting the feature detection user · 13e96db6
      Arnaldo Carvalho de Melo authored
      We will use the tools/build/ autodetection in the eBPF patchkit
      and it is currently sharing the output directory with perf, that
      also uses the feature detection logic.
      
      As we keep state in the output directory, so that we can avoid running
      all the tests again, we need to have different filenames for the files
      used in this state, allow doing that via the FEATURE_USER variable, to
      be set alongside the existing FEATURE_{TEST,DISPLAY} variables.
      
      v2: Fix comment describing the FEATURE_DUMP filename to make sure where
          it is created, precisely at $(OUTPUT)FEATURE-DUMP$(FEATURE_USER).
          Pointed out by Jiri.
      Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Alexei Starovoitov <ast@plumgrid.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: Namhyung Kim <namhyung@kernel.org>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Wang Nan <wangnan0@huawei.com>
      Cc: pi3orama@163.com
      Link: http://lkml.kernel.org/n/tip-fdbev0vrn3x6idqc3ajbnvcb@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      13e96db6
    • Arnaldo Carvalho de Melo's avatar
      tools lib bpf: Fix up FEATURE_{TESTS,DISPLAY} usage · 20517cd9
      Arnaldo Carvalho de Melo authored
      When libbpf was introduced it wrongly asked for the "libelf" and "bpf"
      feature tests to be performed (via FEATURE_TESTS), while asking that
      "libbpf", "libelf-mmap", "libelf-getphdrnum" and "bpf" to have the
      result of its respective tests to be displayed (via FEATURE_DISPLAY).
      
      Due to another recently bug fixed in the tools/build/ infrastructure
      ("tools build: Fixup feature detection display function name") the
      results for the entries in the FEATURE_DISPLAY, for this case, were
      appearing as all succeeding, when two of them (the ones only on the
      DISPLAY) were not even being performed.
      
      Before:
      
        $ make -C tools/lib/bpf/
        make: Entering directory '/home/git/linux/tools/lib/bpf'
        Auto-detecting system features:
        ...                        libelf: [ on  ]
        ...             libelf-getphdrnum: [ OFF ]
        ...                   libelf-mmap: [ OFF ]
        ...                           bpf: [ on  ]
        <SNIP>
      
      After, with FEATURE_TESTS == FEATURE_DISPLAY:
      
        Auto-detecting system features:
        ...                        libelf: [ on  ]
        ...             libelf-getphdrnum: [ on  ]
        ...                   libelf-mmap: [ on  ]
        ...                           bpf: [ on  ]
        <SNIP>
      
      I just inverted, so that it tests the four features but displays just
      the libelf and mmap ones, to make it more compact. So it becomes:
      
        $ make -C tools/lib/bpf/
        make: Entering directory '/home/git/linux/tools/lib/bpf'
      
        Auto-detecting system features:
        ...                        libelf: [ on  ]
        ...                           bpf: [ on  ]
      Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexei Starovoitov <ast@plumgrid.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Wang Nan <wangnan0@huawei.com>
      Cc: pi3orama@163.com
      Fixes: 1b76c13e ("bpf tools: Introduce 'bpf' library and add bpf feature check")
      Link: http://lkml.kernel.org/n/tip-y4bd59e6j9rzzojiyeqrg2jq@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      20517cd9
    • Arnaldo Carvalho de Melo's avatar
      tools build: Fixup feature detection display function name · 6076e2a4
      Arnaldo Carvalho de Melo authored
      Cut'n'paste mistake, it should eval the name of the function
      defined right next to it, in the next line, fix it.
      
      Before:
      
        $ make -C tools/lib/bpf/
        make: Entering directory '/home/git/linux/tools/lib/bpf'
      
        Auto-detecting system features:
        ...                        libelf: [ on  ]
        ...             libelf-getphdrnum: [ on  ]
        ...                   libelf-mmap: [ on  ]
        ...                           bpf: [ on  ]
        <SNIP>
      
      After:
      
        $ make -C tools/lib/bpf/
        make: Entering directory '/home/git/linux/tools/lib/bpf'
      
        Auto-detecting system features:
        ...                        libelf: [ on  ]
        ...             libelf-getphdrnum: [ OFF ]
        ...                   libelf-mmap: [ OFF ]
        ...                           bpf: [ on  ]
        <SNIP>
      Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexei Starovoitov <ast@plumgrid.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Wang Nan <wangnan0@huawei.com>
      Cc: pi3orama@163.com
      Fixes: 58d4f00f ("perf build: Fix feature_check name clash")
      Link: http://lkml.kernel.org/n/tip-dzu1c4sruukgfq5d5b1c4r30@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      6076e2a4
  3. 21 Sep, 2015 2 commits
  4. 18 Sep, 2015 20 commits
  5. 17 Sep, 2015 11 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