Skip to content
Snippets Groups Projects
  1. Feb 21, 2022
  2. Jan 22, 2022
    • Minghao Chi's avatar
      perf tools: Remove redundant err variable · f0ac5b85
      Minghao Chi authored
      
      Return value from perf_event__process_tracing_data() directly instead
      of taking this in another redundant variable.
      
      Reported-by: default avatarZeal Robot <zealci@zte.com.cn>
      Signed-off-by: default avatarMinghao Chi <chi.minghao@zte.com.cn>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Link: http://lore.kernel.org/lkml/20220112080109.666800-1-chi.minghao@zte.com.cn
      
      
      Signed-off-by: default avatarCGEL ZTE <cgel.zte@gmail.com>
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      f0ac5b85
    • John Garry's avatar
      perf test: Add parse-events test for aliases with hyphens · b4a7276c
      John Garry authored
      
      Add a test which allows us to test parsing an event alias with hyphens.
      
      Since these events typically do not exist on most host systems, add the
      alias to the fake pmu.
      
      Function perf_pmu__test_parse_init() has terms added to match known test
      aliases.
      
      Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
      Acked-by: default avatarIan Rogers <irogers@google.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Kajol Jain <kjain@linux.ibm.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Qi Liu <liuqi115@huawei.com>
      Cc: Shaokun Zhang <zhangshaokun@hisilicon.com>
      Cc: linuxarm@huawei.com
      Link: https://lore.kernel.org/r/1642432215-234089-4-git-send-email-john.garry@huawei.com
      
      
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      b4a7276c
    • John Garry's avatar
      perf test: Add pmu-events test for aliases with hyphens · 34fa67e7
      John Garry authored
      
      Add a test for aliases with hyphens in the name to ensure that the
      pmu-events tables are as expects. There should be no reason why these sort
      of aliases would be treated differently, but no harm in checking.
      
      Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
      Acked-by: default avatarIan Rogers <irogers@google.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Kajol Jain <kjain@linux.ibm.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Qi Liu <liuqi115@huawei.com>
      Cc: Shaokun Zhang <zhangshaokun@hisilicon.com>
      Cc: linuxarm@huawei.com
      Link: https://lore.kernel.org/r/1642432215-234089-3-git-send-email-john.garry@huawei.com
      
      
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      34fa67e7
    • John Garry's avatar
      perf parse-events: Support event alias in form foo-bar-baz · 864bc8c9
      John Garry authored
      
      Event aliasing for events whose name in the form foo-bar-baz is not
      supported, while foo-bar, foo_bar_baz, and other combinations are, i.e.
      two hyphens are not supported.
      
      The HiSilicon D06 platform has events in such form:
      
        $ ./perf list sdir-home-migrate
      
        List of pre-defined events (to be used in -e):
      
        uncore hha:
          sdir-home-migrate
         [Unit: hisi_sccl,hha]
      
        $ sudo ./perf stat -e sdir-home-migrate
        event syntax error: 'sdir-home-migrate'
                                \___ parser error
        Run 'perf list' for a list of valid events
      
         Usage: perf stat [<options>] [<command>]
      
         -e, --event <event>event selector. use 'perf list' to list available events
      
      To support, add an extra PMU event symbol type for "baz", and add a new
      rule in the bison file.
      
      Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
      Acked-by: default avatarIan Rogers <irogers@google.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Kajol Jain <kjain@linux.ibm.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Qi Liu <liuqi115@huawei.com>
      Cc: Shaokun Zhang <zhangshaokun@hisilicon.com>
      Cc: linuxarm@huawei.com
      Link: https://lore.kernel.org/r/1642432215-234089-2-git-send-email-john.garry@huawei.com
      
      
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      864bc8c9
    • German Gomez's avatar
      perf evsel: Override attr->sample_period for non-libpfm4 events · 3606c0e1
      German Gomez authored
      
      A previous patch preventing "attr->sample_period" values from being
      overridden in pfm events changed a related behaviour in arm-spe.
      
      Before said patch:
      
        perf record -c 10000 -e arm_spe_0// -- sleep 1
      
      Would yield an SPE event with period=10000. After the patch, the period
      in "-c 10000" was being ignored because the arm-spe code initializes
      sample_period to a non-zero value.
      
      This patch restores the previous behaviour for non-libpfm4 events.
      
      Fixes: ae5dcc8a (“perf record: Prevent override of attr->sample_period for libpfm4 events”)
      Reported-by: default avatarChase Conklin <chase.conklin@arm.com>
      Signed-off-by: default avatarGerman Gomez <german.gomez@arm.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: John Fastabend <john.fastabend@gmail.com>
      Cc: KP Singh <kpsingh@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Martin KaFai Lau <kafai@fb.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Song Liu <songliubraving@fb.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Yonghong Song <yhs@fb.com>
      Cc: bpf@vger.kernel.org
      Cc: netdev@vger.kernel.org
      Link: http://lore.kernel.org/lkml/20220118144054.2541-1-german.gomez@arm.com
      
      
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      3606c0e1
    • Lv Ruyi's avatar
      perf cpumap: Remove duplicate include in cpumap.h · 24ead7c2
      Lv Ruyi authored
      
      Remove all but the first include of stdbool.h from cpumap.h.
      
      Reported-by: default avatarZeal Robot <zealci@zte.com.cn>
      Signed-off-by: default avatarLv Ruyi <lv.ruyi@zte.com.cn>
      Acked-by: default avatarIan Rogers <irogers@google.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Link: https://lore.kernel.org/r/20220117083730.863200-1-lv.ruyi@zte.com.cn
      
      
      Signed-off-by: default avatarCGEL ZTE <cgel.zte@gmail.com>
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      24ead7c2
    • Ian Rogers's avatar
      perf cpumap: Migrate to libperf cpumap api · 44028699
      Ian Rogers authored
      
      Switch from directly accessing the perf_cpu_map to using the appropriate
      libperf API when possible. Using the API simplifies the job of
      refactoring use of perf_cpu_map.
      
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Alexey Bayduraev <alexey.v.bayduraev@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: André Almeida <andrealmeid@collabora.com>
      Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
      Cc: Darren Hart <dvhart@infradead.org>
      Cc: Davidlohr Bueso <dave@stgolabs.net>
      Cc: Dmitriy Vyukov <dvyukov@google.com>
      Cc: Eric Dumazet <edumazet@google.com>
      Cc: German Gomez <german.gomez@arm.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Jin Yao <yao.jin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Kajol Jain <kjain@linux.ibm.com>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Miaoqian Lin <linmq006@gmail.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Riccardo Mancini <rickyman7@gmail.com>
      Cc: Shunsuke Nakamura <nakamura.shun@fujitsu.com>
      Cc: Song Liu <song@kernel.org>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Stephen Brennan <stephen.s.brennan@oracle.com>
      Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Thomas Richter <tmricht@linux.ibm.com>
      Cc: Yury Norov <yury.norov@gmail.com>
      Link: http://lore.kernel.org/lkml/20220122045811.3402706-3-irogers@google.com
      
      
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      44028699
    • Ian Rogers's avatar
      perf python: Fix cpu_map__item() building · 1d1d9af2
      Ian Rogers authored
      
      Value should be built as an integer.
      
      Switch some uses of perf_cpu_map to use the library API.
      
      Fixes: 6d18804b ("perf cpumap: Give CPUs their own type")
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Alexey Bayduraev <alexey.v.bayduraev@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: André Almeida <andrealmeid@collabora.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
      Cc: Darren Hart <dvhart@infradead.org>
      Cc: Davidlohr Bueso <dave@stgolabs.net>
      Cc: Dmitriy Vyukov <dvyukov@google.com>
      Cc: Eric Dumazet <edumazet@google.com>
      Cc: German Gomez <german.gomez@arm.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Jin Yao <yao.jin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Kajol Jain <kjain@linux.ibm.com>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Miaoqian Lin <linmq006@gmail.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Riccardo Mancini <rickyman7@gmail.com>
      Cc: Shunsuke Nakamura <nakamura.shun@fujitsu.com>
      Cc: Song Liu <song@kernel.org>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Stephen Brennan <stephen.s.brennan@oracle.com>
      Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Thomas Richter <tmricht@linux.ibm.com>
      Cc: Yury Norov <yury.norov@gmail.com>
      Link: http://lore.kernel.org/lkml/20220122045811.3402706-2-irogers@google.com
      
      
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      1d1d9af2
    • Yao Jin's avatar
      perf script: Fix printing 'phys_addr' failure issue · 9edcde68
      Yao Jin authored
      
      Perf script was failed to print the phys_addr for SPE profiling.
      One 'dummy' event is added by SPE profiling but it doesn't have PHYS_ADDR
      attribute set, perf script then exits with error.
      
      Now referring to 'addr', use evsel__do_check_stype() to check the type.
      
      Before:
      
        # perf record -e arm_spe_0/branch_filter=0,ts_enable=1,pa_enable=1,load_filter=1,jitter=0,\
      		store_filter=0,min_latency=0,event_filter=2/ -p 4064384 -- sleep 3
        # perf script -F pid,tid,addr,phys_addr
        Samples for 'dummy:u' event do not have PHYS_ADDR attribute set. Cannot print 'phys_addr' field.
      
      After:
      
        # perf record -e arm_spe_0/branch_filter=0,ts_enable=1,pa_enable=1,load_filter=1,jitter=0,\
      		store_filter=0,min_latency=0,event_filter=2/ -p 4064384 -- sleep 3
        # perf script -F pid,tid,addr,phys_addr
        4064384/4064384 ffff802f921be0d0      2f921be0d0
        4064384/4064384 ffff802f921be0d0      2f921be0d0
      
      Reviewed-by: default avatarGerman Gomez <german.gomez@arm.com>
      Signed-off-by: default avatarYao Jin <jinyao5@huawei.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Hanjun Guo <guohanjun@huawei.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: http://lore.kernel.org/lkml/20220121065954.2121900-1-liwei391@huawei.com
      
      
      Signed-off-by: default avatarWei Li <liwei391@huawei.com>
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      9edcde68
  3. Jan 20, 2022
    • Jinrong Liang's avatar
      selftests: kvm/x86: Fix the warning in lib/x86_64/processor.c · 83a34ad8
      Jinrong Liang authored
      
      The following warning appears when executing
      make -C tools/testing/selftests/kvm
      
      include/x86_64/processor.h:290:2: warning: 'ecx' may be used uninitialized in this
      function [-Wmaybe-uninitialized]
        asm volatile("cpuid"
        ^~~
      lib/x86_64/processor.c:1523:21: note: 'ecx' was declared here
        uint32_t eax, ebx, ecx, edx, max_ext_leaf;
      
      Just initialize ecx to remove this warning.
      
      Fixes: c8cc43c1 ("selftests: KVM: avoid failures due to reserved HyperTransport region")
      Signed-off-by: default avatarJinrong Liang <cloudliang@tencent.com>
      Message-Id: <20220119140325.59369-1-cloudliang@tencent.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      83a34ad8
    • Jinrong Liang's avatar
      selftests: kvm/x86: Fix the warning in pmu_event_filter_test.c · a0f4ba7f
      Jinrong Liang authored
      
      The following warning appears when executing
      make -C tools/testing/selftests/kvm
      
      x86_64/pmu_event_filter_test.c: In function 'vcpu_supports_intel_br_retired':
      x86_64/pmu_event_filter_test.c:241:28: warning: variable 'cpuid' set but not used [-Wunused-but-set-variable]
        241 |         struct kvm_cpuid2 *cpuid;
            |                            ^~~~~
      x86_64/pmu_event_filter_test.c: In function 'vcpu_supports_amd_zen_br_retired':
      x86_64/pmu_event_filter_test.c:258:28: warning: variable 'cpuid' set but not used [-Wunused-but-set-variable]
        258 |         struct kvm_cpuid2 *cpuid;
            |                            ^~~~~
      
      Just delete the unused variables to stay away from warnings.
      
      Fixes: dc7e75b3b3ee ("selftests: kvm/x86: Add test for KVM_SET_PMU_EVENT_FILTER")
      Signed-off-by: default avatarJinrong Liang <cloudliang@tencent.com>
      Message-Id: <20220119133910.56285-1-cloudliang@tencent.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      a0f4ba7f
    • Arnaldo Carvalho de Melo's avatar
      tools headers UAPI: Sync files changed by new set_mempolicy_home_node syscall · 6e10e219
      Arnaldo Carvalho de Melo authored
      
      To pick the changes in these csets:
      
        21b084fd ("mm/mempolicy: wire up syscall set_mempolicy_home_node")
      
      That add support for this new syscall in tools such as 'perf trace'.
      
      For instance, this is now possible:
      
        [root@five ~]# perf trace -e set_mempolicy_home_node
        ^C[root@five ~]#
        [root@five ~]# perf trace -v -e set_mempolicy_home_node
        Using CPUID AuthenticAMD-25-21-0
        event qualifier tracepoint filter: (common_pid != 253729 && common_pid != 3585) && (id == 450)
        mmap size 528384B
        ^C[root@five ~]
        [root@five ~]# perf trace -v -e set*  --max-events 5
        Using CPUID AuthenticAMD-25-21-0
        event qualifier tracepoint filter: (common_pid != 253734 && common_pid != 3585) && (id == 38 || id == 54 || id == 105 || id == 106 || id == 109 || id == 112 || id == 113 || id == 114 || id == 116 || id == 117 || id == 119 || id == 122 || id == 123 || id == 141 || id == 160 || id == 164 || id == 170 || id == 171 || id == 188 || id == 205 || id == 218 || id == 238 || id == 273 || id == 308 || id == 450)
        mmap size 528384B
             0.000 ( 0.008 ms): bash/253735 setpgid(pid: 253735 (bash), pgid: 253735 (bash))      = 0
          6849.011 ( 0.008 ms): bash/16046 setpgid(pid: 253736 (bash), pgid: 253736 (bash))       = 0
          6849.080 ( 0.005 ms): bash/253736 setpgid(pid: 253736 (bash), pgid: 253736 (bash))      = 0
          7437.718 ( 0.009 ms): gnome-shell/253737 set_robust_list(head: 0x7f34b527e920, len: 24) = 0
         13445.986 ( 0.010 ms): bash/16046 setpgid(pid: 253738 (bash), pgid: 253738 (bash))       = 0
        [root@five ~]#
      
      That is the filter expression attached to the raw_syscalls:sys_{enter,exit}
      tracepoints.
      
        $ find tools/perf/arch/ -name "syscall*tbl" | xargs grep -w set_mempolicy_home_node
        tools/perf/arch/mips/entry/syscalls/syscall_n64.tbl:450	common	set_mempolicy_home_node		sys_set_mempolicy_home_node
        tools/perf/arch/powerpc/entry/syscalls/syscall.tbl:450 	nospu	set_mempolicy_home_node		sys_set_mempolicy_home_node
        tools/perf/arch/s390/entry/syscalls/syscall.tbl:450  common	set_mempolicy_home_node	sys_set_mempolicy_home_node	sys_set_mempolicy_home_node
        tools/perf/arch/x86/entry/syscalls/syscall_64.tbl:450	common	set_mempolicy_home_node	sys_set_mempolicy_home_node
        $
      
        $ grep -w set_mempolicy_home_node /tmp/build/perf/arch/x86/include/generated/asm/syscalls_64.c
      	[450] = "set_mempolicy_home_node",
        $
      
      This addresses these perf build warnings:
      
        Warning: Kernel ABI header at 'tools/include/uapi/asm-generic/unistd.h' differs from latest version at 'include/uapi/asm-generic/unistd.h'
        diff -u tools/include/uapi/asm-generic/unistd.h include/uapi/asm-generic/unistd.h
        Warning: Kernel ABI header at 'tools/perf/arch/x86/entry/syscalls/syscall_64.tbl' differs from latest version at 'arch/x86/entry/syscalls/syscall_64.tbl'
        diff -u tools/perf/arch/x86/entry/syscalls/syscall_64.tbl arch/x86/entry/syscalls/syscall_64.tbl
        Warning: Kernel ABI header at 'tools/perf/arch/powerpc/entry/syscalls/syscall.tbl' differs from latest version at 'arch/powerpc/kernel/syscalls/syscall.tbl'
        diff -u tools/perf/arch/powerpc/entry/syscalls/syscall.tbl arch/powerpc/kernel/syscalls/syscall.tbl
        Warning: Kernel ABI header at 'tools/perf/arch/s390/entry/syscalls/syscall.tbl' differs from latest version at 'arch/s390/kernel/syscalls/syscall.tbl'
        diff -u tools/perf/arch/s390/entry/syscalls/syscall.tbl arch/s390/kernel/syscalls/syscall.tbl
        Warning: Kernel ABI header at 'tools/perf/arch/mips/entry/syscalls/syscall_n64.tbl' differs from latest version at 'arch/mips/kernel/syscalls/syscall_n64.tbl'
        diff -u tools/perf/arch/mips/entry/syscalls/syscall_n64.tbl arch/mips/kernel/syscalls/syscall_n64.tbl
      
      Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      6e10e219
    • wangyong's avatar
      delayacct: track delays from memory compact · 5bf18281
      wangyong authored
      Delay accounting does not track the delay of memory compact.  When there
      is not enough free memory, tasks can spend a amount of their time
      waiting for compact.
      
      To get the impact of tasks in direct memory compact, measure the delay
      when allocating memory through memory compact.
      
      Also update tools/accounting/getdelays.c:
      
          / # ./getdelays_next  -di -p 304
          print delayacct stats ON
          printing IO accounting
          PID     304
      
          CPU             count     real total  virtual total    delay total  delay average
                            277      780000000      849039485       18877296          0.068ms
          IO              count    delay total  delay average
                              0              0              0ms
          SWAP            count    delay total  delay average
                              0              0              0ms
          RECLAIM         count    delay total  delay average
                              5    11088812685           2217ms
          THRASHING       count    delay total  delay average
                              0              0              0ms
          COMPACT         count    delay total  delay average
                              3          72758              0ms
          watch: read=0, write=0, cancelled_write=0
      
      Link: https://lkml.kernel.org/r/1638619795-71451-1-git-send-email-wang.yong12@zte.com.cn
      
      
      Signed-off-by: default avatarwangyong <wang.yong12@zte.com.cn>
      Reviewed-by: default avatarJiang Xuexin <jiang.xuexin@zte.com.cn>
      Reviewed-by: default avatarZhang Wenya <zhang.wenya1@zte.com.cn>
      Reviewed-by: default avatarYang Yang <yang.yang29@zte.com.cn>
      Reviewed-by: default avatarBalbir Singh <bsingharora@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5bf18281
    • Isabella Basso's avatar
      hash.h: remove unused define directive · fd0a1462
      Isabella Basso authored
      Patch series "test_hash.c: refactor into KUnit", v3.
      
      We refactored the lib/test_hash.c file into KUnit as part of the student
      group LKCAMP [1] introductory hackathon for kernel development.
      
      This test was pointed to our group by Daniel Latypov [2], so its full
      conversion into a pure KUnit test was our goal in this patch series, but
      we ran into many problems relating to it not being split as unit tests,
      which complicated matters a bit, as the reasoning behind the original
      tests is quite cryptic for those unfamiliar with hash implementations.
      
      Some interesting developments we'd like to highlight are:
      
       - In patch 1/5 we noticed that there was an unused define directive
         that could be removed.
      
       - In patch 4/5 we noticed how stringhash and hash tests are all under
         the lib/test_hash.c file, which might cause some confusion, and we
         also broke those kernel config entries up.
      
      Overall KUnit developments have been made in the other patches in this
      series:
      
      In patches 2/5, 3/5 and 5/5 we refactored the lib/test_hash.c file so as
      to make it more compatible with the KUnit style, whilst preserving the
      original idea of the maintainer who designed it (i.e.  George Spelvin),
      which might be undesirable for unit tests, but we assume it is enough
      for a first patch.
      
      This patch (of 5):
      
      Currently, there exist hash_32() and __hash_32() functions, which were
      introduced in a patch [1] targeting architecture specific optimizations.
      These functions can be overridden on a per-architecture basis to achieve
      such optimizations.  They must set their corresponding define directive
      (HAVE_ARCH_HASH_32 and HAVE_ARCH__HASH_32, respectively) so that header
      files can deal with these overrides properly.
      
      As the supported 32-bit architectures that have their own hash function
      implementation (i.e.  m68k, Microblaze, H8/300, pa-risc) have only been
      making use of the (more general) __hash_32() function (which only lacks
      a right shift operation when compared to the hash_32() function), remove
      the define directive corresponding to the arch-specific hash_32()
      implementation.
      
      [1] https://lore.kernel.org/lkml/20160525073311.5600.qmail@ns.sciencehorizons.net/
      
      [akpm@linux-foundation.org: hash_32_generic() becomes hash_32()]
      
      Link: https://lkml.kernel.org/r/20211208183711.390454-1-isabbasso@riseup.net
      Link: https://lkml.kernel.org/r/20211208183711.390454-2-isabbasso@riseup.net
      
      
      Reviewed-by: default avatarDavid Gow <davidgow@google.com>
      Tested-by: default avatarDavid Gow <davidgow@google.com>
      Co-developed-by: default avatarAugusto Durães Camargo <augusto.duraes33@gmail.com>
      Signed-off-by: default avatarAugusto Durães Camargo <augusto.duraes33@gmail.com>
      Co-developed-by: default avatarEnzo Ferreira <ferreiraenzoa@gmail.com>
      Signed-off-by: default avatarEnzo Ferreira <ferreiraenzoa@gmail.com>
      Signed-off-by: default avatarIsabella Basso <isabbasso@riseup.net>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Brendan Higgins <brendanhiggins@google.com>
      Cc: Daniel Latypov <dlatypov@google.com>
      Cc: Shuah Khan <skhan@linuxfoundation.org>
      Cc: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
      Cc: kernel test robot <lkp@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      fd0a1462
    • Yafang Shao's avatar
      tools/testing/selftests/bpf: replace open-coded 16 with TASK_COMM_LEN · 3087c61e
      Yafang Shao authored
      As the sched:sched_switch tracepoint args are derived from the kernel,
      we'd better make it same with the kernel.  So the macro TASK_COMM_LEN is
      converted to type enum, then all the BPF programs can get it through
      BTF.
      
      The BPF program which wants to use TASK_COMM_LEN should include the
      header vmlinux.h.  Regarding the test_stacktrace_map and
      test_tracepoint, as the type defined in linux/bpf.h are also defined in
      vmlinux.h, so we don't need to include linux/bpf.h again.
      
      Link: https://lkml.kernel.org/r/20211120112738.45980-8-laoar.shao@gmail.com
      
      
      Signed-off-by: default avatarYafang Shao <laoar.shao@gmail.com>
      Acked-by: default avatarAndrii Nakryiko <andrii@kernel.org>
      Acked-by: default avatarDavid Hildenbrand <david@redhat.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>
      Cc: Andrii Nakryiko <andrii.nakryiko@gmail.com>
      Cc: Michal Miroslaw <mirq-linux@rere.qmqm.pl>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Matthew Wilcox <willy@infradead.org>
      Cc: David Hildenbrand <david@redhat.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Petr Mladek <pmladek@suse.com>
      Cc: Alexei Starovoitov <alexei.starovoitov@gmail.com>
      Cc: Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3087c61e
    • Yafang Shao's avatar
      tools/bpf/bpftool/skeleton: replace bpf_probe_read_kernel with... · 4cfb9435
      Yafang Shao authored
      tools/bpf/bpftool/skeleton: replace bpf_probe_read_kernel with bpf_probe_read_kernel_str to get task comm
      
      bpf_probe_read_kernel_str() will add a nul terminator to the dst, then
      we don't care about if the dst size is big enough.
      
      Link: https://lkml.kernel.org/r/20211120112738.45980-7-laoar.shao@gmail.com
      
      
      Signed-off-by: default avatarYafang Shao <laoar.shao@gmail.com>
      Acked-by: default avatarAndrii Nakryiko <andrii@kernel.org>
      Reviewed-by: default avatarDavid Hildenbrand <david@redhat.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>
      Cc: Alexei Starovoitov <alexei.starovoitov@gmail.com>
      Cc: Andrii Nakryiko <andrii.nakryiko@gmail.com>
      Cc: Michal Miroslaw <mirq-linux@rere.qmqm.pl>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Matthew Wilcox <willy@infradead.org>
      Cc: David Hildenbrand <david@redhat.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Petr Mladek <pmladek@suse.com>
      Cc: Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4cfb9435
  4. Jan 19, 2022
  5. Jan 18, 2022
    • Arnaldo Carvalho de Melo's avatar
      perf evlist: No need to setup affinities when disabling events for pid targets · 0d3d2376
      Arnaldo Carvalho de Melo authored
      
      When the target is a pid, not started by 'perf stat' we need to disable
      the events, and in that case there is no need to setup affinities as we
      use a dummy CPU map, with just one entry set to -1.
      
      So stop doing it to avoid this needless call to sched_getaffinity():
      
        # strace -ke sched_getaffinity perf stat -e cycles -p 241957 sleep 1
        <SNIP>
        sched_getaffinity(0, 512, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]) = 8
         > /usr/lib64/libc-2.33.so(sched_getaffinity@@GLIBC_2.3.4+0x1a) [0xe6eea]
         > /var/home/acme/bin/perf(affinity__setup+0x6a) [0x532a2a]
         > /var/home/acme/bin/perf(__evlist__disable.constprop.0+0x27) [0x4b9827]
         > /var/home/acme/bin/perf(cmd_stat+0x29b5) [0x431725]
         > /var/home/acme/bin/perf(run_builtin+0x6a) [0x4a2cfa]
         > /var/home/acme/bin/perf(main+0x612) [0x40f8c2]
         > /usr/lib64/libc-2.33.so(__libc_start_main+0xd4) [0x27b74]
         > /var/home/acme/bin/perf(_start+0x2d) [0x40fadd]
        <SNIP>
      
      Acked-by: default avatarIan Rogers <irogers@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Link: https://lore.kernel.org/r/20220117160931.1191712-5-acme@kernel.org
      
      
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      0d3d2376
    • Arnaldo Carvalho de Melo's avatar
      perf evlist: No need to setup affinities when enabling events for pid targets · f350ee95
      Arnaldo Carvalho de Melo authored
      
      When the target is a pid, not started by 'perf stat' we need to enable
      the events, and in that case there is no need to setup affinities as we
      use a dummy CPU map, with just one entry set to -1.
      
      So stop doing it to avoid this needless call to sched_getaffinity():
      
        # strace -ke sched_getaffinity perf stat -e cycles -p 241957 sleep 1
        <SNIP>
        sched_getaffinity(0, 512, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]) = 8
         > /usr/lib64/libc-2.33.so(sched_getaffinity@@GLIBC_2.3.4+0x1a) [0xe6eea]
         > /var/home/acme/bin/perf(affinity__setup+0x6a) [0x5329ca]
         > /var/home/acme/bin/perf(__evlist__enable.constprop.0+0x23) [0x4b9693]
         > /var/home/acme/bin/perf(enable_counters+0x14d) [0x42de5d]
         > /var/home/acme/bin/perf(cmd_stat+0x2358) [0x4310c8]
         > /var/home/acme/bin/perf(run_builtin+0x6a) [0x4a2cfa]
         > /var/home/acme/bin/perf(main+0x612) [0x40f8c2]
         > /usr/lib64/libc-2.33.so(__libc_start_main+0xd4) [0x27b74]
         > /var/home/acme/bin/perf(_start+0x2d) [0x40fadd]
        <SNIP>
      
      Acked-by: default avatarIan Rogers <irogers@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Link: https://lore.kernel.org/r/20220117160931.1191712-4-acme@kernel.org
      
      
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      f350ee95
    • Arnaldo Carvalho de Melo's avatar
      perf stat: No need to setup affinities when starting a workload · 49de1795
      Arnaldo Carvalho de Melo authored
      
      I.e. the simple:
      
        $ perf stat sleep 1
      
      Uses a dummy CPU map and thus there is no need to setup/cleanup
      affinities to avoid IPIs, etc.
      
      With this we're down to a sched_getaffinity() call, in the libnuma
      initialization, that probably can be removed in a followup patch.
      
      Acked-by: default avatarIan Rogers <irogers@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Link: https://lore.kernel.org/r/20220117160931.1191712-3-acme@kernel.org
      
      
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      49de1795
    • Arnaldo Carvalho de Melo's avatar
      perf affinity: Allow passing a NULL arg to affinity__cleanup() · 1855b796
      Arnaldo Carvalho de Melo authored
      
      Just like with free(), NULL is checked to avoid having all callers do
      it.
      
      Its convenient for when not using affinity setup/cleanup for dummy CPU
      maps, i.e. CPU maps for pid targets.
      
      Acked-by: default avatarIan Rogers <irogers@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Link: https://lore.kernel.org/r/20220117160931.1191712-2-acme@kernel.org
      
      
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      1855b796
    • Zechuan Chen's avatar
      perf probe: Fix ppc64 'perf probe add events failed' case · 4624f199
      Zechuan Chen authored
      
      Because of commit bf794bf5 ("powerpc/kprobes: Fix kallsyms
      lookup across powerpc ABIv1 and ABIv2"), in ppc64 ABIv1, our perf
      command eliminates the need to use the prefix "." at the symbol name.
      
      But when the command "perf probe -a schedule" is executed on ppc64
      ABIv1, it obtains two symbol address information through /proc/kallsyms,
      for example:
      
        cat /proc/kallsyms | grep -w schedule
        c000000000657020 T .schedule
        c000000000d4fdb8 D schedule
      
      The symbol "D schedule" is not a function symbol, and perf will print:
      "p:probe/schedule _text+13958584"Failed to write event: Invalid argument
      
      Therefore, when searching symbols from map and adding probe point for
      them, a symbol type check is added. If the type of symbol is not a
      function, skip it.
      
      Fixes: bf794bf5 ("powerpc/kprobes: Fix kallsyms lookup across powerpc ABIv1 and ABIv2")
      Signed-off-by: default avatarZechuan Chen <chenzechuan1@huawei.com>
      Acked-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jianlin Lv <Jianlin.Lv@arm.com>
      Cc: Jin Yao <yao.jin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
      Cc: Yang Jihong <yangjihong1@huawei.com>
      Link: https://lore.kernel.org/r/20211228111338.218602-1-chenzechuan1@huawei.com
      
      
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      4624f199
  6. Jan 17, 2022
  7. Jan 15, 2022
Loading