1. 03 Jan, 2019 2 commits
    • Jin Yao's avatar
      perf stat: Fix endless wait for child process · 8a99255a
      Jin Yao authored
      We hit a 'perf stat' issue by using following script:
      
        #!/bin/bash
      
        sleep 1000 &
        exec perf stat -a -e cycles -I1000 -- sleep 5
      
      Since "perf stat" is launched by exec, the "sleep 1000" would be the
      child process of "perf stat". The wait4() call will not return because
      it's waiting for the child process "sleep 1000" to end. So 'perf stat'
      doesn't return even after 5s passes.
      
      This patch lets 'perf stat' return when the specified child process ends
      (in this case, the specified child process is "sleep 5").
      
      Committer testing:
      
        # cat test.sh
        #!/bin/bash
      
        sleep 10 &
        exec perf stat -a -e cycles -I1000 -- sleep 5
        #
      
      Before:
      
        # time ./test.sh
        #           time             counts unit events
             1.001113090        108,453,351      cycles
             2.002062196        142,075,435      cycles
             3.002896194        164,801,068      cycles
             4.003731666        107,062,140      cycles
             5.002068867        112,241,832      cycles
      
        real	0m10.066s
        user	0m0.016s
        sys	0m0.101s
        #
      
      After:
      
        # time ./test.sh
        #           time             counts unit events
             1.001016096         91,412,027      cycles
             2.002014963        124,063,708      cycles
             3.002883964        125,993,929      cycles
             4.003706470        120,465,734      cycles
             5.002006778        163,560,355      cycles
      
        real	0m5.123s
        user	0m0.014s
        sys	0m0.105s
        #
      Signed-off-by: default avatarJin Yao <yao.jin@linux.intel.com>
      Reviewed-by: default avatarJiri Olsa <jolsa@kernel.org>
      Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/1546501245-4512-1-git-send-email-yao.jin@linux.intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      8a99255a
    • Ingo Molnar's avatar
      Merge tag 'perf-core-for-mingo-4.21-20190103' of... · 2573be22
      Ingo Molnar authored
      Merge tag 'perf-core-for-mingo-4.21-20190103' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
      
      Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:
      
      perf c2c:
      
        Jiri Olsa:
      
        - Change the default coalesce setup to from '--coalesce pid,iaddr' to just '--coalesce iaddr'.
      
        - Increase the HITM ratio limit for displayed cachelines.
      
      perf script:
      
        Andi Kleen:
      
        - Fix LBR skid dump problems in brstackinsn.
      
      perf trace:
      
        Arnaldo Carvalho de Melo:
      
        - Check if the raw_syscalls:sys_{enter,exit} are setup before setting tp filter.
      
        - Do not hardcode the size of the tracepoint common_ fields.
      
        - Beautify USBDEFFS_ ioctl commands.
      
        Colin Ian King:
      
        - Use correct SECCOMP prefix spelling, "SECOMP_*" -> "SECCOMP_*".
      
      perf python:
      
        Jiri Olsa:
      
        - Do not force closing original perf descriptor in evlist.get_pollfd().
      
      tools misc:
      
        Jiri Olsa:
      
        - Allow overriding CFLAGS and LDFLAGS.
      
      perf build:
      
        Stanislav Fomichev:
      
        - Don't unconditionally link the libbfd feature test to -liberty and -lz
      
      thread-stack:
      
        Adrian Hunter:
      
        - Fix processing for the idle task, having a stack per cpu.
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      2573be22
  2. 02 Jan, 2019 8 commits
  3. 28 Dec, 2018 17 commits
  4. 27 Dec, 2018 10 commits
  5. 26 Dec, 2018 3 commits
    • Linus Torvalds's avatar
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 17bf423a
      Linus Torvalds authored
      Pull scheduler updates from Ingo Molnar:
       "The main changes in this cycle were:
      
         - Introduce "Energy Aware Scheduling" - by Quentin Perret.
      
           This is a coherent topology description of CPUs in cooperation with
           the PM subsystem, with the goal to schedule more energy-efficiently
           on asymetric SMP platform - such as waking up tasks to the more
           energy-efficient CPUs first, as long as the system isn't
           oversubscribed.
      
           For details of the design, see:
      
              https://lore.kernel.org/lkml/20180724122521.22109-1-quentin.perret@arm.com/
      
         - Misc cleanups and smaller enhancements"
      
      * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits)
        sched/fair: Select an energy-efficient CPU on task wake-up
        sched/fair: Introduce an energy estimation helper function
        sched/fair: Add over-utilization/tipping point indicator
        sched/fair: Clean-up update_sg_lb_stats parameters
        sched/toplogy: Introduce the 'sched_energy_present' static key
        sched/topology: Make Energy Aware Scheduling depend on schedutil
        sched/topology: Disable EAS on inappropriate platforms
        sched/topology: Add lowest CPU asymmetry sched_domain level pointer
        sched/topology: Reference the Energy Model of CPUs when available
        PM: Introduce an Energy Model management framework
        sched/cpufreq: Prepare schedutil for Energy Aware Scheduling
        sched/topology: Relocate arch_scale_cpu_capacity() to the internal header
        sched/core: Remove unnecessary unlikely() in push_*_task()
        sched/topology: Remove the ::smt_gain field from 'struct sched_domain'
        sched: Fix various typos in comments
        sched/core: Clean up the #ifdef block in add_nr_running()
        sched/fair: Make some variables static
        sched/core: Create task_has_idle_policy() helper
        sched/fair: Add lsub_positive() and use it consistently
        sched/fair: Mask UTIL_AVG_UNCHANGED usages
        ...
      17bf423a
    • Linus Torvalds's avatar
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 116b081c
      Linus Torvalds authored
      Pull perf updates from Ingo Molnar:
       "The main changes in this cycle on the kernel side:
      
         - rework kprobes blacklist handling (Masami Hiramatsu)
      
         - misc cleanups
      
        on the tooling side these areas were the main focus:
      
         - 'perf trace'     enhancements (Arnaldo Carvalho de Melo)
      
         - 'perf bench'     enhancements (Davidlohr Bueso)
      
         - 'perf record'    enhancements (Alexey Budankov)
      
         - 'perf annotate'  enhancements (Jin Yao)
      
         - 'perf top'       enhancements (Jiri Olsa)
      
         - Intel hw tracing enhancements (Adrian Hunter)
      
         - ARM hw tracing   enhancements (Leo Yan, Mathieu Poirier)
      
         - ... plus lots of other enhancements, cleanups and fixes"
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (171 commits)
        tools uapi asm: Update asm-generic/unistd.h copy
        perf symbols: Relax checks on perf-PID.map ownership
        perf trace: Wire up the fadvise 'advice' table generator
        perf beauty: Add generator for fadvise64's 'advice' arg constants
        tools headers uapi: Grab a copy of fadvise.h
        perf beauty mmap: Print mmap's 'offset' arg in hexadecimal
        perf beauty mmap: Print PROT_READ before PROT_EXEC to match strace output
        perf trace beauty: Beautify arch_prctl()'s arguments
        perf trace: When showing string prefixes show prefix + ??? for unknown entries
        perf trace: Move strarrays to beauty.h for further reuse
        perf beauty: Wire up the x86_arch prctl code table generator
        perf beauty: Add a string table generator for x86's 'arch_prctl' codes
        tools include arch: Grab a copy of x86's prctl.h
        perf trace: Show NULL when syscall pointer args are 0
        perf trace: Enclose the errno strings with ()
        perf augmented_raw_syscalls: Copy 'access' arg as well
        perf trace: Add alignment spaces after the closing parens
        perf trace beauty: Print O_RDONLY when (flags & O_ACCMODE) == 0
        perf trace: Allow asking for not suppressing common string prefixes
        perf trace: Add a prefix member to the strarray class
        ...
      116b081c
    • Linus Torvalds's avatar
      Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1eefdec1
      Linus Torvalds authored
      Pull locking updates from Ingo Molnar:
       "The main change in this cycle are initial preparatory bits of dynamic
        lockdep keys support from Bart Van Assche.
      
        There are also misc changes, a comment cleanup and a data structure
        cleanup"
      
      * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/fair: Clean up comment in nohz_idle_balance()
        locking/lockdep: Stop using RCU primitives to access 'all_lock_classes'
        locking/lockdep: Make concurrent lockdep_reset_lock() calls safe
        locking/lockdep: Remove a superfluous INIT_LIST_HEAD() statement
        locking/lockdep: Introduce lock_class_cache_is_registered()
        locking/lockdep: Inline __lockdep_init_map()
        locking/lockdep: Declare local symbols static
        tools/lib/lockdep/tests: Test the lockdep_reset_lock() implementation
        tools/lib/lockdep: Add dummy print_irqtrace_events() implementation
        tools/lib/lockdep: Rename "trywlock" into "trywrlock"
        tools/lib/lockdep/tests: Run lockdep tests a second time under Valgrind
        tools/lib/lockdep/tests: Improve testing accuracy
        tools/lib/lockdep/tests: Fix shellcheck warnings
        tools/lib/lockdep/tests: Display compiler warning and error messages
        locking/lockdep: Remove ::version from lock_class structure
      1eefdec1