Lines Matching refs:switch_tracking

60 struct switch_tracking {
71 static int check_comm(struct switch_tracking *switch_tracking,
78 if (switch_tracking->comm_seen[nr]) {
82 switch_tracking->comm_seen[nr] = 1;
89 static int check_cpu(struct switch_tracking *switch_tracking, int cpu)
96 if (!switch_tracking->tids) {
97 switch_tracking->tids = calloc(nr, sizeof(pid_t));
98 if (!switch_tracking->tids)
101 switch_tracking->tids[i] = -1;
102 switch_tracking->nr_tids = nr;
106 if (cpu >= switch_tracking->nr_tids) {
109 addr = realloc(switch_tracking->tids, nr * sizeof(pid_t));
112 switch_tracking->tids = addr;
113 for (i = switch_tracking->nr_tids; i < nr; i++)
114 switch_tracking->tids[i] = -1;
115 switch_tracking->nr_tids = nr;
124 struct switch_tracking *switch_tracking)
137 if (evsel == switch_tracking->switch_evsel) {
143 err = check_cpu(switch_tracking, cpu);
150 if (switch_tracking->tids[cpu] != -1 &&
151 switch_tracking->tids[cpu] != prev_tid) {
155 switch_tracking->tids[cpu] = next_tid;
158 if (evsel == switch_tracking->cycles_evsel) {
160 if (!switch_tracking->comm_seen[0])
161 switch_tracking->cycles_before_comm_1 = 1;
162 if (switch_tracking->comm_seen[1] &&
163 !switch_tracking->comm_seen[2])
164 switch_tracking->cycles_between_comm_2_and_comm_3 = 1;
165 if (switch_tracking->comm_seen[3])
166 switch_tracking->cycles_after_comm_4 = 1;
173 struct switch_tracking *switch_tracking)
176 return process_sample_event(evlist, event, switch_tracking);
181 err = check_comm(switch_tracking, event, "Test COMM 1", 0);
185 err = check_comm(switch_tracking, event, "Test COMM 2", 1);
189 err = check_comm(switch_tracking, event, "Test COMM 3", 2);
193 err = check_comm(switch_tracking, event, "Test COMM 4", 3);
262 struct switch_tracking *switch_tracking)
301 switch_tracking);
326 struct switch_tracking switch_tracking = { .tids = NULL, };
539 switch_tracking.switch_evsel = switch_evsel;
540 switch_tracking.cycles_evsel = cycles_evsel;
542 err = process_events(evlist, &switch_tracking);
544 zfree(&switch_tracking.tids);
550 if (!switch_tracking.comm_seen[0] || !switch_tracking.comm_seen[1] ||
551 !switch_tracking.comm_seen[2] || !switch_tracking.comm_seen[3]) {
557 if (!switch_tracking.cycles_before_comm_1) {
563 if (switch_tracking.cycles_between_comm_2_and_comm_3) {
569 if (!switch_tracking.cycles_after_comm_4) {