Signed-off-by: Andrey Vagin <avagin@xxxxxxxxxx> --- Documentation/accounting/task_diag.txt | 53 ++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 Documentation/accounting/task_diag.txt diff --git a/Documentation/accounting/task_diag.txt b/Documentation/accounting/task_diag.txt new file mode 100644 index 0000000..635b322 --- /dev/null +++ b/Documentation/accounting/task_diag.txt @@ -0,0 +1,53 @@ +Taskdiag is a netlink interface for getting task properties. Compared to procfs, +it is faster, more flexible and provides data in a binary format. Taskdiag was +created using the basic idea of socket_diag. + +Interface +--------- + +The user-kernel interface is encapsulated in include/uapi/linux/task_diag.h + +Request +------- + +A request is described by the task_diag_pid structure. + +struct task_diag_pid { + __u64 show_flags; /* TASK_DIAG_SHOW_* */ + __u64 dump_stratagy; /* TASK_DIAG_DUMP_* */ + + __u32 pid; +}; + +dump_stratagy specifies a group of processes: +/* per-process strategies */ +TASK_DIAG_DUMP_CHILDREN - all children +TASK_DIAG_DUMP_THREAD - all threads +TASK_DIAG_DUMP_ONE - one process +/* system wide strategies (the pid fiel is ignored) */ +TASK_DIAG_DUMP_ALL - all processes +TASK_DIAG_DUMP_ALL_THREAD - all threads + +show_flags specifies which information are required. If we set the +TASK_DIAG_SHOW_BASE flag, the response message will contain the TASK_DIAG_BASE +attribute which is described by the task_diag_base structure. + +In future, it can be extended by optional attributes. The request describes +which task properties are required and for which processes they are required +for. + +Response +-------- + +A response can be divided into a few netlink packets if the NETLINK_DUMP has +been set in a request. Each task is described by a message. Each message +contains the TASK_DIAG_PID attribute and optional attributes which have been +requested. A message can be divided into a few parts if it doesn’t fit into a +current netlink packet. In this case, the first message in the next packet +contains the same PID and attributes which doesn’t fit into the previous +message. + +Examples +-------- + +A few examples can be found in tools/testing/selftests/task_diag/ -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html