Lines Matching refs:switch_tracking

63 struct switch_tracking {
74 static int check_comm(struct switch_tracking *switch_tracking,
81 if (switch_tracking->comm_seen[nr]) {
85 switch_tracking->comm_seen[nr] = 1;
92 static int check_cpu(struct switch_tracking *switch_tracking, int cpu)
99 if (!switch_tracking->tids) {
100 switch_tracking->tids = calloc(nr, sizeof(pid_t));
101 if (!switch_tracking->tids)
104 switch_tracking->tids[i] = -1;
105 switch_tracking->nr_tids = nr;
109 if (cpu >= switch_tracking->nr_tids) {
112 addr = realloc(switch_tracking->tids, nr * sizeof(pid_t));
115 switch_tracking->tids = addr;
116 for (i = switch_tracking->nr_tids; i < nr; i++)
117 switch_tracking->tids[i] = -1;
118 switch_tracking->nr_tids = nr;
127 struct switch_tracking *switch_tracking)
140 if (evsel == switch_tracking->switch_evsel) {
146 err = check_cpu(switch_tracking, cpu);
153 if (switch_tracking->tids[cpu] != -1 &&
154 switch_tracking->tids[cpu] != prev_tid) {
158 switch_tracking->tids[cpu] = next_tid;
161 if (evsel == switch_tracking->cycles_evsel) {
163 if (!switch_tracking->comm_seen[0])
164 switch_tracking->cycles_before_comm_1 = 1;
165 if (switch_tracking->comm_seen[1] &&
166 !switch_tracking->comm_seen[2])
167 switch_tracking->cycles_between_comm_2_and_comm_3 = 1;
168 if (switch_tracking->comm_seen[3])
169 switch_tracking->cycles_after_comm_4 = 1;
176 struct switch_tracking *switch_tracking)
179 return process_sample_event(evlist, event, switch_tracking);
184 err = check_comm(switch_tracking, event, "Test COMM 1", 0);
188 err = check_comm(switch_tracking, event, "Test COMM 2", 1);
192 err = check_comm(switch_tracking, event, "Test COMM 3", 2);
196 err = check_comm(switch_tracking, event, "Test COMM 4", 3);
265 struct switch_tracking *switch_tracking)
304 switch_tracking);
330 struct switch_tracking switch_tracking = { .tids = NULL, };
537 switch_tracking.switch_evsel = switch_evsel;
538 switch_tracking.cycles_evsel = cycles_evsel;
540 err = process_events(evlist, &switch_tracking);
542 zfree(&switch_tracking.tids);
548 if (!switch_tracking.comm_seen[0] || !switch_tracking.comm_seen[1] ||
549 !switch_tracking.comm_seen[2] || !switch_tracking.comm_seen[3]) {
555 if (!switch_tracking.cycles_before_comm_1) {
561 if (switch_tracking.cycles_between_comm_2_and_comm_3) {
567 if (!switch_tracking.cycles_after_comm_4) {
586 DEFINE_SUITE("Track with sched_switch", switch_tracking);