Lines Matching refs:iter

1130 static int wait_on_pipe(struct trace_iterator *iter, bool full)  in wait_on_pipe()  argument
1133 if (trace_buffer_iter(iter, iter->cpu_file)) in wait_on_pipe()
1136 return ring_buffer_wait(iter->trace_buffer->buffer, iter->cpu_file, in wait_on_pipe()
2278 static void trace_iterator_increment(struct trace_iterator *iter) in trace_iterator_increment() argument
2280 struct ring_buffer_iter *buf_iter = trace_buffer_iter(iter, iter->cpu); in trace_iterator_increment()
2282 iter->idx++; in trace_iterator_increment()
2288 peek_next_entry(struct trace_iterator *iter, int cpu, u64 *ts, in peek_next_entry() argument
2292 struct ring_buffer_iter *buf_iter = trace_buffer_iter(iter, cpu); in peek_next_entry()
2297 event = ring_buffer_peek(iter->trace_buffer->buffer, cpu, ts, in peek_next_entry()
2301 iter->ent_size = ring_buffer_event_length(event); in peek_next_entry()
2304 iter->ent_size = 0; in peek_next_entry()
2309 __find_next_entry(struct trace_iterator *iter, int *ent_cpu, in __find_next_entry() argument
2312 struct ring_buffer *buffer = iter->trace_buffer->buffer; in __find_next_entry()
2315 int cpu_file = iter->cpu_file; in __find_next_entry()
2328 ent = peek_next_entry(iter, cpu_file, ent_ts, missing_events); in __find_next_entry()
2340 ent = peek_next_entry(iter, cpu, &ts, &lost_events); in __find_next_entry()
2350 next_size = iter->ent_size; in __find_next_entry()
2354 iter->ent_size = next_size; in __find_next_entry()
2369 struct trace_entry *trace_find_next_entry(struct trace_iterator *iter, in trace_find_next_entry() argument
2372 return __find_next_entry(iter, ent_cpu, NULL, ent_ts); in trace_find_next_entry()
2376 void *trace_find_next_entry_inc(struct trace_iterator *iter) in trace_find_next_entry_inc() argument
2378 iter->ent = __find_next_entry(iter, &iter->cpu, in trace_find_next_entry_inc()
2379 &iter->lost_events, &iter->ts); in trace_find_next_entry_inc()
2381 if (iter->ent) in trace_find_next_entry_inc()
2382 trace_iterator_increment(iter); in trace_find_next_entry_inc()
2384 return iter->ent ? iter : NULL; in trace_find_next_entry_inc()
2387 static void trace_consume(struct trace_iterator *iter) in trace_consume() argument
2389 ring_buffer_consume(iter->trace_buffer->buffer, iter->cpu, &iter->ts, in trace_consume()
2390 &iter->lost_events); in trace_consume()
2395 struct trace_iterator *iter = m->private; in s_next() local
2399 WARN_ON_ONCE(iter->leftover); in s_next()
2404 if (iter->idx > i) in s_next()
2407 if (iter->idx < 0) in s_next()
2408 ent = trace_find_next_entry_inc(iter); in s_next()
2410 ent = iter; in s_next()
2412 while (ent && iter->idx < i) in s_next()
2413 ent = trace_find_next_entry_inc(iter); in s_next()
2415 iter->pos = *pos; in s_next()
2420 void tracing_iter_reset(struct trace_iterator *iter, int cpu) in tracing_iter_reset() argument
2427 per_cpu_ptr(iter->trace_buffer->data, cpu)->skipped_entries = 0; in tracing_iter_reset()
2429 buf_iter = trace_buffer_iter(iter, cpu); in tracing_iter_reset()
2441 if (ts >= iter->trace_buffer->time_start) in tracing_iter_reset()
2447 per_cpu_ptr(iter->trace_buffer->data, cpu)->skipped_entries = entries; in tracing_iter_reset()
2456 struct trace_iterator *iter = m->private; in s_start() local
2457 struct trace_array *tr = iter->tr; in s_start()
2458 int cpu_file = iter->cpu_file; in s_start()
2470 if (unlikely(tr->current_trace && iter->trace->name != tr->current_trace->name)) in s_start()
2471 *iter->trace = *tr->current_trace; in s_start()
2475 if (iter->snapshot && iter->trace->use_max_tr) in s_start()
2479 if (!iter->snapshot) in s_start()
2482 if (*pos != iter->pos) { in s_start()
2483 iter->ent = NULL; in s_start()
2484 iter->cpu = 0; in s_start()
2485 iter->idx = -1; in s_start()
2489 tracing_iter_reset(iter, cpu); in s_start()
2491 tracing_iter_reset(iter, cpu_file); in s_start()
2493 iter->leftover = 0; in s_start()
2494 for (p = iter; p && l < *pos; p = s_next(m, p, &l)) in s_start()
2502 if (iter->leftover) in s_start()
2503 p = iter; in s_start()
2517 struct trace_iterator *iter = m->private; in s_stop() local
2520 if (iter->snapshot && iter->trace->use_max_tr) in s_stop()
2524 if (!iter->snapshot) in s_stop()
2527 trace_access_unlock(iter->cpu_file); in s_stop()
2602 print_trace_header(struct seq_file *m, struct trace_iterator *iter) in print_trace_header() argument
2605 struct trace_buffer *buf = iter->trace_buffer; in print_trace_header()
2607 struct tracer *type = iter->trace; in print_trace_header()
2652 seq_print_ip_sym(&iter->seq, data->critical_start, sym_flags); in print_trace_header()
2653 trace_print_seq(m, &iter->seq); in print_trace_header()
2655 seq_print_ip_sym(&iter->seq, data->critical_end, sym_flags); in print_trace_header()
2656 trace_print_seq(m, &iter->seq); in print_trace_header()
2663 static void test_cpu_buff_start(struct trace_iterator *iter) in test_cpu_buff_start() argument
2665 struct trace_seq *s = &iter->seq; in test_cpu_buff_start()
2670 if (!(iter->iter_flags & TRACE_FILE_ANNOTATE)) in test_cpu_buff_start()
2673 if (cpumask_test_cpu(iter->cpu, iter->started)) in test_cpu_buff_start()
2676 if (per_cpu_ptr(iter->trace_buffer->data, iter->cpu)->skipped_entries) in test_cpu_buff_start()
2679 cpumask_set_cpu(iter->cpu, iter->started); in test_cpu_buff_start()
2682 if (iter->idx > 1) in test_cpu_buff_start()
2684 iter->cpu); in test_cpu_buff_start()
2687 static enum print_line_t print_trace_fmt(struct trace_iterator *iter) in print_trace_fmt() argument
2689 struct trace_seq *s = &iter->seq; in print_trace_fmt()
2694 entry = iter->ent; in print_trace_fmt()
2696 test_cpu_buff_start(iter); in print_trace_fmt()
2701 if (iter->iter_flags & TRACE_FILE_LAT_FMT) in print_trace_fmt()
2702 trace_print_lat_context(iter); in print_trace_fmt()
2704 trace_print_context(iter); in print_trace_fmt()
2711 return event->funcs->trace(iter, sym_flags, event); in print_trace_fmt()
2718 static enum print_line_t print_raw_fmt(struct trace_iterator *iter) in print_raw_fmt() argument
2720 struct trace_seq *s = &iter->seq; in print_raw_fmt()
2724 entry = iter->ent; in print_raw_fmt()
2728 entry->pid, iter->cpu, iter->ts); in print_raw_fmt()
2735 return event->funcs->raw(iter, 0, event); in print_raw_fmt()
2742 static enum print_line_t print_hex_fmt(struct trace_iterator *iter) in print_hex_fmt() argument
2744 struct trace_seq *s = &iter->seq; in print_hex_fmt()
2749 entry = iter->ent; in print_hex_fmt()
2753 SEQ_PUT_HEX_FIELD(s, iter->cpu); in print_hex_fmt()
2754 SEQ_PUT_HEX_FIELD(s, iter->ts); in print_hex_fmt()
2761 enum print_line_t ret = event->funcs->hex(iter, 0, event); in print_hex_fmt()
2771 static enum print_line_t print_bin_fmt(struct trace_iterator *iter) in print_bin_fmt() argument
2773 struct trace_seq *s = &iter->seq; in print_bin_fmt()
2777 entry = iter->ent; in print_bin_fmt()
2781 SEQ_PUT_FIELD(s, iter->cpu); in print_bin_fmt()
2782 SEQ_PUT_FIELD(s, iter->ts); in print_bin_fmt()
2788 return event ? event->funcs->binary(iter, 0, event) : in print_bin_fmt()
2792 int trace_empty(struct trace_iterator *iter) in trace_empty() argument
2798 if (iter->cpu_file != RING_BUFFER_ALL_CPUS) { in trace_empty()
2799 cpu = iter->cpu_file; in trace_empty()
2800 buf_iter = trace_buffer_iter(iter, cpu); in trace_empty()
2805 if (!ring_buffer_empty_cpu(iter->trace_buffer->buffer, cpu)) in trace_empty()
2812 buf_iter = trace_buffer_iter(iter, cpu); in trace_empty()
2817 if (!ring_buffer_empty_cpu(iter->trace_buffer->buffer, cpu)) in trace_empty()
2826 enum print_line_t print_trace_line(struct trace_iterator *iter) in print_trace_line() argument
2830 if (iter->lost_events) { in print_trace_line()
2831 trace_seq_printf(&iter->seq, "CPU:%d [LOST %lu EVENTS]\n", in print_trace_line()
2832 iter->cpu, iter->lost_events); in print_trace_line()
2833 if (trace_seq_has_overflowed(&iter->seq)) in print_trace_line()
2837 if (iter->trace && iter->trace->print_line) { in print_trace_line()
2838 ret = iter->trace->print_line(iter); in print_trace_line()
2843 if (iter->ent->type == TRACE_BPUTS && in print_trace_line()
2846 return trace_print_bputs_msg_only(iter); in print_trace_line()
2848 if (iter->ent->type == TRACE_BPRINT && in print_trace_line()
2851 return trace_print_bprintk_msg_only(iter); in print_trace_line()
2853 if (iter->ent->type == TRACE_PRINT && in print_trace_line()
2856 return trace_print_printk_msg_only(iter); in print_trace_line()
2859 return print_bin_fmt(iter); in print_trace_line()
2862 return print_hex_fmt(iter); in print_trace_line()
2865 return print_raw_fmt(iter); in print_trace_line()
2867 return print_trace_fmt(iter); in print_trace_line()
2872 struct trace_iterator *iter = m->private; in trace_latency_header() local
2875 if (trace_empty(iter)) in trace_latency_header()
2878 if (iter->iter_flags & TRACE_FILE_LAT_FMT) in trace_latency_header()
2879 print_trace_header(m, iter); in trace_latency_header()
2887 struct trace_iterator *iter = m->private; in trace_default_header() local
2892 if (iter->iter_flags & TRACE_FILE_LAT_FMT) { in trace_default_header()
2894 if (trace_empty(iter)) in trace_default_header()
2896 print_trace_header(m, iter); in trace_default_header()
2902 print_func_help_header_irq(iter->trace_buffer, m); in trace_default_header()
2904 print_func_help_header(iter->trace_buffer, m); in trace_default_header()
2943 static void print_snapshot_help(struct seq_file *m, struct trace_iterator *iter) in print_snapshot_help() argument
2945 if (iter->tr->allocated_snapshot) in print_snapshot_help()
2951 if (iter->cpu_file == RING_BUFFER_ALL_CPUS) in print_snapshot_help()
2958 static inline void print_snapshot_help(struct seq_file *m, struct trace_iterator *iter) { } in print_snapshot_help() argument
2963 struct trace_iterator *iter = v; in s_show() local
2966 if (iter->ent == NULL) { in s_show()
2967 if (iter->tr) { in s_show()
2968 seq_printf(m, "# tracer: %s\n", iter->trace->name); in s_show()
2972 if (iter->snapshot && trace_empty(iter)) in s_show()
2973 print_snapshot_help(m, iter); in s_show()
2974 else if (iter->trace && iter->trace->print_header) in s_show()
2975 iter->trace->print_header(m); in s_show()
2979 } else if (iter->leftover) { in s_show()
2984 ret = trace_print_seq(m, &iter->seq); in s_show()
2987 iter->leftover = ret; in s_show()
2990 print_trace_line(iter); in s_show()
2991 ret = trace_print_seq(m, &iter->seq); in s_show()
2999 iter->leftover = ret; in s_show()
3027 struct trace_iterator *iter; in __tracing_open() local
3033 iter = __seq_open_private(file, &tracer_seq_ops, sizeof(*iter)); in __tracing_open()
3034 if (!iter) in __tracing_open()
3037 iter->buffer_iter = kzalloc(sizeof(*iter->buffer_iter) * num_possible_cpus(), in __tracing_open()
3039 if (!iter->buffer_iter) in __tracing_open()
3047 iter->trace = kzalloc(sizeof(*iter->trace), GFP_KERNEL); in __tracing_open()
3048 if (!iter->trace) in __tracing_open()
3051 *iter->trace = *tr->current_trace; in __tracing_open()
3053 if (!zalloc_cpumask_var(&iter->started, GFP_KERNEL)) in __tracing_open()
3056 iter->tr = tr; in __tracing_open()
3061 iter->trace_buffer = &tr->max_buffer; in __tracing_open()
3064 iter->trace_buffer = &tr->trace_buffer; in __tracing_open()
3065 iter->snapshot = snapshot; in __tracing_open()
3066 iter->pos = -1; in __tracing_open()
3067 iter->cpu_file = tracing_get_cpu(inode); in __tracing_open()
3068 mutex_init(&iter->mutex); in __tracing_open()
3071 if (iter->trace && iter->trace->open) in __tracing_open()
3072 iter->trace->open(iter); in __tracing_open()
3075 if (ring_buffer_overruns(iter->trace_buffer->buffer)) in __tracing_open()
3076 iter->iter_flags |= TRACE_FILE_ANNOTATE; in __tracing_open()
3080 iter->iter_flags |= TRACE_FILE_TIME_IN_NS; in __tracing_open()
3083 if (!iter->snapshot) in __tracing_open()
3086 if (iter->cpu_file == RING_BUFFER_ALL_CPUS) { in __tracing_open()
3088 iter->buffer_iter[cpu] = in __tracing_open()
3089 ring_buffer_read_prepare(iter->trace_buffer->buffer, cpu); in __tracing_open()
3093 ring_buffer_read_start(iter->buffer_iter[cpu]); in __tracing_open()
3094 tracing_iter_reset(iter, cpu); in __tracing_open()
3097 cpu = iter->cpu_file; in __tracing_open()
3098 iter->buffer_iter[cpu] = in __tracing_open()
3099 ring_buffer_read_prepare(iter->trace_buffer->buffer, cpu); in __tracing_open()
3101 ring_buffer_read_start(iter->buffer_iter[cpu]); in __tracing_open()
3102 tracing_iter_reset(iter, cpu); in __tracing_open()
3107 return iter; in __tracing_open()
3111 kfree(iter->trace); in __tracing_open()
3112 kfree(iter->buffer_iter); in __tracing_open()
3155 struct trace_iterator *iter; in tracing_release() local
3164 iter = m->private; in tracing_release()
3168 if (iter->buffer_iter[cpu]) in tracing_release()
3169 ring_buffer_read_finish(iter->buffer_iter[cpu]); in tracing_release()
3172 if (iter->trace && iter->trace->close) in tracing_release()
3173 iter->trace->close(iter); in tracing_release()
3175 if (!iter->snapshot) in tracing_release()
3183 mutex_destroy(&iter->mutex); in tracing_release()
3184 free_cpumask_var(iter->started); in tracing_release()
3185 kfree(iter->trace); in tracing_release()
3186 kfree(iter->buffer_iter); in tracing_release()
3212 struct trace_iterator *iter; in tracing_open() local
3229 iter = __tracing_open(inode, file, false); in tracing_open()
3230 if (IS_ERR(iter)) in tracing_open()
3231 ret = PTR_ERR(iter); in tracing_open()
3233 iter->iter_flags |= TRACE_FILE_LAT_FMT; in tracing_open()
4541 struct trace_iterator *iter; in tracing_open_pipe() local
4553 iter = kzalloc(sizeof(*iter), GFP_KERNEL); in tracing_open_pipe()
4554 if (!iter) { in tracing_open_pipe()
4560 trace_seq_init(&iter->seq); in tracing_open_pipe()
4561 iter->trace = tr->current_trace; in tracing_open_pipe()
4563 if (!alloc_cpumask_var(&iter->started, GFP_KERNEL)) { in tracing_open_pipe()
4569 cpumask_setall(iter->started); in tracing_open_pipe()
4572 iter->iter_flags |= TRACE_FILE_LAT_FMT; in tracing_open_pipe()
4576 iter->iter_flags |= TRACE_FILE_TIME_IN_NS; in tracing_open_pipe()
4578 iter->tr = tr; in tracing_open_pipe()
4579 iter->trace_buffer = &tr->trace_buffer; in tracing_open_pipe()
4580 iter->cpu_file = tracing_get_cpu(inode); in tracing_open_pipe()
4581 mutex_init(&iter->mutex); in tracing_open_pipe()
4582 filp->private_data = iter; in tracing_open_pipe()
4584 if (iter->trace->pipe_open) in tracing_open_pipe()
4585 iter->trace->pipe_open(iter); in tracing_open_pipe()
4595 kfree(iter->trace); in tracing_open_pipe()
4596 kfree(iter); in tracing_open_pipe()
4604 struct trace_iterator *iter = file->private_data; in tracing_release_pipe() local
4611 if (iter->trace->pipe_close) in tracing_release_pipe()
4612 iter->trace->pipe_close(iter); in tracing_release_pipe()
4616 free_cpumask_var(iter->started); in tracing_release_pipe()
4617 mutex_destroy(&iter->mutex); in tracing_release_pipe()
4618 kfree(iter); in tracing_release_pipe()
4626 trace_poll(struct trace_iterator *iter, struct file *filp, poll_table *poll_table) in trace_poll() argument
4629 if (trace_buffer_iter(iter, iter->cpu_file)) in trace_poll()
4638 return ring_buffer_poll_wait(iter->trace_buffer->buffer, iter->cpu_file, in trace_poll()
4645 struct trace_iterator *iter = filp->private_data; in tracing_poll_pipe() local
4647 return trace_poll(iter, filp, poll_table); in tracing_poll_pipe()
4653 struct trace_iterator *iter = filp->private_data; in tracing_wait_pipe() local
4656 while (trace_empty(iter)) { in tracing_wait_pipe()
4671 if (!tracing_is_on() && iter->pos) in tracing_wait_pipe()
4674 mutex_unlock(&iter->mutex); in tracing_wait_pipe()
4676 ret = wait_on_pipe(iter, false); in tracing_wait_pipe()
4678 mutex_lock(&iter->mutex); in tracing_wait_pipe()
4694 struct trace_iterator *iter = filp->private_data; in tracing_read_pipe() local
4698 sret = trace_seq_to_user(&iter->seq, ubuf, cnt); in tracing_read_pipe()
4702 trace_seq_init(&iter->seq); in tracing_read_pipe()
4709 mutex_lock(&iter->mutex); in tracing_read_pipe()
4710 if (iter->trace->read) { in tracing_read_pipe()
4711 sret = iter->trace->read(iter, filp, ubuf, cnt, ppos); in tracing_read_pipe()
4722 if (trace_empty(iter)) { in tracing_read_pipe()
4731 memset(&iter->seq, 0, in tracing_read_pipe()
4734 cpumask_clear(iter->started); in tracing_read_pipe()
4735 iter->pos = -1; in tracing_read_pipe()
4738 trace_access_lock(iter->cpu_file); in tracing_read_pipe()
4739 while (trace_find_next_entry_inc(iter) != NULL) { in tracing_read_pipe()
4741 int save_len = iter->seq.seq.len; in tracing_read_pipe()
4743 ret = print_trace_line(iter); in tracing_read_pipe()
4746 iter->seq.seq.len = save_len; in tracing_read_pipe()
4750 trace_consume(iter); in tracing_read_pipe()
4752 if (trace_seq_used(&iter->seq) >= cnt) in tracing_read_pipe()
4760 WARN_ONCE(iter->seq.full, "full flag set for trace type %d", in tracing_read_pipe()
4761 iter->ent->type); in tracing_read_pipe()
4763 trace_access_unlock(iter->cpu_file); in tracing_read_pipe()
4767 sret = trace_seq_to_user(&iter->seq, ubuf, cnt); in tracing_read_pipe()
4768 if (iter->seq.seq.readpos >= trace_seq_used(&iter->seq)) in tracing_read_pipe()
4769 trace_seq_init(&iter->seq); in tracing_read_pipe()
4779 mutex_unlock(&iter->mutex); in tracing_read_pipe()
4799 tracing_fill_pipe_page(size_t rem, struct trace_iterator *iter) in tracing_fill_pipe_page() argument
4807 save_len = iter->seq.seq.len; in tracing_fill_pipe_page()
4808 ret = print_trace_line(iter); in tracing_fill_pipe_page()
4810 if (trace_seq_has_overflowed(&iter->seq)) { in tracing_fill_pipe_page()
4811 iter->seq.seq.len = save_len; in tracing_fill_pipe_page()
4821 iter->seq.seq.len = save_len; in tracing_fill_pipe_page()
4825 count = trace_seq_used(&iter->seq) - save_len; in tracing_fill_pipe_page()
4828 iter->seq.seq.len = save_len; in tracing_fill_pipe_page()
4833 trace_consume(iter); in tracing_fill_pipe_page()
4835 if (!trace_find_next_entry_inc(iter)) { in tracing_fill_pipe_page()
4837 iter->ent = NULL; in tracing_fill_pipe_page()
4853 struct trace_iterator *iter = filp->private_data; in tracing_splice_read_pipe() local
4870 mutex_lock(&iter->mutex); in tracing_splice_read_pipe()
4872 if (iter->trace->splice_read) { in tracing_splice_read_pipe()
4873 ret = iter->trace->splice_read(iter, filp, in tracing_splice_read_pipe()
4883 if (!iter->ent && !trace_find_next_entry_inc(iter)) { in tracing_splice_read_pipe()
4889 trace_access_lock(iter->cpu_file); in tracing_splice_read_pipe()
4897 rem = tracing_fill_pipe_page(rem, iter); in tracing_splice_read_pipe()
4900 ret = trace_seq_to_buffer(&iter->seq, in tracing_splice_read_pipe()
4902 trace_seq_used(&iter->seq)); in tracing_splice_read_pipe()
4908 spd.partial[i].len = trace_seq_used(&iter->seq); in tracing_splice_read_pipe()
4910 trace_seq_init(&iter->seq); in tracing_splice_read_pipe()
4913 trace_access_unlock(iter->cpu_file); in tracing_splice_read_pipe()
4915 mutex_unlock(&iter->mutex); in tracing_splice_read_pipe()
4928 mutex_unlock(&iter->mutex); in tracing_splice_read_pipe()
5263 struct trace_iterator iter; member
5272 struct trace_iterator *iter; in tracing_snapshot_open() local
5280 iter = __tracing_open(inode, file, true); in tracing_snapshot_open()
5281 if (IS_ERR(iter)) in tracing_snapshot_open()
5282 ret = PTR_ERR(iter); in tracing_snapshot_open()
5289 iter = kzalloc(sizeof(*iter), GFP_KERNEL); in tracing_snapshot_open()
5290 if (!iter) { in tracing_snapshot_open()
5296 iter->tr = tr; in tracing_snapshot_open()
5297 iter->trace_buffer = &tr->max_buffer; in tracing_snapshot_open()
5298 iter->cpu_file = tracing_get_cpu(inode); in tracing_snapshot_open()
5299 m->private = iter; in tracing_snapshot_open()
5314 struct trace_iterator *iter = m->private; in tracing_snapshot_write() local
5315 struct trace_array *tr = iter->tr; in tracing_snapshot_write()
5336 if (iter->cpu_file != RING_BUFFER_ALL_CPUS) { in tracing_snapshot_write()
5346 if (iter->cpu_file != RING_BUFFER_ALL_CPUS) { in tracing_snapshot_write()
5358 if (iter->cpu_file == RING_BUFFER_ALL_CPUS) in tracing_snapshot_write()
5361 update_max_tr_single(tr, current, iter->cpu_file); in tracing_snapshot_write()
5366 if (iter->cpu_file == RING_BUFFER_ALL_CPUS) in tracing_snapshot_write()
5369 tracing_reset(&tr->max_buffer, iter->cpu_file); in tracing_snapshot_write()
5419 if (info->iter.trace->use_max_tr) { in snapshot_raw_open()
5424 info->iter.snapshot = true; in snapshot_raw_open()
5425 info->iter.trace_buffer = &info->iter.tr->max_buffer; in snapshot_raw_open()
5538 info->iter.tr = tr; in tracing_buffers_open()
5539 info->iter.cpu_file = tracing_get_cpu(inode); in tracing_buffers_open()
5540 info->iter.trace = tr->current_trace; in tracing_buffers_open()
5541 info->iter.trace_buffer = &tr->trace_buffer; in tracing_buffers_open()
5563 struct trace_iterator *iter = &info->iter; in tracing_buffers_poll() local
5565 return trace_poll(iter, filp, poll_table); in tracing_buffers_poll()
5573 struct trace_iterator *iter = &info->iter; in tracing_buffers_read() local
5581 if (iter->snapshot && iter->tr->current_trace->use_max_tr) in tracing_buffers_read()
5586 info->spare = ring_buffer_alloc_read_page(iter->trace_buffer->buffer, in tracing_buffers_read()
5587 iter->cpu_file); in tracing_buffers_read()
5596 trace_access_lock(iter->cpu_file); in tracing_buffers_read()
5597 ret = ring_buffer_read_page(iter->trace_buffer->buffer, in tracing_buffers_read()
5600 iter->cpu_file, 0); in tracing_buffers_read()
5601 trace_access_unlock(iter->cpu_file); in tracing_buffers_read()
5604 if (trace_empty(iter)) { in tracing_buffers_read()
5608 ret = wait_on_pipe(iter, false); in tracing_buffers_read()
5638 struct trace_iterator *iter = &info->iter; in tracing_buffers_release() local
5642 iter->tr->current_trace->ref--; in tracing_buffers_release()
5644 __trace_array_put(iter->tr); in tracing_buffers_release()
5647 ring_buffer_free_read_page(iter->trace_buffer->buffer, info->spare); in tracing_buffers_release()
5714 struct trace_iterator *iter = &info->iter; in tracing_buffers_splice_read() local
5730 if (iter->snapshot && iter->tr->current_trace->use_max_tr) in tracing_buffers_splice_read()
5747 trace_access_lock(iter->cpu_file); in tracing_buffers_splice_read()
5748 entries = ring_buffer_entries_cpu(iter->trace_buffer->buffer, iter->cpu_file); in tracing_buffers_splice_read()
5761 ref->buffer = iter->trace_buffer->buffer; in tracing_buffers_splice_read()
5762 ref->page = ring_buffer_alloc_read_page(ref->buffer, iter->cpu_file); in tracing_buffers_splice_read()
5770 len, iter->cpu_file, 1); in tracing_buffers_splice_read()
5794 entries = ring_buffer_entries_cpu(iter->trace_buffer->buffer, iter->cpu_file); in tracing_buffers_splice_read()
5797 trace_access_unlock(iter->cpu_file); in tracing_buffers_splice_read()
5808 ret = wait_on_pipe(iter, true); in tracing_buffers_splice_read()
6945 void trace_init_global_iter(struct trace_iterator *iter) in trace_init_global_iter() argument
6947 iter->tr = &global_trace; in trace_init_global_iter()
6948 iter->trace = iter->tr->current_trace; in trace_init_global_iter()
6949 iter->cpu_file = RING_BUFFER_ALL_CPUS; in trace_init_global_iter()
6950 iter->trace_buffer = &global_trace.trace_buffer; in trace_init_global_iter()
6952 if (iter->trace && iter->trace->open) in trace_init_global_iter()
6953 iter->trace->open(iter); in trace_init_global_iter()
6956 if (ring_buffer_overruns(iter->trace_buffer->buffer)) in trace_init_global_iter()
6957 iter->iter_flags |= TRACE_FILE_ANNOTATE; in trace_init_global_iter()
6960 if (trace_clocks[iter->tr->clock_id].in_ns) in trace_init_global_iter()
6961 iter->iter_flags |= TRACE_FILE_TIME_IN_NS; in trace_init_global_iter()
6967 static struct trace_iterator iter; in ftrace_dump() local
6992 trace_init_global_iter(&iter); in ftrace_dump()
6995 atomic_inc(&per_cpu_ptr(iter.tr->trace_buffer.data, cpu)->disabled); in ftrace_dump()
7005 iter.cpu_file = RING_BUFFER_ALL_CPUS; in ftrace_dump()
7008 iter.cpu_file = raw_smp_processor_id(); in ftrace_dump()
7014 iter.cpu_file = RING_BUFFER_ALL_CPUS; in ftrace_dump()
7032 while (!trace_empty(&iter)) { in ftrace_dump()
7040 memset(&iter.seq, 0, in ftrace_dump()
7043 iter.iter_flags |= TRACE_FILE_LAT_FMT; in ftrace_dump()
7044 iter.pos = -1; in ftrace_dump()
7046 if (trace_find_next_entry_inc(&iter) != NULL) { in ftrace_dump()
7049 ret = print_trace_line(&iter); in ftrace_dump()
7051 trace_consume(&iter); in ftrace_dump()
7055 trace_printk_seq(&iter.seq); in ftrace_dump()
7067 atomic_dec(&per_cpu_ptr(iter.trace_buffer->data, cpu)->disabled); in ftrace_dump()