All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tzvetomir Stoyanov <tstoyanov@vmware.com>
To: rostedt@goodmis.org
Cc: linux-trace-devel@vger.kernel.org
Subject: [PATCH v4 10/46] tools/lib/traceevent: Man page for tep_is_latency_format() and tep_set_latency_format()
Date: Fri,  8 Mar 2019 15:36:18 +0200	[thread overview]
Message-ID: <20190308133654.21264-11-tstoyanov@vmware.com> (raw)
In-Reply-To: <20190308133654.21264-1-tstoyanov@vmware.com>

Create man pages for tep_is_latency_format() and tep_set_latency_format()
as part of the libtraceevent APIs.

Signed-off-by: Tzvetomir Stoyanov <tstoyanov@vmware.com>
---
 .../libtraceevent-latency_format.txt          | 140 ++++++++++++++++++
 1 file changed, 140 insertions(+)
 create mode 100644 tools/lib/traceevent/Documentation/libtraceevent-latency_format.txt

diff --git a/tools/lib/traceevent/Documentation/libtraceevent-latency_format.txt b/tools/lib/traceevent/Documentation/libtraceevent-latency_format.txt
new file mode 100644
index 000000000000..ea82cbda7b7c
--- /dev/null
+++ b/tools/lib/traceevent/Documentation/libtraceevent-latency_format.txt
@@ -0,0 +1,140 @@
+libtraceevent(3)
+================
+
+NAME
+----
+tep_set_latency_format,tep_is_latency_format - Get / set "latency output" format.
+
+SYNOPSIS
+--------
+[verse]
+--
+*#include <event-parse.h>*
+
+void *tep_set_latency_format*(struct tep_handle pass:[*]_tep_, int _lat_);
+int *tep_is_latency_format*(struct tep_handle pass:[*]_tep_);
+
+--
+
+DESCRIPTION
+-----------
+"Latency output" format prints information about interrupts being disabled,
+soft irq being disabled, the "need_resched" flag being set and preempt count.
+This information is recorded with every event, but by default is not printed.
+
+The _tep_set_latency_format()_ function enables the "latency output" printing.
+The _tep_ argument is trace event parser context. The _lat_ argument can be zero,
+for "latency output" disabled, or non zero for "latency output" enabled.
+Information is displayed with 6 characters. When a field is zero, or N/A, a pass:['.']
+is printed. Example:
+[verse]
+--
+  <idle>-0       0d.h1. 106467.859747: function:             ktime_get <-- tick_check_idle
+--
+The 0d.h1. denotes this information. The first character is never a pass:['.']
+and represents what CPU the trace was recorded on (CPU 0). The pass:['d'] denotes
+that interrupts were disabled. The pass:['h'] means that this was called inside
+an interrupt handler. The pass:['1'] is the preemption disabled (preempt_count)
+was set to one.  The two pass:['.']s are "need_resched" flag and kernel lock
+counter. If the "need_resched" flag is set, then that character would be a pass:['N'].
+See 'LATENCY FORMAT' section.
+
+The _tep_is_latency_format()_ function returns if "latency output" is enabled.
+
+This "Latency output" setting affects output of _tep_print_event_task()_
+and _tep_print_event_time()_ APIs.
+
+LATENCY FORMAT
+--------------
+The latency format displays 5 or more fields:
+[verse]
+--
+ CPU #, interrupt state, scheduling state, current context, and preemption count.
+
+ Field 1 is the CPU number (starting with zero).
+
+ Field 2 is the interrupt enabled state:
+   d : Interrupts are disabled
+   . : Interrupts are enabled
+   X : The architecture does not support this information
+
+ Field 3 is the "need resched" state.
+   N : The task is set to call the scheduler when possible, as another
+       higher priority task may need to be scheduled in.
+   . : The task is not set to call the scheduler.
+
+ Field 4 is the context state.
+   . : Normal context
+   s : Soft interrupt context
+   h : Hard interrupt context
+   H : Hard interrupt context which triggered during soft interrupt context.
+   z : NMI context
+   Z : NMI context which triggered during hard interrupt context
+
+ Field 5 is the preemption count.
+   . : The preempt count is zero.
+
+   On preemptible kernels (where the task can be scheduled out in
+   arbitrary locations while in kernel context), The preempt count,
+   when non zero, will prevent the kernel from scheduling out the
+   current task. The preempt count number is displayed when it is not
+   zero.
+--
+Depending on the kernel, it may show other fields (lock depth,
+or migration disabled, which are unique to specialized kernels).
+
+RETURN VALUE
+------------
+
+The _tep_is_latency_format()_ function returns non zero if "latency output"
+is enabled, or zero if it is disabled.
+
+EXAMPLE
+-------
+[source,c]
+--
+#include <event-parse.h>
+...
+struct tep_handle *tep = tep_alloc();
+...
+	tep_set_latency_format(tep, 1);
+...
+	if (tep_is_latency_format(tep)) {
+		/* latency output format is enabled */
+	} else {
+		/* latency output format is disabled */
+	}
+--
+
+FILES
+-----
+[verse]
+--
+*event-parse.h*
+	Header file to include in order to have access to the library APIs.
+*-ltraceevent*
+	Linker switch to add when building a program that uses the library.
+--
+
+SEE ALSO
+--------
+_libtraceevent(3)_, _trace-cmd(1)_, tep_print_event_task(3), tep_print_event_time(3)
+
+AUTHOR
+------
+[verse]
+--
+*Steven Rostedt* <rostedt@goodmis.org>, author of *libtraceevent*.
+*Tzvetomir Stoyanov* <tz.stoyanov@gmail.com>, author of this man page.
+--
+REPORTING BUGS
+--------------
+Report bugs to  <linux-trace-devel@vger.kernel.org>
+
+LICENSE
+-------
+libtraceevent is Free Software licensed under the GNU LGPL 2.1
+
+RESOURCES
+---------
+https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
-- 
2.20.1


  parent reply	other threads:[~2019-03-08 13:37 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-08 13:36 [PATCH v4 00/46] Libtraceevent MAN pages Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 01/46] tools/lib/traceevent: Implement libtraceevent man pages Tzvetomir Stoyanov
2019-03-18 21:04   ` [Suspected Spam] " Matt Helsley
2019-03-19 11:28     ` Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 02/46] tools/lib/traceevent: Fix libtraceevent/Documentation Makefile Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 03/46] tools/lib/traceevent: Add support for man pages with multiple names Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 04/46] tools/lib/traceevent: libtraceevent Makefile "help" target Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 05/46] tools/lib/traceevent: libtraceevent man pages for tep_handler related APIs Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 06/46] tools/lib/traceevent: Man page for tep_get_header_page_size() Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 07/46] tools/lib/traceevent: Man page for tep_get_cpus() and tep_set_cpus() Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 08/46] tools/lib/traceevent: Man page for tep_is_file_bigendian() and tep_set_file_bigendian() Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 09/46] tools/lib/traceevent: Man page for tep_is_host_bigendian() and tep_set_host_bigendian() Tzvetomir Stoyanov
2019-03-08 13:36 ` Tzvetomir Stoyanov [this message]
2019-03-13 16:28   ` [PATCH v4 10/46] tools/lib/traceevent: Man page for tep_is_latency_format() and tep_set_latency_format() Steven Rostedt
2019-03-08 13:36 ` [PATCH v4 11/46] tools/lib/traceevent: Man page for tep_get_page_size() and tep_set_page_size() Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 12/46] tools/lib/traceevent: Man page for tep_strerror() Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 13/46] tools/lib/traceevent: Man page for tep_register_trace_clock() Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 14/46] tools/lib/traceevent: Man pages for tep_register_event_handler() and tep_unregister_event_handler() Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 15/46] tools/lib/traceevent: Man pages for tep_register_function() and tep_register_print_string() Tzvetomir Stoyanov
2019-03-13 16:57   ` Steven Rostedt
2019-03-13 16:59   ` Steven Rostedt
2019-03-08 13:36 ` [PATCH v4 16/46] tools/lib/traceevent: Man pages for tep_register_print_function() and tep_unregister_print_function() Tzvetomir Stoyanov
2019-03-13 17:23   ` Steven Rostedt
2019-03-08 13:36 ` [PATCH v4 17/46] tools/lib/traceevent: Man page for tep_read_number() Tzvetomir Stoyanov
2019-03-13 17:26   ` Steven Rostedt
2019-03-08 13:36 ` [PATCH v4 18/46] tools/lib/traceevent: Man pages for tep_find_event(), tep_find_event_by_name() and tep_find_event_by_record() Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 19/46] tools/lib/traceevent: Man page for tep_list_events() Tzvetomir Stoyanov
2019-03-13 17:29   ` Steven Rostedt
2019-03-14 13:05     ` Tzvetomir Stoyanov
2019-03-14 13:39       ` Steven Rostedt
2019-03-08 13:36 ` [PATCH v4 20/46] tools/lib/traceevent: Man pages for tep_print_event(), tep_print_event_data(), tep_event_info(), tep_print_event_task() and tep_print_event_time() Tzvetomir Stoyanov
2019-03-13 17:33   ` Steven Rostedt
2019-03-08 13:36 ` [PATCH v4 21/46] tools/lib/traceevent: Man pages tep_get_first_event() and tep_get_events_count() Tzvetomir Stoyanov
2019-03-13 17:35   ` Steven Rostedt
2019-03-08 13:36 ` [PATCH v4 22/46] tools/lib/traceevent: Man pages tep_find_common_field(), tep_find_field() and tep_find_any_field() Tzvetomir Stoyanov
2019-03-13 17:42   ` Steven Rostedt
2019-03-08 13:36 ` [PATCH v4 23/46] tools/lib/traceevent: Man pages tep_get_any_field_val(), tep_get_common_field_val(), tep_get_field_val() and tep_get_field_raw() Tzvetomir Stoyanov
2019-03-13 18:36   ` Steven Rostedt
2019-03-08 13:36 ` [PATCH v4 24/46] tools/lib/traceevent: Man pages for tep_print_field(), tep_print_fields(), tep_print_num_field() and tep_print_func_field() Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 25/46] tools/lib/traceevent: Man page for tep_read_number_field() Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 26/46] tools/lib/traceevent: Man pages for tep_event_common_fields() and tep_event_fields() Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 27/46] tools/lib/traceevent: Man pages for tep_filter_alloc(), tep_filter_free() and tep_filter_reset() Tzvetomir Stoyanov
2019-03-13 19:11   ` Steven Rostedt
2019-03-13 19:13     ` Steven Rostedt
2019-03-08 13:36 ` [PATCH v4 28/46] tools/lib/traceevent: Man page for tep_filter_add_filter_str() Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 29/46] tools/lib/traceevent: Man page for tep_filter_strerror() Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 30/46] tools/lib/traceevent: Man pages for tep_event_filtered() and tep_filter_remove_event() Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 31/46] tools/lib/traceevent: Man page for tep_filter_match() Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 32/46] tools/lib/traceevent: Man pages for tep_filter_copy() and tep_filter_compare() Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 33/46] tools/lib/traceevent: Man page for tep_filter_make_string() Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 34/46] tools/lib/traceevent: Man pages for tep_filter_event_has_trivial(), tep_update_trivial() and tep_filter_clear_trivial() Tzvetomir Stoyanov
2019-03-13 20:04   ` Steven Rostedt
2019-03-15 12:26     ` Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 35/46] tools/lib/traceevent: Man pages for tep_find_function() and tep_find_function_address() Tzvetomir Stoyanov
2019-03-13 20:05   ` Steven Rostedt
2019-03-08 13:36 ` [PATCH v4 36/46] tools/lib/traceevent: Man pages for tep_set_function_resolver() and tep_reset_function_resolver() Tzvetomir Stoyanov
2019-03-13 20:06   ` Steven Rostedt
2019-03-19 19:08     ` Matt Helsley
2019-03-08 13:36 ` [PATCH v4 37/46] tools/lib/traceevent: Man pages for tep_parse_event() and tep_parse_format() Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 38/46] tools/lib/traceevent: Man page for tep_parse_header_page() Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 39/46] tools/lib/traceevent: Man pages for tep_load_plugins() and tep_unload_plugin() Tzvetomir Stoyanov
2019-03-13 20:27   ` Steven Rostedt
2019-03-13 21:42     ` Patrick McLean
2019-03-13 21:45       ` Patrick McLean
2019-03-14  0:53         ` Steven Rostedt
2019-03-08 13:36 ` [PATCH v4 40/46] tools/lib/traceevent: Man page for tep_data_lat_fmt() Tzvetomir Stoyanov
2019-03-13 20:32   ` Steven Rostedt
2019-03-19 19:32   ` [Suspected Spam] " Matt Helsley
2019-03-08 13:36 ` [PATCH v4 41/46] tools/lib/traceevent: Man pages for tep_data_type(), tep_data_pid(), tep_data_preempt_count() and tep_data_flags() Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 42/46] tools/lib/traceevent: Man pages for trace_seq_init() and trace_seq_destroy() Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 43/46] tools/lib/traceevent: Man pages for trace_seq_do_fprintf() and trace_seq_do_printf() Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 44/46] tools/lib/traceevent: Man pages for trace_seq_printf() and trace_seq_vprintf() Tzvetomir Stoyanov
2019-03-08 13:36 ` [PATCH v4 45/46] tools/lib/traceevent: Man pages for trace_seq_putc() and trace_seq_puts() Tzvetomir Stoyanov
2019-03-14  2:58   ` Steven Rostedt
2019-03-08 13:36 ` [PATCH v4 46/46] tools/lib/traceevent: Man pages for trace_seq_reset() and trace_seq_terminate() Tzvetomir Stoyanov
2019-03-08 14:19 ` [PATCH v4 00/46] Libtraceevent MAN pages Claudio
2019-03-08 15:47   ` Tzvetomir Stoyanov
2019-03-08 18:52     ` Claudio
2019-03-12 15:35     ` Steven Rostedt
2019-03-13 11:24       ` Claudio

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190308133654.21264-11-tstoyanov@vmware.com \
    --to=tstoyanov@vmware.com \
    --cc=linux-trace-devel@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.