From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751821AbdJ2TVf (ORCPT ); Sun, 29 Oct 2017 15:21:35 -0400 Received: from a2nlsmtp01-03.prod.iad2.secureserver.net ([198.71.225.37]:52162 "EHLO a2nlsmtp01-03.prod.iad2.secureserver.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751665AbdJ2TVe (ORCPT ); Sun, 29 Oct 2017 15:21:34 -0400 x-originating-ip: 107.180.71.197 From: kys@exchange.microsoft.com To: gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org, devel@linuxdriverproject.org, olaf@aepfle.de, apw@canonical.com, vkuznets@redhat.com, jasowang@redhat.com, leann.ogasawara@canonical.com, marcelo.cerri@canonical.com, sthemmin@microsoft.com Cc: "K. Y. Srinivasan" Subject: [PATCH 00/17] Drivers: hv: vmbus: Add tracing to VMBus Date: Sun, 29 Oct 2017 12:20:30 -0700 Message-Id: <20171029192030.12356-1-kys@exchange.microsoft.com> X-Mailer: git-send-email 2.14.1 X-CMAE-Envelope: MS4wfPqY0M9XjSzBkEGBXA5WwlD6BwsKJOivIQmFh0vOq+kpJGeG5rQ5AYczGi0S3Q5kMNE0BebG/RXifBRXzlxZVshbbiXLSCLBCjFtM+MdgCYpWmf4htx9 F7xjo0uNacelb2k44Vacn03fA/AOJDvpMqc1pWVG7V9D41uP2d5pA8vf951GWCqzRcswuxs9qMR97LDvkKBHjIx0Mk5zDQT0FcHHByM7upwl4jDqCP+1w2qd qS+kD0sp8rvOE0Pe8Q9QdUdIwQM3ZyP/GSRXG3MpsUDEYtR0MixDMuilunMHzmltMCf8v3OwHAxN/8/eYLOfJXNNyl5AazOD7CR8v2O8y0V1fv59rAteFQnW xqTC4QLNrBy82w6immOsk+ZysnnY6tSJPBuK0d5UdGIu7mqOHHYi0rDV7q8MShLgDpADGI7jVnR07DpQuC6iPZOuRp6RzFSrB0noV2Op1Okf7J9JXyUfzKg0 MfSIccv5oMBSc3HdZuTYKMBY2at+eJ8kyzoXuXX2UyUgi6y2GtpU7vwd5hLhM/F8TMz6SO0L1NgqlItP Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: "K. Y. Srinivasan" Reply-To: kys@microsoft.com 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 [011] ..s. 122.981583: vmbus_on_msg_dpc: msgtype=1 kworker/11:7-1506 [011] .... 122.981597: vmbus_on_message: msgtype=1 kworker/11:7-1506 [011] .... 122.981598: vmbus_onoffer: child_relid 0x10, monitorid 0x2, is_dedicated 1, connection_id 0x10010, if_type f8615163-df3e-46c5-913f-f2d2f965ed0e, if_instance 6676e078-e4b3-44da-8a7d-12eafb577d31, chn_flags 0x0, mmio_megabytes 0, sub_channel_index 0 kworker/11:7-1506 [011] .... 122.982130: vmbus_establish_gpadl_header: sending child_relid 0x10, gpadl 0xe1e34, range_buflen 2056 rangecount 1, ret 0 kworker/11:7-1506 [011] .... 122.982133: vmbus_establish_gpadl_body: sending msgnumber 0, gpadl 0xe1e34, ret 0 kworker/11:7-1506 [011] .... 122.982136: vmbus_establish_gpadl_body: sending msgnumber 0, gpadl 0xe1e34, ret 0 kworker/11:7-1506 [011] .... 122.982137: vmbus_establish_gpadl_body: sending msgnumber 0, gpadl 0xe1e34, ret 0 kworker/11:7-1506 [011] .... 122.982139: vmbus_establish_gpadl_body: sending msgnumber 0, gpadl 0xe1e34, ret 0 kworker/11:7-1506 [011] .... 122.982141: vmbus_establish_gpadl_body: sending msgnumber 0, gpadl 0xe1e34, ret 0 kworker/11:7-1506 [011] .... 122.982142: vmbus_establish_gpadl_body: sending msgnumber 0, gpadl 0xe1e34, ret 0 kworker/11:7-1506 [011] .... 122.982144: vmbus_establish_gpadl_body: sending msgnumber 0, gpadl 0xe1e34, ret 0 kworker/11:7-1506 [011] .... 122.982146: vmbus_establish_gpadl_body: sending msgnumber 0, gpadl 0xe1e34, ret 0 kworker/11:7-1506 [011] .... 122.982148: vmbus_establish_gpadl_body: sending msgnumber 0, gpadl 0xe1e34, ret 0 -0 [011] ..s. 122.982336: vmbus_on_msg_dpc: msgtype=10 -0 [011] ..s. 122.982337: vmbus_ongpadl_created: child_relid 0x10, gpadl 0xe1e34, creation_status 0 kworker/11:7-1506 [011] .... 122.982351: vmbus_open: sending child_relid 0x10, openid 16, gpadlhandle 0xe1e34, target_vp 0xb, offset 0x80, ret 0 kworker/3:1-214 [003] .... 123.015007: vmbus_setevent: relid 0x5 -0 [011] ..s. 123.029467: vmbus_on_msg_dpc: msgtype=6 -0 [011] ..s. 123.029470: vmbus_onopen_result: child_relid 0x10, openid 16, status 0 kworker/11:7-1506 [011] .... 123.029492: vmbus_setevent: relid 0x10 -0 [011] d.h. 123.029533: vmbus_chan_sched: relid 0x10 kworker/11:7-1506 [011] .... 123.029539: vmbus_setevent: relid 0x10 CHANNELMSG_UNLOAD/CHANNELMSG_UNLOAD_RESPONSE are not traced as these are mostly used on crash. Vitaly Kuznetsov (17): 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() hyper-v: trace channel events drivers/hv/Makefile | 4 +- drivers/hv/channel.c | 21 ++- drivers/hv/channel_mgmt.c | 26 +++- drivers/hv/connection.c | 5 + drivers/hv/hv_trace.c | 4 + drivers/hv/hv_trace.h | 327 ++++++++++++++++++++++++++++++++++++++++++++++ drivers/hv/hyperv_vmbus.h | 2 + drivers/hv/vmbus_drv.c | 4 + 8 files changed, 388 insertions(+), 5 deletions(-) create mode 100644 drivers/hv/hv_trace.c create mode 100644 drivers/hv/hv_trace.h -- 2.14.1