perf-buildid-cache(1)
=====================

NAME
----
perf-buildid-cache - Manage build-id cache.

SYNOPSIS
--------
[verse]
'perf buildid-cache <options>'

DESCRIPTION
-----------
This command manages the build-id cache. It can add and remove files to/from
the cache. In the future it should as well purge older entries, set upper
limits for the space used by the cache, etc.

OPTIONS
-------
-a::
--add=::
        Add specified file to the cache.
-k::
--kcore::
        Add specified kcore file to the cache. For the current host that is
        /proc/kcore which requires root permissions to read. Be aware that
        running 'perf buildid-cache' as root may update root's build-id cache
        not the user's. Use the -v option to see where the file is created.
        Note that the copied file contains only code sections not the whole core
        image. Note also that files "kallsyms" and "modules" must also be in the
        same directory and are also copied.  All 3 files are created with read
        permissions for root only. kcore will not be added if there is already a
        kcore in the cache (with the same build-id) that has the same modules at
        the same addresses. Use the -v option to see if a copy of kcore is
        actually made.
-r::
--remove=::
        Remove specified file from the cache.
-M::
--missing=:: 
	List missing build ids in the cache for the specified file.
-u::
--update::
	Update specified file of the cache. It can be used to update kallsyms
	kernel dso to vmlinux in order to support annotation.
-v::
--verbose::
	Be more verbose.

SEE ALSO
--------
linkperf:perf-record[1], linkperf:perf-report[1], linkperf:perf-buildid-list[1]
