Hello, Here is the second try for the probe-cache. This version simplifies the synopsis, and unifies the SDT and probe caches. Please give me your comments/ideas!
Command-line Synopsis ===================== Add elf(or symbols) and probe-caches of SDT if exists in <FILES> perf cache --add <FILES> [--probe <SPEC>] # for user programs perf cache --kcore <FILE> [--probe <SPEC>] # for kcore ? perf cache --probe <SPEC> # for the current kernel Remove caches related to <FILES> or <BUILDIDS> perf cache --remove <FILES>|<BUILDIDS> Show all probe caches(including SDT) or buildids perf cache --list [probe|buildid] Delete existing probe-cache entries for kernel, <PATH> or/and <BUILDID>. perf cache --probe-del [<GROUP>:]<EVENT>[@<PATH>][#<BUILDID>] Query the probe definitions. perf cache --query [<GROUP>:]<EVENT>[@<PATH>][#<BUILDID>] File Format =========== All the cache files are placed under ~/.debug/ by default. Elf caches are ~/.debug/path/to/file/bu/ildid/elf Symbols caches are ~/.debug/path/to/file/bu/ildid/syms Probes(and SDT) are ~/.debug/path/to/file/bu/ildid/probes And ~/.debug/path/to/file/bu/ildid/ is linked to ~/.debug/.buildid/bu/ildid Optionally, we can gzip the probes file. This probe caches contain probe-definitions as following format. ---- #buildid:BUILDID #spec:SDT p:sdt_<PROVIDER>/<EVENT> PATH:OFFSET [ARGS] ... #spec:* $params p:probe_<GROUP>/<EVENT> _text+OFFSET [ARGS] ... ---- So the #spec: line gives the information what probe spec has been given. This will be used for updating. And all the "probe_" and "sdt_" prefix will be replaced by % in the command line, e.g. perf record -e %<PROVIDER>/<EVENT> -> this records sdt_PROVIDER/EVENT Thank you, -- Masami HIRAMATSU Software Platform Research Dept. Linux Technology Research Center Hitachi, Ltd., Yokohama Research Laboratory E-mail: masami.hiramatsu...@hitachi.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/