Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

perf buildid-cache: Remove unneeded debugdir parameters

Functions related to buildid-cache subcommand use debugdir parameters
for passing buildid cache directory path. However all callers just pass
buildid_dir global variable. Moreover, other functions which refer
buildid cache use buildid_dir directly.

This removes unneeded debugdir parameters from those functions and use
buildid_dir if needed.

Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: Hemant Kumar <hemant@linux.vnet.ibm.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/20150210091851.19264.72741.stgit@localhost.localdomain
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

authored by

Masami Hiramatsu and committed by
Arnaldo Carvalho de Melo
e35f7362 4e31050f

+38 -47
+16 -21
tools/perf/builtin-buildid-cache.c
··· 125 125 return ret; 126 126 } 127 127 128 - static int build_id_cache__add_kcore(const char *filename, const char *debugdir, 129 - bool force) 128 + static int build_id_cache__add_kcore(const char *filename, bool force) 130 129 { 131 130 char dir[32], sbuildid[BUILD_ID_SIZE * 2 + 1]; 132 131 char from_dir[PATH_MAX], to_dir[PATH_MAX]; ··· 142 143 return -1; 143 144 144 145 scnprintf(to_dir, sizeof(to_dir), "%s/[kernel.kcore]/%s", 145 - debugdir, sbuildid); 146 + buildid_dir, sbuildid); 146 147 147 148 if (!force && 148 149 !build_id_cache__kcore_existing(from_dir, to_dir, sizeof(to_dir))) { ··· 154 155 return -1; 155 156 156 157 scnprintf(to_dir, sizeof(to_dir), "%s/[kernel.kcore]/%s/%s", 157 - debugdir, sbuildid, dir); 158 + buildid_dir, sbuildid, dir); 158 159 159 160 if (mkdir_p(to_dir, 0755)) 160 161 return -1; ··· 182 183 return 0; 183 184 } 184 185 185 - static int build_id_cache__add_file(const char *filename, const char *debugdir) 186 + static int build_id_cache__add_file(const char *filename) 186 187 { 187 188 char sbuild_id[BUILD_ID_SIZE * 2 + 1]; 188 189 u8 build_id[BUILD_ID_SIZE]; ··· 194 195 } 195 196 196 197 build_id__sprintf(build_id, sizeof(build_id), sbuild_id); 197 - err = build_id_cache__add_s(sbuild_id, debugdir, filename, 198 + err = build_id_cache__add_s(sbuild_id, filename, 198 199 false, false); 199 200 if (verbose) 200 201 pr_info("Adding %s %s: %s\n", sbuild_id, filename, ··· 202 203 return err; 203 204 } 204 205 205 - static int build_id_cache__remove_file(const char *filename, 206 - const char *debugdir) 206 + static int build_id_cache__remove_file(const char *filename) 207 207 { 208 208 u8 build_id[BUILD_ID_SIZE]; 209 209 char sbuild_id[BUILD_ID_SIZE * 2 + 1]; ··· 215 217 } 216 218 217 219 build_id__sprintf(build_id, sizeof(build_id), sbuild_id); 218 - err = build_id_cache__remove_s(sbuild_id, debugdir); 220 + err = build_id_cache__remove_s(sbuild_id); 219 221 if (verbose) 220 222 pr_info("Removing %s %s: %s\n", sbuild_id, filename, 221 223 err ? "FAIL" : "Ok"); ··· 250 252 return 0; 251 253 } 252 254 253 - static int build_id_cache__update_file(const char *filename, 254 - const char *debugdir) 255 + static int build_id_cache__update_file(const char *filename) 255 256 { 256 257 u8 build_id[BUILD_ID_SIZE]; 257 258 char sbuild_id[BUILD_ID_SIZE * 2 + 1]; ··· 263 266 } 264 267 265 268 build_id__sprintf(build_id, sizeof(build_id), sbuild_id); 266 - err = build_id_cache__remove_s(sbuild_id, debugdir); 267 - if (!err) { 268 - err = build_id_cache__add_s(sbuild_id, debugdir, filename, 269 - false, false); 270 - } 269 + err = build_id_cache__remove_s(sbuild_id); 270 + if (!err) 271 + err = build_id_cache__add_s(sbuild_id, filename, false, false); 272 + 271 273 if (verbose) 272 274 pr_info("Updating %s %s: %s\n", sbuild_id, filename, 273 275 err ? "FAIL" : "Ok"); ··· 334 338 list = strlist__new(true, add_name_list_str); 335 339 if (list) { 336 340 strlist__for_each(pos, list) 337 - if (build_id_cache__add_file(pos->s, buildid_dir)) { 341 + if (build_id_cache__add_file(pos->s)) { 338 342 if (errno == EEXIST) { 339 343 pr_debug("%s already in the cache\n", 340 344 pos->s); ··· 352 356 list = strlist__new(true, remove_name_list_str); 353 357 if (list) { 354 358 strlist__for_each(pos, list) 355 - if (build_id_cache__remove_file(pos->s, buildid_dir)) { 359 + if (build_id_cache__remove_file(pos->s)) { 356 360 if (errno == ENOENT) { 357 361 pr_debug("%s wasn't in the cache\n", 358 362 pos->s); ··· 373 377 list = strlist__new(true, update_name_list_str); 374 378 if (list) { 375 379 strlist__for_each(pos, list) 376 - if (build_id_cache__update_file(pos->s, buildid_dir)) { 380 + if (build_id_cache__update_file(pos->s)) { 377 381 if (errno == ENOENT) { 378 382 pr_debug("%s wasn't in the cache\n", 379 383 pos->s); ··· 387 391 } 388 392 } 389 393 390 - if (kcore_filename && 391 - build_id_cache__add_kcore(kcore_filename, buildid_dir, force)) 394 + if (kcore_filename && build_id_cache__add_kcore(kcore_filename, force)) 392 395 pr_warning("Couldn't add %s\n", kcore_filename); 393 396 394 397 out:
+20 -24
tools/perf/util/build-id.c
··· 259 259 no_buildid_cache = true; 260 260 } 261 261 262 - int build_id_cache__add_s(const char *sbuild_id, const char *debugdir, 263 - const char *name, bool is_kallsyms, bool is_vdso) 262 + int build_id_cache__add_s(const char *sbuild_id, const char *name, 263 + bool is_kallsyms, bool is_vdso) 264 264 { 265 265 const size_t size = PATH_MAX; 266 266 char *realname, *filename = zalloc(size), ··· 282 282 goto out_free; 283 283 284 284 len = scnprintf(filename, size, "%s%s%s", 285 - debugdir, slash ? "/" : "", 285 + buildid_dir, slash ? "/" : "", 286 286 is_vdso ? DSO__NAME_VDSO : realname); 287 287 if (mkdir_p(filename, 0755)) 288 288 goto out_free; ··· 298 298 } 299 299 300 300 len = scnprintf(linkname, size, "%s/.build-id/%.2s", 301 - debugdir, sbuild_id); 301 + buildid_dir, sbuild_id); 302 302 303 303 if (access(linkname, X_OK) && mkdir_p(linkname, 0755)) 304 304 goto out_free; 305 305 306 306 snprintf(linkname + len, size - len, "/%s", sbuild_id + 2); 307 - targetname = filename + strlen(debugdir) - 5; 307 + targetname = filename + strlen(buildid_dir) - 5; 308 308 memcpy(targetname, "../..", 5); 309 309 310 310 if (symlink(targetname, linkname) == 0) ··· 318 318 } 319 319 320 320 static int build_id_cache__add_b(const u8 *build_id, size_t build_id_size, 321 - const char *name, const char *debugdir, 322 - bool is_kallsyms, bool is_vdso) 321 + const char *name, bool is_kallsyms, 322 + bool is_vdso) 323 323 { 324 324 char sbuild_id[BUILD_ID_SIZE * 2 + 1]; 325 325 326 326 build_id__sprintf(build_id, build_id_size, sbuild_id); 327 327 328 - return build_id_cache__add_s(sbuild_id, debugdir, name, 329 - is_kallsyms, is_vdso); 328 + return build_id_cache__add_s(sbuild_id, name, is_kallsyms, is_vdso); 330 329 } 331 330 332 - int build_id_cache__remove_s(const char *sbuild_id, const char *debugdir) 331 + int build_id_cache__remove_s(const char *sbuild_id) 333 332 { 334 333 const size_t size = PATH_MAX; 335 334 char *filename = zalloc(size), ··· 339 340 goto out_free; 340 341 341 342 snprintf(linkname, size, "%s/.build-id/%.2s/%s", 342 - debugdir, sbuild_id, sbuild_id + 2); 343 + buildid_dir, sbuild_id, sbuild_id + 2); 343 344 344 345 if (access(linkname, F_OK)) 345 346 goto out_free; ··· 354 355 * Since the link is relative, we must make it absolute: 355 356 */ 356 357 snprintf(linkname, size, "%s/.build-id/%.2s/%s", 357 - debugdir, sbuild_id, filename); 358 + buildid_dir, sbuild_id, filename); 358 359 359 360 if (unlink(linkname)) 360 361 goto out_free; ··· 366 367 return err; 367 368 } 368 369 369 - static int dso__cache_build_id(struct dso *dso, struct machine *machine, 370 - const char *debugdir) 370 + static int dso__cache_build_id(struct dso *dso, struct machine *machine) 371 371 { 372 372 bool is_kallsyms = dso->kernel && dso->long_name[0] != '/'; 373 373 bool is_vdso = dso__is_vdso(dso); ··· 379 381 name = nm; 380 382 } 381 383 return build_id_cache__add_b(dso->build_id, sizeof(dso->build_id), name, 382 - debugdir, is_kallsyms, is_vdso); 384 + is_kallsyms, is_vdso); 383 385 } 384 386 385 387 static int __dsos__cache_build_ids(struct list_head *head, 386 - struct machine *machine, const char *debugdir) 388 + struct machine *machine) 387 389 { 388 390 struct dso *pos; 389 391 int err = 0; 390 392 391 393 dsos__for_each_with_build_id(pos, head) 392 - if (dso__cache_build_id(pos, machine, debugdir)) 394 + if (dso__cache_build_id(pos, machine)) 393 395 err = -1; 394 396 395 397 return err; 396 398 } 397 399 398 - static int machine__cache_build_ids(struct machine *machine, const char *debugdir) 400 + static int machine__cache_build_ids(struct machine *machine) 399 401 { 400 - int ret = __dsos__cache_build_ids(&machine->kernel_dsos.head, machine, 401 - debugdir); 402 - ret |= __dsos__cache_build_ids(&machine->user_dsos.head, machine, 403 - debugdir); 402 + int ret = __dsos__cache_build_ids(&machine->kernel_dsos.head, machine); 403 + ret |= __dsos__cache_build_ids(&machine->user_dsos.head, machine); 404 404 return ret; 405 405 } 406 406 ··· 413 417 if (mkdir(buildid_dir, 0755) != 0 && errno != EEXIST) 414 418 return -1; 415 419 416 - ret = machine__cache_build_ids(&session->machines.host, buildid_dir); 420 + ret = machine__cache_build_ids(&session->machines.host); 417 421 418 422 for (nd = rb_first(&session->machines.guests); nd; nd = rb_next(nd)) { 419 423 struct machine *pos = rb_entry(nd, struct machine, rb_node); 420 - ret |= machine__cache_build_ids(pos, buildid_dir); 424 + ret |= machine__cache_build_ids(pos); 421 425 } 422 426 return ret ? -1 : 0; 423 427 }
+2 -2
tools/perf/util/build-id.h
··· 22 22 int perf_session__write_buildid_table(struct perf_session *session, int fd); 23 23 int perf_session__cache_build_ids(struct perf_session *session); 24 24 25 - int build_id_cache__add_s(const char *sbuild_id, const char *debugdir, 25 + int build_id_cache__add_s(const char *sbuild_id, 26 26 const char *name, bool is_kallsyms, bool is_vdso); 27 - int build_id_cache__remove_s(const char *sbuild_id, const char *debugdir); 27 + int build_id_cache__remove_s(const char *sbuild_id); 28 28 void disable_buildid_cache(void); 29 29 30 30 #endif