Lines Matching refs:dso
242 char *__dso__build_id_filename(const struct dso *dso, char *bf, size_t size, in __dso__build_id_filename() argument
245 bool is_vdso = dso__is_vdso((struct dso *)dso); in __dso__build_id_filename()
251 if (!dso__has_build_id(dso)) in __dso__build_id_filename()
254 build_id__snprintf(dso__bid(dso), sbuild_id, sizeof(sbuild_id)); in __dso__build_id_filename()
273 char *dso__build_id_filename(const struct dso *dso, char *bf, size_t size, in dso__build_id_filename() argument
276 bool is_kallsyms = dso__is_kallsyms((struct dso *)dso); in dso__build_id_filename()
278 return __dso__build_id_filename(dso, bf, size, is_debug, is_kallsyms); in dso__build_id_filename()
312 static int machine__write_buildid_table_cb(struct dso *dso, void *data) in machine__write_buildid_table_cb() argument
319 if (!dso__has_build_id(dso)) in machine__write_buildid_table_cb()
322 if (!dso__hit(dso) && !dso__is_vdso(dso)) in machine__write_buildid_table_cb()
325 if (dso__is_vdso(dso)) { in machine__write_buildid_table_cb()
326 name = dso__short_name(dso); in machine__write_buildid_table_cb()
327 name_len = dso__short_name_len(dso); in machine__write_buildid_table_cb()
328 } else if (dso__is_kcore(dso)) { in machine__write_buildid_table_cb()
332 name = dso__long_name(dso); in machine__write_buildid_table_cb()
333 name_len = dso__long_name_len(dso); in machine__write_buildid_table_cb()
336 in_kernel = dso__kernel(dso) || is_kernel_module(name, PERF_RECORD_MISC_CPUMODE_UNKNOWN); in machine__write_buildid_table_cb()
337 return write_buildid(name, name_len, &dso__id(dso)->build_id, args->machine->pid, in machine__write_buildid_table_cb()
850 static bool dso__build_id_mismatch(struct dso *dso, const char *name) in dso__build_id_mismatch() argument
855 mutex_lock(dso__lock(dso)); in dso__build_id_mismatch()
856 if (filename__read_build_id_ns(name, &bid, dso__nsinfo(dso)) >= 0) in dso__build_id_mismatch()
857 ret = !dso__build_id_equal(dso, &bid); in dso__build_id_mismatch()
859 mutex_unlock(dso__lock(dso)); in dso__build_id_mismatch()
864 static int dso__cache_build_id(struct dso *dso, struct machine *machine, in dso__cache_build_id() argument
867 bool is_kallsyms = dso__is_kallsyms(dso); in dso__cache_build_id()
868 bool is_vdso = dso__is_vdso(dso); in dso__cache_build_id()
869 const char *name = dso__long_name(dso); in dso__cache_build_id()
875 if (!dso__has_build_id(dso) || !dso__hit(dso)) in dso__cache_build_id()
878 if (dso__is_kcore(dso)) { in dso__cache_build_id()
897 if (!is_kallsyms && dso__build_id_mismatch(dso, name)) in dso__cache_build_id()
900 mutex_lock(dso__lock(dso)); in dso__cache_build_id()
901 ret = build_id_cache__add_b(dso__bid(dso), name, dso__nsinfo(dso), in dso__cache_build_id()
903 mutex_unlock(dso__lock(dso)); in dso__cache_build_id()