• Home
  • Raw
  • Download

Lines Matching refs:iter

1312 static void trace_iterator_increment(struct trace_iterator *iter)  argument
1317 iter->idx++;
1318 if (iter->buffer_iter[iter->cpu])
1319 ring_buffer_read(iter->buffer_iter[iter->cpu], NULL);
1325 peek_next_entry(struct trace_iterator *iter, int cpu, u64 *ts) argument
1328 struct ring_buffer_iter *buf_iter = iter->buffer_iter[cpu];
1336 event = ring_buffer_peek(iter->tr->buffer, cpu, ts);
1344 __find_next_entry(struct trace_iterator *iter, int *ent_cpu, u64 *ent_ts) argument
1346 struct ring_buffer *buffer = iter->tr->buffer;
1357 ent = peek_next_entry(iter, cpu, &ts);
1380 find_next_entry(struct trace_iterator *iter, int *ent_cpu, u64 *ent_ts) argument
1382 return __find_next_entry(iter, ent_cpu, ent_ts);
1386 static void *find_next_entry_inc(struct trace_iterator *iter) argument
1388 iter->ent = __find_next_entry(iter, &iter->cpu, &iter->ts);
1390 if (iter->ent)
1391 trace_iterator_increment(iter);
1393 return iter->ent ? iter : NULL;
1396 static void trace_consume(struct trace_iterator *iter) argument
1400 ring_buffer_consume(iter->tr->buffer, iter->cpu, &iter->ts);
1406 struct trace_iterator *iter = m->private; local
1413 if (iter->idx > i)
1416 if (iter->idx < 0)
1417 ent = find_next_entry_inc(iter);
1419 ent = iter;
1421 while (ent && iter->idx < i)
1422 ent = find_next_entry_inc(iter);
1424 iter->pos = *pos;
1431 struct trace_iterator *iter = m->private; local
1438 if (!current_trace || current_trace != iter->trace) {
1445 if (*pos != iter->pos) {
1446 iter->ent = NULL;
1447 iter->cpu = 0;
1448 iter->idx = -1;
1453 ring_buffer_iter_reset(iter->buffer_iter[cpu]);
1458 for (p = iter; p && l < *pos; p = s_next(m, p, &l))
1644 print_trace_header(struct seq_file *m, struct trace_iterator *iter) argument
1647 struct trace_array *tr = iter->tr;
1657 entries = ring_buffer_entries(iter->tr->buffer);
1659 ring_buffer_overruns(iter->tr->buffer);
1696 seq_print_ip_sym(&iter->seq, data->critical_start, sym_flags);
1697 trace_print_seq(m, &iter->seq);
1699 seq_print_ip_sym(&iter->seq, data->critical_end, sym_flags);
1700 trace_print_seq(m, &iter->seq);
1771 void trace_seq_print_cont(struct trace_seq *s, struct trace_iterator *iter) argument
1777 ent = peek_next_entry(iter, iter->cpu, NULL);
1790 if (iter->buffer_iter[iter->cpu])
1791 ring_buffer_read(iter->buffer_iter[iter->cpu], NULL);
1793 ring_buffer_consume(iter->tr->buffer, iter->cpu, NULL);
1797 ent = peek_next_entry(iter, iter->cpu, NULL);
1804 static void test_cpu_buff_start(struct trace_iterator *iter) argument
1806 struct trace_seq *s = &iter->seq;
1811 if (!(iter->iter_flags & TRACE_FILE_ANNOTATE))
1814 if (cpumask_test_cpu(iter->cpu, iter->started))
1817 cpumask_set_cpu(iter->cpu, iter->started);
1818 trace_seq_printf(s, "##### CPU %u buffer started ####\n", iter->cpu);
1822 print_lat_fmt(struct trace_iterator *iter, unsigned int trace_idx, int cpu) argument
1824 struct trace_seq *s = &iter->seq;
1828 struct trace_entry *entry = iter->ent;
1839 test_cpu_buff_start(iter);
1841 next_entry = find_next_entry(iter, NULL, &next_ts);
1843 next_ts = iter->ts;
1844 rel_usecs = ns2usecs(next_ts - iter->ts);
1845 abs_usecs = ns2usecs(iter->ts - iter->tr->time_start);
1854 ns2usecs(iter->ts),
1925 trace_seq_print_cont(s, iter);
1955 static enum print_line_t print_trace_fmt(struct trace_iterator *iter) argument
1957 struct trace_seq *s = &iter->seq;
1968 entry = iter->ent;
1973 test_cpu_buff_start(iter);
1975 comm = trace_find_cmdline(iter->ent->pid);
1977 t = ns2usecs(iter->ts);
1984 ret = trace_seq_printf(s, "[%03d] ", iter->cpu);
2079 trace_seq_print_cont(s, iter);
2083 return print_graph_function(iter);
2086 return print_graph_function(iter);
2117 static enum print_line_t print_raw_fmt(struct trace_iterator *iter) argument
2119 struct trace_seq *s = &iter->seq;
2124 entry = iter->ent;
2130 entry->pid, iter->cpu, iter->ts);
2190 trace_seq_print_cont(s, iter);
2210 static enum print_line_t print_hex_fmt(struct trace_iterator *iter) argument
2212 struct trace_seq *s = &iter->seq;
2217 entry = iter->ent;
2223 SEQ_PUT_HEX_FIELD_RET(s, iter->cpu);
2224 SEQ_PUT_HEX_FIELD_RET(s, iter->ts);
2272 static enum print_line_t print_printk_msg_only(struct trace_iterator *iter) argument
2274 struct trace_seq *s = &iter->seq;
2275 struct trace_entry *entry = iter->ent;
2286 trace_seq_print_cont(s, iter);
2291 static enum print_line_t print_bin_fmt(struct trace_iterator *iter) argument
2293 struct trace_seq *s = &iter->seq;
2296 entry = iter->ent;
2303 SEQ_PUT_FIELD_RET(s, iter->ts);
2344 static int trace_empty(struct trace_iterator *iter) argument
2349 if (iter->buffer_iter[cpu]) {
2350 if (!ring_buffer_iter_empty(iter->buffer_iter[cpu]))
2353 if (!ring_buffer_empty_cpu(iter->tr->buffer, cpu))
2361 static enum print_line_t print_trace_line(struct trace_iterator *iter) argument
2365 if (iter->trace && iter->trace->print_line) {
2366 ret = iter->trace->print_line(iter);
2371 if (iter->ent->type == TRACE_PRINT &&
2374 return print_printk_msg_only(iter);
2377 return print_bin_fmt(iter);
2380 return print_hex_fmt(iter);
2383 return print_raw_fmt(iter);
2385 if (iter->iter_flags & TRACE_FILE_LAT_FMT)
2386 return print_lat_fmt(iter, iter->idx, iter->cpu);
2388 return print_trace_fmt(iter);
2393 struct trace_iterator *iter = v; local
2395 if (iter->ent == NULL) {
2396 if (iter->tr) {
2397 seq_printf(m, "# tracer: %s\n", iter->trace->name);
2400 if (iter->trace && iter->trace->print_header)
2401 iter->trace->print_header(m);
2402 else if (iter->iter_flags & TRACE_FILE_LAT_FMT) {
2404 if (trace_empty(iter))
2406 print_trace_header(m, iter);
2414 print_trace_line(iter);
2415 trace_print_seq(m, &iter->seq);
2431 struct trace_iterator *iter; local
2440 iter = kzalloc(sizeof(*iter), GFP_KERNEL);
2441 if (!iter) {
2448 iter->tr = &max_tr;
2450 iter->tr = inode->i_private;
2451 iter->trace = current_trace;
2452 iter->pos = -1;
2455 if (iter->trace && iter->trace->open)
2456 iter->trace->open(iter);
2459 if (ring_buffer_overruns(iter->tr->buffer))
2460 iter->iter_flags |= TRACE_FILE_ANNOTATE;
2465 iter->buffer_iter[cpu] =
2466 ring_buffer_read_start(iter->tr->buffer, cpu);
2468 if (!iter->buffer_iter[cpu])
2478 m->private = iter;
2486 return iter;
2490 if (iter->buffer_iter[cpu])
2491 ring_buffer_read_finish(iter->buffer_iter[cpu]);
2494 kfree(iter);
2511 struct trace_iterator *iter = m->private; local
2516 if (iter->buffer_iter[cpu])
2517 ring_buffer_read_finish(iter->buffer_iter[cpu]);
2520 if (iter->trace && iter->trace->close)
2521 iter->trace->close(iter);
2528 kfree(iter);
2543 struct trace_iterator *iter; local
2546 iter = __tracing_open(inode, file, &ret);
2549 iter->iter_flags |= TRACE_FILE_LAT_FMT;
3101 struct trace_iterator *iter; local
3113 iter = kzalloc(sizeof(*iter), GFP_KERNEL);
3114 if (!iter)
3117 if (!alloc_cpumask_var(&iter->started, GFP_KERNEL)) {
3118 kfree(iter);
3125 cpumask_setall(iter->started);
3127 iter->tr = &global_trace;
3128 iter->trace = current_trace;
3129 filp->private_data = iter;
3131 if (iter->trace->pipe_open)
3132 iter->trace->pipe_open(iter);
3140 struct trace_iterator *iter = file->private_data; local
3142 free_cpumask_var(iter->started);
3143 kfree(iter);
3152 struct trace_iterator *iter = filp->private_data; local
3160 if (!trace_empty(iter))
3163 if (!trace_empty(iter))
3177 struct trace_iterator *iter = filp->private_data; local
3181 sret = trace_seq_to_user(&iter->seq, ubuf, cnt);
3185 trace_seq_reset(&iter->seq);
3188 if (iter->trace->read) {
3189 sret = iter->trace->read(iter, filp, ubuf, cnt, ppos);
3196 while (trace_empty(iter)) {
3213 iter->tr->waiter = current;
3222 iter->tr->waiter = NULL;
3229 if (iter->trace != current_trace)
3241 if (!tracer_enabled && iter->pos)
3248 if (trace_empty(iter))
3255 memset(&iter->seq, 0,
3258 iter->pos = -1;
3260 while (find_next_entry_inc(iter) != NULL) {
3262 int len = iter->seq.len;
3264 ret = print_trace_line(iter);
3267 iter->seq.len = len;
3271 trace_consume(iter);
3273 if (iter->seq.len >= cnt)
3278 sret = trace_seq_to_user(&iter->seq, ubuf, cnt);
3279 if (iter->seq.readpos >= iter->seq.len)
3280 trace_seq_reset(&iter->seq);
3760 static struct trace_iterator iter; local
3785 iter.tr = &global_trace;
3786 iter.trace = current_trace;
3795 while (!trace_empty(&iter)) {
3803 memset(&iter.seq, 0,
3806 iter.iter_flags |= TRACE_FILE_LAT_FMT;
3807 iter.pos = -1;
3809 if (find_next_entry_inc(&iter) != NULL) {
3810 print_trace_line(&iter);
3811 trace_consume(&iter);
3814 trace_printk_seq(&iter.seq);