diff options
| author | Namhyung Kim <namhyung.kim@lge.com> | 2013-03-13 07:19:40 -0400 |
|---|---|---|
| committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2013-03-15 12:06:08 -0400 |
| commit | f3ff40ec8d92b36e60ebbbdb604ffeb5cfe6545f (patch) | |
| tree | 113399d728688343e917983a43714ab2246c5846 /tools/perf/util | |
| parent | db3c6bf811581c626471a6aecdf0024575b707d7 (diff) | |
perf tools: Remove unused trace_read_data function
And functions that called only from the trace_read_data().
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Steven Rostedt <rostedt@goodmis.org>
Link: http://lkml.kernel.org/r/1363173585-9754-2-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util')
| -rw-r--r-- | tools/perf/util/trace-event-read.c | 201 |
1 files changed, 0 insertions, 201 deletions
diff --git a/tools/perf/util/trace-event-read.c b/tools/perf/util/trace-event-read.c index 3741572696af..7cb24635adf2 100644 --- a/tools/perf/util/trace-event-read.c +++ b/tools/perf/util/trace-event-read.c | |||
| @@ -41,8 +41,6 @@ | |||
| 41 | 41 | ||
| 42 | static int input_fd; | 42 | static int input_fd; |
| 43 | 43 | ||
| 44 | static int read_page; | ||
| 45 | |||
| 46 | int file_bigendian; | 44 | int file_bigendian; |
| 47 | int host_bigendian; | 45 | int host_bigendian; |
| 48 | static int long_size; | 46 | static int long_size; |
| @@ -287,205 +285,6 @@ static void read_event_files(struct pevent *pevent) | |||
| 287 | } | 285 | } |
| 288 | } | 286 | } |
| 289 | 287 | ||
| 290 | struct cpu_data { | ||
| 291 | unsigned long long offset; | ||
| 292 | unsigned long long size; | ||
| 293 | unsigned long long timestamp; | ||
| 294 | struct pevent_record *next; | ||
| 295 | char *page; | ||
| 296 | int cpu; | ||
| 297 | int index; | ||
| 298 | int page_size; | ||
| 299 | }; | ||
| 300 | |||
| 301 | static struct cpu_data *cpu_data; | ||
| 302 | |||
| 303 | static void update_cpu_data_index(int cpu) | ||
| 304 | { | ||
| 305 | cpu_data[cpu].offset += page_size; | ||
| 306 | cpu_data[cpu].size -= page_size; | ||
| 307 | cpu_data[cpu].index = 0; | ||
| 308 | } | ||
| 309 | |||
| 310 | static void get_next_page(int cpu) | ||
| 311 | { | ||
| 312 | off_t save_seek; | ||
| 313 | off_t ret; | ||
| 314 | |||
| 315 | if (!cpu_data[cpu].page) | ||
| 316 | return; | ||
| 317 | |||
| 318 | if (read_page) { | ||
| 319 | if (cpu_data[cpu].size <= page_size) { | ||
| 320 | free(cpu_data[cpu].page); | ||
| 321 | cpu_data[cpu].page = NULL; | ||
| 322 | return; | ||
| 323 | } | ||
| 324 | |||
| 325 | update_cpu_data_index(cpu); | ||
| 326 | |||
| 327 | /* other parts of the code may expect the pointer to not move */ | ||
| 328 | save_seek = lseek(input_fd, 0, SEEK_CUR); | ||
| 329 | |||
| 330 | ret = lseek(input_fd, cpu_data[cpu].offset, SEEK_SET); | ||
| 331 | if (ret == (off_t)-1) | ||
| 332 | die("failed to lseek"); | ||
| 333 | ret = read(input_fd, cpu_data[cpu].page, page_size); | ||
| 334 | if (ret < 0) | ||
| 335 | die("failed to read page"); | ||
| 336 | |||
| 337 | /* reset the file pointer back */ | ||
| 338 | lseek(input_fd, save_seek, SEEK_SET); | ||
| 339 | |||
| 340 | return; | ||
| 341 | } | ||
| 342 | |||
| 343 | munmap(cpu_data[cpu].page, page_size); | ||
| 344 | cpu_data[cpu].page = NULL; | ||
| 345 | |||
| 346 | if (cpu_data[cpu].size <= page_size) | ||
| 347 | return; | ||
| 348 | |||
| 349 | update_cpu_data_index(cpu); | ||
| 350 | |||
| 351 | cpu_data[cpu].page = mmap(NULL, page_size, PROT_READ, MAP_PRIVATE, | ||
| 352 | input_fd, cpu_data[cpu].offset); | ||
| 353 | if (cpu_data[cpu].page == MAP_FAILED) | ||
| 354 | die("failed to mmap cpu %d at offset 0x%llx", | ||
| 355 | cpu, cpu_data[cpu].offset); | ||
| 356 | } | ||
| 357 | |||
| 358 | static unsigned int type_len4host(unsigned int type_len_ts) | ||
| 359 | { | ||
| 360 | if (file_bigendian) | ||
| 361 | return (type_len_ts >> 27) & ((1 << 5) - 1); | ||
| 362 | else | ||
| 363 | return type_len_ts & ((1 << 5) - 1); | ||
| 364 | } | ||
| 365 | |||
| 366 | static unsigned int ts4host(unsigned int type_len_ts) | ||
| 367 | { | ||
| 368 | if (file_bigendian) | ||
| 369 | return type_len_ts & ((1 << 27) - 1); | ||
| 370 | else | ||
| 371 | return type_len_ts >> 5; | ||
| 372 | } | ||
| 373 | |||
| 374 | static int calc_index(void *ptr, int cpu) | ||
| 375 | { | ||
| 376 | return (unsigned long)ptr - (unsigned long)cpu_data[cpu].page; | ||
| 377 | } | ||
| 378 | |||
| 379 | struct pevent_record *trace_peek_data(struct pevent *pevent, int cpu) | ||
| 380 | { | ||
| 381 | struct pevent_record *data; | ||
| 382 | void *page = cpu_data[cpu].page; | ||
| 383 | int idx = cpu_data[cpu].index; | ||
| 384 | void *ptr = page + idx; | ||
| 385 | unsigned long long extend; | ||
| 386 | unsigned int type_len_ts; | ||
| 387 | unsigned int type_len; | ||
| 388 | unsigned int delta; | ||
| 389 | unsigned int length = 0; | ||
| 390 | |||
| 391 | if (cpu_data[cpu].next) | ||
| 392 | return cpu_data[cpu].next; | ||
| 393 | |||
| 394 | if (!page) | ||
| 395 | return NULL; | ||
| 396 | |||
| 397 | if (!idx) { | ||
| 398 | /* FIXME: handle header page */ | ||
| 399 | if (header_page_ts_size != 8) | ||
| 400 | die("expected a long long type for timestamp"); | ||
| 401 | cpu_data[cpu].timestamp = data2host8(pevent, ptr); | ||
| 402 | ptr += 8; | ||
| 403 | switch (header_page_size_size) { | ||
| 404 | case 4: | ||
| 405 | cpu_data[cpu].page_size = data2host4(pevent, ptr); | ||
| 406 | ptr += 4; | ||
| 407 | break; | ||
| 408 | case 8: | ||
| 409 | cpu_data[cpu].page_size = data2host8(pevent, ptr); | ||
| 410 | ptr += 8; | ||
| 411 | break; | ||
| 412 | default: | ||
| 413 | die("bad long size"); | ||
| 414 | } | ||
| 415 | ptr = cpu_data[cpu].page + header_page_data_offset; | ||
| 416 | } | ||
| 417 | |||
| 418 | read_again: | ||
| 419 | idx = calc_index(ptr, cpu); | ||
| 420 | |||
| 421 | if (idx >= cpu_data[cpu].page_size) { | ||
| 422 | get_next_page(cpu); | ||
| 423 | return trace_peek_data(pevent, cpu); | ||
| 424 | } | ||
| 425 | |||
| 426 | type_len_ts = data2host4(pevent, ptr); | ||
| 427 | ptr += 4; | ||
| 428 | |||
| 429 | type_len = type_len4host(type_len_ts); | ||
| 430 | delta = ts4host(type_len_ts); | ||
| 431 | |||
| 432 | switch (type_len) { | ||
| 433 | case RINGBUF_TYPE_PADDING: | ||
| 434 | if (!delta) | ||
| 435 | die("error, hit unexpected end of page"); | ||
| 436 | length = data2host4(pevent, ptr); | ||
| 437 | ptr += 4; | ||
| 438 | length *= 4; | ||
| 439 | ptr += length; | ||
| 440 | goto read_again; | ||
| 441 | |||
| 442 | case RINGBUF_TYPE_TIME_EXTEND: | ||
| 443 | extend = data2host4(pevent, ptr); | ||
| 444 | ptr += 4; | ||
| 445 | extend <<= TS_SHIFT; | ||
| 446 | extend += delta; | ||
| 447 | cpu_data[cpu].timestamp += extend; | ||
| 448 | goto read_again; | ||
| 449 | |||
| 450 | case RINGBUF_TYPE_TIME_STAMP: | ||
| 451 | ptr += 12; | ||
| 452 | break; | ||
| 453 | case 0: | ||
| 454 | length = data2host4(pevent, ptr); | ||
| 455 | ptr += 4; | ||
| 456 | die("here! length=%d", length); | ||
| 457 | break; | ||
| 458 | default: | ||
| 459 | length = type_len * 4; | ||
| 460 | break; | ||
| 461 | } | ||
| 462 | |||
| 463 | cpu_data[cpu].timestamp += delta; | ||
| 464 | |||
| 465 | data = malloc_or_die(sizeof(*data)); | ||
| 466 | memset(data, 0, sizeof(*data)); | ||
| 467 | |||
| 468 | data->ts = cpu_data[cpu].timestamp; | ||
| 469 | data->size = length; | ||
| 470 | data->data = ptr; | ||
| 471 | ptr += length; | ||
| 472 | |||
| 473 | cpu_data[cpu].index = calc_index(ptr, cpu); | ||
| 474 | cpu_data[cpu].next = data; | ||
| 475 | |||
| 476 | return data; | ||
| 477 | } | ||
| 478 | |||
| 479 | struct pevent_record *trace_read_data(struct pevent *pevent, int cpu) | ||
| 480 | { | ||
| 481 | struct pevent_record *data; | ||
| 482 | |||
| 483 | data = trace_peek_data(pevent, cpu); | ||
| 484 | cpu_data[cpu].next = NULL; | ||
| 485 | |||
| 486 | return data; | ||
| 487 | } | ||
| 488 | |||
| 489 | ssize_t trace_report(int fd, struct pevent **ppevent, bool __repipe) | 288 | ssize_t trace_report(int fd, struct pevent **ppevent, bool __repipe) |
| 490 | { | 289 | { |
| 491 | char buf[BUFSIZ]; | 290 | char buf[BUFSIZ]; |
