1. 30 Sep, 2019 19 commits
    • Arnaldo Carvalho de Melo's avatar
      perf annotate: Return appropriate error code for allocation failures · 16ed3c1e
      Arnaldo Carvalho de Melo authored
      We should return errno or the annotation extra range understood by
      symbol__strerror_disassemble() instead of -1, fix it, returning ENOMEM
      instead.
      Reported-by: default avatarRussell King - ARM Linux admin <linux@armlinux.org.uk>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>,
      Cc: Will Deacon <will@kernel.org>
      Link: https://lkml.kernel.org/n/tip-8of1cmj3rz0mppfcshc9bbqq@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      16ed3c1e
    • Arnaldo Carvalho de Melo's avatar
      perf annotate: Fix arch specific ->init() failure errors · 42d7a910
      Arnaldo Carvalho de Melo authored
      They are called from symbol__annotate() and to propagate errors that can
      help understand the problem make them return what
      symbol__strerror_disassemble() known, i.e. errno codes and other
      annotation specific errors in a special, out of errnos, range.
      Reported-by: default avatarRussell King - ARM Linux admin <linux@armlinux.org.uk>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>,
      Cc: Will Deacon <will@kernel.org>
      Link: https://lkml.kernel.org/n/tip-pqx7srcv7tixgid251aeboj6@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      42d7a910
    • Arnaldo Carvalho de Melo's avatar
      perf annotate: Propagate the symbol__annotate() error return · 211f493b
      Arnaldo Carvalho de Melo authored
      We were just returning -1 in symbol__annotate() when symbol__annotate()
      failed, propagate its error as it is used later to pass to
      symbol__strerror_disassemble() to present a error message to the user,
      that in some cases were getting:
      
        "Invalid -1 error code"
      
      Fix it to propagate the error.
      Reported-by: default avatarRussell King - ARM Linux admin <linux@armlinux.org.uk>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>,
      Cc: Will Deacon <will@kernel.org>
      Link: https://lkml.kernel.org/n/tip-0tj89rs9g7nbcyd5skadlvuu@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      211f493b
    • Arnaldo Carvalho de Melo's avatar
      perf annotate: Fix the signedness of failure returns · 28f4417c
      Arnaldo Carvalho de Melo authored
      Callers of symbol__annotate() expect a errno value or some other
      extended error value range in symbol__strerror_disassemble() to
      convert to a proper error string, fix it when propagating a failure to
      find the arch specific annotation routines via arch__find(arch_name).
      Reported-by: default avatarRussell King - ARM Linux admin <linux@armlinux.org.uk>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>,
      Cc: Will Deacon <will@kernel.org>
      Link: https://lkml.kernel.org/n/tip-o0k6dw7cas0vvmjjvgsyvu1i@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      28f4417c
    • Arnaldo Carvalho de Melo's avatar
      perf annotate: Propagate perf_env__arch() error · a66fa061
      Arnaldo Carvalho de Melo authored
      The callers of symbol__annotate2() use symbol__strerror_disassemble() to
      convert its failure returns into a human readable string, so
      propagate error values from functions it calls, starting with
      perf_env__arch() that when fails the right thing to do is to look at
      'errno' to see why its possible call to uname() failed.
      Reported-by: default avatarRussell King - ARM Linux admin <linux@armlinux.org.uk>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>,
      Cc: Will Deacon <will@kernel.org>
      Link: https://lkml.kernel.org/n/tip-it5d83kyusfhb1q1b0l4pxzs@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      a66fa061
    • Arnaldo Carvalho de Melo's avatar
      perf evsel: Fall back to global 'perf_env' in perf_evsel__env() · 9db0e363
      Arnaldo Carvalho de Melo authored
      I.e. if evsel->evlist or evsel->evlist->env isn't set, return the
      environment for the running machine, as that would be set if reading
      from a perf.data file.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Link: https://lkml.kernel.org/n/tip-uqq4grmhbi12rwb0lfpo6lfu@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      9db0e363
    • Arnaldo Carvalho de Melo's avatar
      perf tools: Propagate get_cpuid() error · f67001a4
      Arnaldo Carvalho de Melo authored
      For consistency, propagate the exact cause for get_cpuid() to have
      failed.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Link: https://lkml.kernel.org/n/tip-9ig269f7ktnhh99g4l15vpu2@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      f67001a4
    • Andi Kleen's avatar
      perf jevents: Fix period for Intel fixed counters · 6bdfd9f1
      Andi Kleen authored
      The Intel fixed counters use a special table to override the JSON
      information.
      
      During this override the period information from the JSON file got
      dropped, which results in inst_retired.any and similar running with
      frequency mode instead of a period.
      
      Just specify the expected period in the table.
      Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Link: http://lore.kernel.org/lkml/20190927233546.11533-2-andi@firstfloor.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      6bdfd9f1
    • Andi Kleen's avatar
      perf script brstackinsn: Fix recovery from LBR/binary mismatch · e98df280
      Andi Kleen authored
      When the LBR data and the instructions in a binary do not match the loop
      printing instructions could get confused and print a long stream of
      bogus <bad> instructions.
      
      The problem was that if the instruction decoder cannot decode an
      instruction it ilen wasn't initialized, so the loop going through the
      basic block would continue with the previous value.
      
      Harden the code to avoid such problems:
      
      - Make sure ilen is always freshly initialized and is 0 for bad
        instructions.
      
      - Do not overrun the code buffer while printing instructions
      
      - Print a warning message if the final jump is not on an instruction
        boundary.
      Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Link: http://lore.kernel.org/lkml/20190927233546.11533-1-andi@firstfloor.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      e98df280
    • Steve MacLean's avatar
      perf docs: Correct and clarify jitdump spec · 2657983b
      Steve MacLean authored
      Specification claims latest version of jitdump file format is 2. Current
      jit dump reading code treats 1 as the latest version.
      
      Correct spec to match code.
      
      The original language made it unclear the value to be written in the
      magic field.
      
      Revise language that the writer always writes the same value. Specify
      that the reader uses the value to detect endian mismatches.
      Signed-off-by: default avatarSteve MacLean <Steve.MacLean@Microsoft.com>
      Acked-by: default avatarStephane Eranian <eranian@google.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Brian Robbins <brianrob@microsoft.com>
      Cc: Davidlohr Bueso <dave@stgolabs.net>
      Cc: Eric Saint-Etienne <eric.saint.etienne@oracle.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: John Keeping <john@metanate.com>
      Cc: John Salem <josalem@microsoft.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Song Liu <songliubraving@fb.com>
      Cc: Tom McDonald <thomas.mcdonald@microsoft.com>
      Link: http://lore.kernel.org/lkml/BN8PR21MB1362F63CDE7AC69736FC7F9EF7800@BN8PR21MB1362.namprd21.prod.outlook.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      2657983b
    • Steve MacLean's avatar
      perf inject jit: Fix JIT_CODE_MOVE filename · b59711e9
      Steve MacLean authored
      During perf inject --jit, JIT_CODE_MOVE records were injecting MMAP records
      with an incorrect filename. Specifically it was missing the ".so" suffix.
      
      Further the JIT_CODE_LOAD record were silently truncating the
      jr->load.code_index field to 32 bits before generating the filename.
      
      Make both records emit the same filename based on the full 64 bit
      code_index field.
      
      Fixes: 9b07e27f ("perf inject: Add jitdump mmap injection support")
      Cc: stable@vger.kernel.org # v4.6+
      Signed-off-by: default avatarSteve MacLean <Steve.MacLean@Microsoft.com>
      Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Brian Robbins <brianrob@microsoft.com>
      Cc: Davidlohr Bueso <dave@stgolabs.net>
      Cc: Eric Saint-Etienne <eric.saint.etienne@oracle.com>
      Cc: John Keeping <john@metanate.com>
      Cc: John Salem <josalem@microsoft.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Song Liu <songliubraving@fb.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Tom McDonald <thomas.mcdonald@microsoft.com>
      Link: http://lore.kernel.org/lkml/BN8PR21MB1362FF8F127B31DBF4121528F7800@BN8PR21MB1362.namprd21.prod.outlook.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      b59711e9
    • Steve MacLean's avatar
      perf map: Fix overlapped map handling · ee212d6e
      Steve MacLean authored
      Whenever an mmap/mmap2 event occurs, the map tree must be updated to add a new
      entry. If a new map overlaps a previous map, the overlapped section of the
      previous map is effectively unmapped, but the non-overlapping sections are
      still valid.
      
      maps__fixup_overlappings() is responsible for creating any new map entries from
      the previously overlapped map. It optionally creates a before and an after map.
      
      When creating the after map the existing code failed to adjust the map.pgoff.
      This meant the new after map would incorrectly calculate the file offset
      for the ip. This results in incorrect symbol name resolution for any ip in the
      after region.
      
      Make maps__fixup_overlappings() correctly populate map.pgoff.
      
      Add an assert that new mapping matches old mapping at the beginning of
      the after map.
      
      Committer-testing:
      
      Validated correct parsing of libcoreclr.so symbols from .NET Core 3.0 preview9
      (which didn't strip symbols).
      
      Preparation:
      
        ~/dotnet3.0-preview9/dotnet new webapi -o perfSymbol
        cd perfSymbol
        ~/dotnet3.0-preview9/dotnet publish
        perf record ~/dotnet3.0-preview9/dotnet \
            bin/Debug/netcoreapp3.0/publish/perfSymbol.dll
        ^C
      
      Before:
      
        perf script --show-mmap-events 2>&1 | grep -e MMAP -e unknown |\
           grep libcoreclr.so | head -n 4
              dotnet  1907 373352.698780: PERF_RECORD_MMAP2 1907/1907: \
                  [0x7fe615726000(0x768000) @ 0 08:02 5510620 765057155]: \
                  r-xp .../3.0.0-preview9-19423-09/libcoreclr.so
              dotnet  1907 373352.701091: PERF_RECORD_MMAP2 1907/1907: \
                  [0x7fe615974000(0x1000) @ 0x24e000 08:02 5510620 765057155]: \
                  rwxp .../3.0.0-preview9-19423-09/libcoreclr.so
              dotnet  1907 373352.701241: PERF_RECORD_MMAP2 1907/1907: \
                  [0x7fe615c42000(0x1000) @ 0x51c000 08:02 5510620 765057155]: \
                  rwxp .../3.0.0-preview9-19423-09/libcoreclr.so
              dotnet  1907 373352.705249:     250000 cpu-clock: \
                   7fe6159a1f99 [unknown] \
                   (.../3.0.0-preview9-19423-09/libcoreclr.so)
      
      After:
      
        perf script --show-mmap-events 2>&1 | grep -e MMAP -e unknown |\
           grep libcoreclr.so | head -n 4
              dotnet  1907 373352.698780: PERF_RECORD_MMAP2 1907/1907: \
                  [0x7fe615726000(0x768000) @ 0 08:02 5510620 765057155]: \
                  r-xp .../3.0.0-preview9-19423-09/libcoreclr.so
              dotnet  1907 373352.701091: PERF_RECORD_MMAP2 1907/1907: \
                  [0x7fe615974000(0x1000) @ 0x24e000 08:02 5510620 765057155]: \
                  rwxp .../3.0.0-preview9-19423-09/libcoreclr.so
              dotnet  1907 373352.701241: PERF_RECORD_MMAP2 1907/1907: \
                  [0x7fe615c42000(0x1000) @ 0x51c000 08:02 5510620 765057155]: \
                  rwxp .../3.0.0-preview9-19423-09/libcoreclr.so
      
      All the [unknown] symbols were resolved.
      Signed-off-by: default avatarSteve MacLean <Steve.MacLean@Microsoft.com>
      Tested-by: default avatarBrian Robbins <brianrob@microsoft.com>
      Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Davidlohr Bueso <dave@stgolabs.net>
      Cc: Eric Saint-Etienne <eric.saint.etienne@oracle.com>
      Cc: John Keeping <john@metanate.com>
      Cc: John Salem <josalem@microsoft.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Song Liu <songliubraving@fb.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Tom McDonald <thomas.mcdonald@microsoft.com>
      Link: http://lore.kernel.org/lkml/BN8PR21MB136270949F22A6A02335C238F7800@BN8PR21MB1362.namprd21.prod.outlook.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      ee212d6e
    • Thomas Richter's avatar
      perf vendor events s390: Use s390 machine name instead of type 8561 · 0d0e5ece
      Thomas Richter authored
      In the pmu-events directory for JSON file definitions use the
      official machine name IBM z15 instead of machine type number
      8561. This is consistent with previous machines.
      Signed-off-by: default avatarThomas Richter <tmricht@linux.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Vasily Gorbik <gor@linux.ibm.com>
      Link: http://lore.kernel.org/lkml/20190927081147.18345-2-tmricht@linux.ibm.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      0d0e5ece
    • Thomas Richter's avatar
      perf vendor events s390: Add JSON transaction for machine type 8561 · 02d08479
      Thomas Richter authored
      Add s390 transaction counter definition for machine 8561. This is the
      same file as for the predecessor machine.
      
      Fixes: 6e67d77d ("perf vendor events s390: Add JSON files for machine type 8561")
      Signed-off-by: default avatarThomas Richter <tmricht@linux.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Vasily Gorbik <gor@linux.ibm.com>
      Link: http://lore.kernel.org/lkml/20190927081147.18345-1-tmricht@linux.ibm.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      02d08479
    • Ian Rogers's avatar
      perf llvm: Don't access out-of-scope array · 7d4c85b7
      Ian Rogers authored
      The 'test_dir' variable is assigned to the 'release' array which is
      out-of-scope 3 lines later.
      
      Extend the scope of the 'release' array so that an out-of-scope array
      isn't accessed.
      
      Bug detected by clang's address sanitizer.
      
      Fixes: 07bc5c69 ("perf tools: Make fetch_kernel_version() publicly available")
      Cc: stable@vger.kernel.org # v4.4+
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lore.kernel.org/lkml/20190926220018.25402-1-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      7d4c85b7
    • Arnaldo Carvalho de Melo's avatar
      tools headers kvm: Sync kvm headers with the kernel sources · b7ad6108
      Arnaldo Carvalho de Melo authored
      To pick the changes in:
      
        200824f5 ("KVM: s390: Disallow invalid bits in kvm_valid_regs and kvm_dirty_regs")
        4a53d99d ("KVM: VMX: Introduce exit reason for receiving INIT signal on guest-mode")
        7396d337 ("KVM: x86: Return to userspace with internal error on unexpected exit reason")
        92f35b75 ("KVM: arm/arm64: vgic: Allow more than 256 vcpus for KVM_IRQ_LINE")
      
      None of them trigger any changes in tooling, this time this is just to silence
      these perf build warnings:
      
        Warning: Kernel ABI header at 'tools/include/uapi/linux/kvm.h' differs from latest version at 'include/uapi/linux/kvm.h'
        diff -u tools/include/uapi/linux/kvm.h include/uapi/linux/kvm.h
        Warning: Kernel ABI header at 'tools/arch/x86/include/uapi/asm/vmx.h' differs from latest version at 'arch/x86/include/uapi/asm/vmx.h'
        diff -u tools/arch/x86/include/uapi/asm/vmx.h arch/x86/include/uapi/asm/vmx.h
        Warning: Kernel ABI header at 'tools/arch/s390/include/uapi/asm/kvm.h' differs from latest version at 'arch/s390/include/uapi/asm/kvm.h'
        diff -u tools/arch/s390/include/uapi/asm/kvm.h arch/s390/include/uapi/asm/kvm.h
        Warning: Kernel ABI header at 'tools/arch/arm/include/uapi/asm/kvm.h' differs from latest version at 'arch/arm/include/uapi/asm/kvm.h'
        diff -u tools/arch/arm/include/uapi/asm/kvm.h arch/arm/include/uapi/asm/kvm.h
        Warning: Kernel ABI header at 'tools/arch/arm64/include/uapi/asm/kvm.h' differs from latest version at 'arch/arm64/include/uapi/asm/kvm.h'
        diff -u tools/arch/arm64/include/uapi/asm/kvm.h arch/arm64/include/uapi/asm/kvm.h
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Janosch Frank <frankja@linux.ibm.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Liran Alon <liran.alon@oracle.com>
      Cc: Marc Zyngier <maz@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: Thomas Huth <thuth@redhat.com>
      Link: https://lkml.kernel.org/n/tip-akuugvvjxte26kzv23zp5d2z@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      b7ad6108
    • Arnaldo Carvalho de Melo's avatar
      tools headers uapi: Sync linux/fs.h with the kernel sources · 0ae40612
      Arnaldo Carvalho de Melo authored
      To pick the changes from:
      
        78a1b96b ("fscrypt: add FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS ioctl")
        23c688b5 ("fscrypt: allow unprivileged users to add/remove keys for v2 policies")
        5dae460c ("fscrypt: v2 encryption policy support")
        5a7e2992 ("fscrypt: add FS_IOC_GET_ENCRYPTION_KEY_STATUS ioctl")
        b1c0ec35 ("fscrypt: add FS_IOC_REMOVE_ENCRYPTION_KEY ioctl")
        22d94f49 ("fscrypt: add FS_IOC_ADD_ENCRYPTION_KEY ioctl")
        3b6df59b ("fscrypt: use FSCRYPT_* definitions, not FS_*")
        2336d0de ("fscrypt: use FSCRYPT_ prefix for uapi constants")
        7af0ab0d ("fs, fscrypt: move uapi definitions to new header <linux/fscrypt.h>")
      
      That don't trigger any changes in tooling, as it so far is used only
      for:
      
        $ grep -l 'fs\.h' tools/perf/trace/beauty/*.sh | xargs grep regex=
        tools/perf/trace/beauty/rename_flags.sh:regex='^[[:space:]]*#[[:space:]]*define[[:space:]]+RENAME_([[:alnum:]_]+)[[:space:]]+\(1[[:space:]]*<<[[:space:]]*([[:xdigit:]]+)[[:space:]]*\)[[:space:]]*.*'
        tools/perf/trace/beauty/sync_file_range.sh:regex='^[[:space:]]*#[[:space:]]*define[[:space:]]+SYNC_FILE_RANGE_([[:alnum:]_]+)[[:space:]]+([[:xdigit:]]+)[[:space:]]*.*'
        tools/perf/trace/beauty/usbdevfs_ioctl.sh:regex="^#[[:space:]]*define[[:space:]]+USBDEVFS_(\w+)(\(\w+\))?[[:space:]]+_IO[CWR]{0,2}\([[:space:]]*(_IOC_\w+,[[:space:]]*)?'U'[[:space:]]*,[[:space:]]*([[:digit:]]+).*"
        tools/perf/trace/beauty/usbdevfs_ioctl.sh:regex="^#[[:space:]]*define[[:space:]]+USBDEVFS_(\w+)[[:space:]]+_IO[WR]{0,2}\([[:space:]]*'U'[[:space:]]*,[[:space:]]*([[:digit:]]+).*"
        $
      
      This silences this perf build warning:
      
        Warning: Kernel ABI header at 'tools/include/uapi/linux/fs.h' differs from latest version at 'include/uapi/linux/fs.h'
        diff -u tools/include/uapi/linux/fs.h include/uapi/linux/fs.h
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Eric Biggers <ebiggers@google.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Link: https://lkml.kernel.org/n/tip-44g48exl9br9ba0t64chqb4i@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      0ae40612
    • Arnaldo Carvalho de Melo's avatar
      tools headers uapi: Sync linux/usbdevice_fs.h with the kernel sources · 05f371f8
      Arnaldo Carvalho de Melo authored
      To pick up the changes from:
      
        4ed33505 ("USB: usbfs: Add a capability flag for runtime suspend")
        7794f486 ("usbfs: Add ioctls for runtime power management")
      
      This triggers these changes in the kernel sources, automagically
      supporting these new ioctls in the 'perf trace' beautifiers.
      
      Soon this will be used in things like filter expressions for tracepoints
      in 'perf record', 'perf trace', 'perf top', i.e. filter expressions will
      do a lookup to turn things like USBDEVFS_WAIT_FOR_RESUME into _IO('U',
      35) before associating the tracepoint expression to tracepoint perf
      event.
      
        $ tools/perf/trace/beauty/usbdevfs_ioctl.sh  > before
        $ cp include/uapi/linux/usbdevice_fs.h tools/include/uapi/linux/usbdevice_fs.h
        $ git diff
        diff --git a/tools/include/uapi/linux/usbdevice_fs.h b/tools/include/uapi/linux/usbdevice_fs.h
        index 78efe870c2b7..cf525cddeb94 100644
        --- a/tools/include/uapi/linux/usbdevice_fs.h
        +++ b/tools/include/uapi/linux/usbdevice_fs.h
        @@ -158,6 +158,7 @@ struct usbdevfs_hub_portinfo {
         #define USBDEVFS_CAP_MMAP                      0x20
         #define USBDEVFS_CAP_DROP_PRIVILEGES           0x40
         #define USBDEVFS_CAP_CONNINFO_EX               0x80
        +#define USBDEVFS_CAP_SUSPEND                   0x100
      
         /* USBDEVFS_DISCONNECT_CLAIM flags & struct */
      
        @@ -223,5 +224,8 @@ struct usbdevfs_streams {
          * extending size of the data returned.
          */
         #define USBDEVFS_CONNINFO_EX(len)  _IOC(_IOC_READ, 'U', 32, len)
        +#define USBDEVFS_FORBID_SUSPEND    _IO('U', 33)
        +#define USBDEVFS_ALLOW_SUSPEND     _IO('U', 34)
        +#define USBDEVFS_WAIT_FOR_RESUME   _IO('U', 35)
      
         #endif /* _UAPI_LINUX_USBDEVICE_FS_H */
        $ tools/perf/trace/beauty/usbdevfs_ioctl.sh  > after
        $ diff -u before after
        --- before	2019-09-27 11:41:50.634867620 -0300
        +++ after	2019-09-27 11:42:07.453102978 -0300
        @@ -24,6 +24,9 @@
         	[30] = "DROP_PRIVILEGES",
         	[31] = "GET_SPEED",
         	[32] = "CONNINFO_EX",
        +	[33] = "FORBID_SUSPEND",
        +	[34] = "ALLOW_SUSPEND",
        +	[35] = "WAIT_FOR_RESUME",
         	[3] = "RESETEP",
         	[4] = "SETINTERFACE",
         	[5] = "SETCONFIGURATION",
        $
      
      This addresses the following perf build warning:
      
        Warning: Kernel ABI header at 'tools/include/uapi/linux/usbdevice_fs.h' differs from latest version at 'include/uapi/linux/usbdevice_fs.h'
        diff -u tools/include/uapi/linux/usbdevice_fs.h include/uapi/linux/usbdevice_fs.h
      
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Brendan Gregg <brendan.d.gregg@gmail.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Luis Cláudio Gonçalves <lclaudio@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Link: https://lkml.kernel.org/n/tip-x1rb109b9nfi7pukota82xhj@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      05f371f8
    • Arnaldo Carvalho de Melo's avatar
      tools headers uapi: Sync asm-generic/mman-common.h with the kernel · b1ba55cf
      Arnaldo Carvalho de Melo authored
      To pick the changes from:
      
        1a4e58cc ("mm: introduce MADV_PAGEOUT")
        9c276cc6 ("mm: introduce MADV_COLD")
      
      That result in these changes in the tools:
      
        $ tools/perf/trace/beauty/madvise_behavior.sh > before
        $ cp include/uapi/asm-generic/mman-common.h tools/include/uapi/asm-generic/mman-common.h
        $ git diff
        diff --git a/tools/include/uapi/asm-generic/mman-common.h b/tools/include/uapi/asm-generic/mman-common.h
        index 63b1f506ea67..c160a5354eb6 100644
        --- a/tools/include/uapi/asm-generic/mman-common.h
        +++ b/tools/include/uapi/asm-generic/mman-common.h
        @@ -67,6 +67,9 @@
         #define MADV_WIPEONFORK 18             /* Zero memory on fork, child only */
         #define MADV_KEEPONFORK 19             /* Undo MADV_WIPEONFORK */
      
        +#define MADV_COLD      20              /* deactivate these pages */
        +#define MADV_PAGEOUT   21              /* reclaim these pages */
        +
         /* compatibility flags */
         #define MAP_FILE       0
      
        $ tools/perf/trace/beauty/madvise_behavior.sh > after
        $ diff -u before after
        --- before	2019-09-27 11:29:43.346320100 -0300
        +++ after	2019-09-27 11:30:03.838570439 -0300
        @@ -16,6 +16,8 @@
         	[17] = "DODUMP",
         	[18] = "WIPEONFORK",
         	[19] = "KEEPONFORK",
        +	[20] = "COLD",
        +	[21] = "PAGEOUT",
         	[100] = "HWPOISON",
         	[101] = "SOFT_OFFLINE",
         };
        $
      
      I.e. now when madvise gets those behaviours as args, it will be able to
      translate from the number to a human readable string.
      
      This addresses the following perf build warning:
      
        Warning: Kernel ABI header at 'tools/include/uapi/asm-generic/mman-common.h' differs from latest version at 'include/uapi/asm-generic/mman-common.h'
        diff -u tools/include/uapi/asm-generic/mman-common.h include/uapi/asm-generic/mman-common.h
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Brendan Gregg <brendan.d.gregg@gmail.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Luis Cláudio Gonçalves <lclaudio@redhat.com>
      Cc: Minchan Kim <minchan@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Link: https://lkml.kernel.org/n/tip-n40y6c4sa49p29q6sl8w3ufx@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      b1ba55cf
  2. 27 Sep, 2019 4 commits
  3. 26 Sep, 2019 17 commits