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

perf sched replay: Remove unused parts of the code

The sleep_sem semaphore and the specific_wait field (member of sched_atom)
are initialized but not used anywhere in the code, so this patch removes
them.

The SCHED_EVENT_MIGRATION case in perf_sched__process_event() is currently
not used and is also removed.

Additionally, prev_state in add_sched_event_sleep() is marked with
__maybe_unused and is not utilized anywhere in the function. This patch
removes the parameter.

If the task_state parameter was intended for future use, it can be
reintroduced when needed.

No functionality change intended.

Signed-off-by: Madadi Vineeth Reddy <vineethr@linux.ibm.com>
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
Link: https://lore.kernel.org/r/20240917090100.42783-1-vineethr@linux.ibm.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>

authored by

Madadi Vineeth Reddy and committed by
Namhyung Kim
6adeb277 6490dda5

+3 -13
+3 -13
tools/perf/builtin-sched.c
··· 68 68 struct sched_atom **atoms; 69 69 70 70 pthread_t thread; 71 - sem_t sleep_sem; 72 71 73 72 sem_t ready_for_work; 74 73 sem_t work_done_sem; ··· 79 80 SCHED_EVENT_RUN, 80 81 SCHED_EVENT_SLEEP, 81 82 SCHED_EVENT_WAKEUP, 82 - SCHED_EVENT_MIGRATION, 83 83 }; 84 84 85 85 struct sched_atom { 86 86 enum sched_event_type type; 87 - int specific_wait; 88 87 u64 timestamp; 89 88 u64 duration; 90 89 unsigned long nr; ··· 418 421 419 422 wakee_event->wait_sem = zalloc(sizeof(*wakee_event->wait_sem)); 420 423 sem_init(wakee_event->wait_sem, 0, 0); 421 - wakee_event->specific_wait = 1; 422 424 event->wait_sem = wakee_event->wait_sem; 423 425 424 426 sched->nr_wakeup_events++; 425 427 } 426 428 427 429 static void add_sched_event_sleep(struct perf_sched *sched, struct task_desc *task, 428 - u64 timestamp, const char task_state __maybe_unused) 430 + u64 timestamp) 429 431 { 430 432 struct sched_atom *event = get_new_event(task, timestamp); 431 433 ··· 464 468 * every task starts in sleeping state - this gets ignored 465 469 * if there's no wakeup pointing to this sleep state: 466 470 */ 467 - add_sched_event_sleep(sched, task, 0, 0); 471 + add_sched_event_sleep(sched, task, 0); 468 472 469 473 sched->pid_to_task[pid] = task; 470 474 sched->nr_tasks++; ··· 524 528 if (atom->wait_sem) 525 529 ret = sem_post(atom->wait_sem); 526 530 BUG_ON(ret); 527 - break; 528 - case SCHED_EVENT_MIGRATION: 529 531 break; 530 532 default: 531 533 BUG_ON(1); ··· 667 673 parms->task = task = sched->tasks[i]; 668 674 parms->sched = sched; 669 675 parms->fd = self_open_counters(sched, i); 670 - sem_init(&task->sleep_sem, 0, 0); 671 676 sem_init(&task->ready_for_work, 0, 0); 672 677 sem_init(&task->work_done_sem, 0, 0); 673 678 task->curr_event = 0; ··· 690 697 task = sched->tasks[i]; 691 698 err = pthread_join(task->thread, NULL); 692 699 BUG_ON(err); 693 - sem_destroy(&task->sleep_sem); 694 700 sem_destroy(&task->ready_for_work); 695 701 sem_destroy(&task->work_done_sem); 696 702 } ··· 743 751 744 752 for (i = 0; i < sched->nr_tasks; i++) { 745 753 task = sched->tasks[i]; 746 - sem_init(&task->sleep_sem, 0, 0); 747 754 task->curr_event = 0; 748 755 } 749 756 } ··· 843 852 *next_comm = evsel__strval(evsel, sample, "next_comm"); 844 853 const u32 prev_pid = evsel__intval(evsel, sample, "prev_pid"), 845 854 next_pid = evsel__intval(evsel, sample, "next_pid"); 846 - const char prev_state = evsel__taskstate(evsel, sample, "prev_state"); 847 855 struct task_desc *prev, __maybe_unused *next; 848 856 u64 timestamp0, timestamp = sample->time; 849 857 int cpu = sample->cpu; ··· 874 884 sched->cpu_last_switched[cpu] = timestamp; 875 885 876 886 add_sched_event_run(sched, prev, timestamp, delta); 877 - add_sched_event_sleep(sched, prev, timestamp, prev_state); 887 + add_sched_event_sleep(sched, prev, timestamp); 878 888 879 889 return 0; 880 890 }