From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753637AbbGFIwm (ORCPT ); Mon, 6 Jul 2015 04:52:42 -0400 Received: from mailhub.sw.ru ([195.214.232.25]:47687 "EHLO relay.sw.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754476AbbGFIvd (ORCPT ); Mon, 6 Jul 2015 04:51:33 -0400 From: Andrey Vagin To: linux-kernel@vger.kernel.org Cc: linux-api@vger.kernel.org, Andrey Vagin , Oleg Nesterov , Andrew Morton , Cyrill Gorcunov , Pavel Emelyanov , Roger Luethi , Arnd Bergmann , Arnaldo Carvalho de Melo , David Ahern , Andy Lutomirski , Pavel Odintsov Subject: [PATCH 22/24] Documentation: add documentation for task_diag Date: Mon, 6 Jul 2015 11:47:23 +0300 Message-Id: <1436172445-6979-23-git-send-email-avagin@openvz.org> X-Mailer: git-send-email 2.1.0 In-Reply-To: <1436172445-6979-1-git-send-email-avagin@openvz.org> References: <1436172445-6979-1-git-send-email-avagin@openvz.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Signed-off-by: Andrey Vagin --- 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