• Aditya Gupta's avatar
    perf check: Introduce 'check' subcommand · 98ad0b77
    Aditya Gupta authored
    Currently the presence of a feature is checked with a combination of
    perf version --build-options and greps, such as:
    
        perf version --build-options | grep " on .* HAVE_FEATURE"
    
    Instead of this, introduce a subcommand "perf check feature", with which
    scripts can test for presence of a feature, such as:
    
        perf check feature HAVE_FEATURE
    
    'perf check feature' command is expected to have exit status of 0 if
    feature is built-in, and 1 if it's not built-in or if feature is not known.
    
    Multiple features can also be passed as a comma-separated list, in which
    case the exit status will be 1 only if all of the passed features are
    built-in. For example, with below command, it will have exit status of 0
    only if both libtraceevent and bpf are enabled, else 1 in all other cases
    
        perf check feature libtraceevent,bpf
    
    The arguments are case-insensitive.
    An array 'supported_features' has also been introduced that can be used by
    other commands like 'perf version --build-options', so that new features
    can be added in one place, with the array
    
    Committer testing:
    
      $ perf check feature libtraceevent,bpf
               libtraceevent: [ on  ]  # HAVE_LIBTRACEEVENT
                         bpf: [ on  ]  # HAVE_LIBBPF_SUPPORT
      $ perf check feature libtraceevent
               libtraceevent: [ on  ]  # HAVE_LIBTRACEEVENT
      $ perf check feature bpf
                         bpf: [ on  ]  # HAVE_LIBBPF_SUPPORT
      $ perf check -q feature bpf && echo "BPF support is present"
      BPF support is present
      $ perf check -q feature Bogus && echo "Bogus support is present"
      $
    Reviewed-by: default avatarAthira Rajeev <atrajeev@linux.vnet.ibm.com>
    Signed-off-by: default avatarAditya Gupta <adityag@linux.ibm.com>
    Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
    Cc: Disha Goel <disgoel@linux.vnet.ibm.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Kajol Jain <kjain@linux.ibm.com>
    Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: https://lore.kernel.org/r/20240904061836.55873-3-adityag@linux.ibm.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    98ad0b77
perf.c 13.6 KB