linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/16] Hyper-V: add tracing to VMBus module and trace all messages
@ 2017-09-29 13:25 Vitaly Kuznetsov
  2017-09-29 13:25 ` [PATCH v2 01/16] hyper-v: trace vmbus_on_msg_dpc() Vitaly Kuznetsov
                   ` (15 more replies)
  0 siblings, 16 replies; 21+ messages in thread
From: Vitaly Kuznetsov @ 2017-09-29 13:25 UTC (permalink / raw)
  To: devel
  Cc: linux-kernel, K. Y. Srinivasan, Haiyang Zhang, Stephen Hemminger,
	Steven Rostedt, Dexuan Cui

Changes since v1:
- Use DECLARE_EVENT_CLASS/DEFINE_EVENT_PRINT for vmbus_on_msg_dpc/
  vmbus_onmessage tracing (Steven Rostedt)

Messages between guest and host are used in Hyper-V as control flow. To
simplify debugging various issues which are often hard to reproduce add
tracepoints to all message senders and handlers. This is not a performance
critical path and tracing overhead should be negligible.

The example usage and output is:

Enable all tracing events:
# echo 1 > /sys/kernel/debug/tracing/events/hyperv/enable 

Do something which causes messages to be sent between host and guest, e.g.
hot remove a VMBus device.

Check events:
# cat /sys/kernel/debug/tracing/trace 

# tracer: nop
#
#                              _-----=> irqs-off
#                             / _----=> need-resched
#                            | / _---=> hardirq/softirq
#                            || / _--=> preempt-depth
#                            ||| /     delay
#           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
#              | |       |   ||||       |         |
          <idle>-0     [005] .Ns.   465.923970: vmbus_on_msg_dpc: message 2 received
     ksoftirqd/5-41    [005] ..s.   465.923998: vmbus_on_msg_dpc: message 2 received
     kworker/5:1-64    [005] ....   465.924005: vmbus_on_message: processing message 2
     kworker/5:1-64    [005] ....   465.924005: vmbus_onoffer_rescind: child_relid 0x16
          <idle>-0     [005] ..s.   465.924114: vmbus_on_msg_dpc: message 2 received
          <idle>-0     [005] ..s.   465.924120: vmbus_on_msg_dpc: message 2 received
          <idle>-0     [005] .Ns.   465.924502: vmbus_on_msg_dpc: message 2 received
     kworker/5:2-208   [005] ....   465.924520: vmbus_on_message: processing message 2
     kworker/5:2-208   [005] ....   465.924520: vmbus_onoffer_rescind: child_relid 0x18
     kworker/5:0-2533  [005] ....   465.924713: vmbus_on_message: processing message 2
     kworker/5:0-2533  [005] ....   465.924713: vmbus_onoffer_rescind: child_relid 0x17
     kworker/5:3-2534  [005] ....   465.924810: vmbus_on_message: processing message 2
     kworker/5:3-2534  [005] ....   465.924810: vmbus_onoffer_rescind: child_relid 0x15
     kworker/5:4-2535  [005] ....   465.924900: vmbus_on_message: processing message 2
     kworker/5:4-2535  [005] ....   465.924901: vmbus_onoffer_rescind: child_relid 0x10
     kworker/5:4-2535  [005] ....   465.932588: vmbus_close_internal: sending child_relid 0x15, ret 0
     kworker/5:4-2535  [005] ....   465.932623: vmbus_close_internal: sending child_relid 0x16, ret 0
     kworker/5:4-2535  [005] ....   465.932656: vmbus_close_internal: sending child_relid 0x17, ret 0
     kworker/5:4-2535  [005] ....   465.932683: vmbus_close_internal: sending child_relid 0x18, ret 0
     kworker/5:4-2535  [005] ....   465.932709: vmbus_close_internal: sending child_relid 0x10, ret 0
     kworker/5:4-2535  [005] ....   465.986417: vmbus_release_relid: sending child_relid 0x10, ret 0

CHANNELMSG_UNLOAD/CHANNELMSG_UNLOAD_RESPONSE are not traced as these are
mostly used on crash.

Vitaly Kuznetsov (16):
  hyper-v: trace vmbus_on_msg_dpc()
  hyper-v: trace vmbus_on_message()
  hyper-v: trace vmbus_onoffer()
  hyper-v: trace vmbus_onoffer_rescind()
  hyper-v: trace vmbus_onopen_result()
  hyper-v: trace vmbus_ongpadl_created()
  hyper-v: trace vmbus_ongpadl_torndown()
  hyper-v: trace vmbus_onversion_response()
  hyper-v: trace vmbus_request_offers()
  hyper-v: trace vmbus_open()
  hyper-v: trace vmbus_close_internal()
  hyper-v: trace vmbus_establish_gpadl()
  hyper-v: trace vmbus_teardown_gpadl()
  hyper-v: trace vmbus_negotiate_version()
  hyper-v: trace vmbus_release_relid()
  hyper-v: trace vmbus_send_tl_connect_request()

 drivers/hv/Makefile       |   4 +-
 drivers/hv/channel.c      |  19 ++-
 drivers/hv/channel_mgmt.c |  26 +++-
 drivers/hv/connection.c   |   3 +
 drivers/hv/hv_trace.c     |   4 +
 drivers/hv/hv_trace.h     | 304 ++++++++++++++++++++++++++++++++++++++++++++++
 drivers/hv/hyperv_vmbus.h |   2 +
 drivers/hv/vmbus_drv.c    |   2 +
 8 files changed, 359 insertions(+), 5 deletions(-)
 create mode 100644 drivers/hv/hv_trace.c
 create mode 100644 drivers/hv/hv_trace.h

-- 
2.13.5

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2017-10-04 14:10 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-09-29 13:25 [PATCH v2 00/16] Hyper-V: add tracing to VMBus module and trace all messages Vitaly Kuznetsov
2017-09-29 13:25 ` [PATCH v2 01/16] hyper-v: trace vmbus_on_msg_dpc() Vitaly Kuznetsov
2017-10-02  0:18   ` kbuild test robot
2017-10-04  0:08     ` Steven Rostedt
2017-09-29 13:25 ` [PATCH v2 02/16] hyper-v: trace vmbus_on_message() Vitaly Kuznetsov
2017-09-29 13:25 ` [PATCH v2 03/16] hyper-v: trace vmbus_onoffer() Vitaly Kuznetsov
2017-09-29 13:25 ` [PATCH v2 04/16] hyper-v: trace vmbus_onoffer_rescind() Vitaly Kuznetsov
2017-09-29 13:25 ` [PATCH v2 05/16] hyper-v: trace vmbus_onopen_result() Vitaly Kuznetsov
2017-09-29 13:25 ` [PATCH v2 06/16] hyper-v: trace vmbus_ongpadl_created() Vitaly Kuznetsov
2017-09-29 13:25 ` [PATCH v2 07/16] hyper-v: trace vmbus_ongpadl_torndown() Vitaly Kuznetsov
2017-09-29 13:25 ` [PATCH v2 08/16] hyper-v: trace vmbus_onversion_response() Vitaly Kuznetsov
2017-09-29 13:25 ` [PATCH v2 09/16] hyper-v: trace vmbus_request_offers() Vitaly Kuznetsov
2017-09-29 13:25 ` [PATCH v2 10/16] hyper-v: trace vmbus_open() Vitaly Kuznetsov
2017-09-29 13:25 ` [PATCH v2 11/16] hyper-v: trace vmbus_close_internal() Vitaly Kuznetsov
2017-09-29 13:25 ` [PATCH v2 12/16] hyper-v: trace vmbus_establish_gpadl() Vitaly Kuznetsov
2017-09-29 13:25 ` [PATCH v2 13/16] hyper-v: trace vmbus_teardown_gpadl() Vitaly Kuznetsov
2017-09-29 13:26 ` [PATCH v2 14/16] hyper-v: trace vmbus_negotiate_version() Vitaly Kuznetsov
2017-09-29 13:26 ` [PATCH v2 15/16] hyper-v: trace vmbus_release_relid() Vitaly Kuznetsov
2017-09-29 13:26 ` [PATCH v2 16/16] hyper-v: trace vmbus_send_tl_connect_request() Vitaly Kuznetsov
2017-10-03 17:10   ` Stephen Hemminger
2017-10-04 14:10     ` Vitaly Kuznetsov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).