From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751614AbdITRWM (ORCPT ); Wed, 20 Sep 2017 13:22:12 -0400 Received: from mx1.redhat.com ([209.132.183.28]:60428 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750825AbdITRWL (ORCPT ); Wed, 20 Sep 2017 13:22:11 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com D637D552F1 Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=vkuznets@redhat.com From: Vitaly Kuznetsov To: devel@linuxdriverproject.org Cc: linux-kernel@vger.kernel.org, "K. Y. Srinivasan" , Haiyang Zhang , Stephen Hemminger , Steven Rostedt , Dexuan Cui Subject: [PATCH 00/16] Hyper-V: add tracing to VMBus module and trace all messages Date: Wed, 20 Sep 2017 19:21:51 +0200 Message-Id: <20170920172207.12622-1-vkuznets@redhat.com> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Wed, 20 Sep 2017 17:22:11 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 # | | | |||| | | -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 -0 [005] ..s. 465.924114: vmbus_on_msg_dpc: message 2 received -0 [005] ..s. 465.924120: vmbus_on_msg_dpc: message 2 received -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 | 302 ++++++++++++++++++++++++++++++++++++++++++++++ drivers/hv/hyperv_vmbus.h | 2 + drivers/hv/vmbus_drv.c | 2 + 8 files changed, 357 insertions(+), 5 deletions(-) create mode 100644 drivers/hv/hv_trace.c create mode 100644 drivers/hv/hv_trace.h -- 2.13.5