linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: Greg KH <gregkh@linuxfoundation.org>
Cc: Steven Rostedt <rostedt@goodmis.org>,
	olaf@aepfle.de, sthemmin@microsoft.com, jasowang@redhat.com,
	linux-kernel@vger.kernel.org, apw@canonical.com,
	marcelo.cerri@canonical.com, devel@linuxdriverproject.org,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	leann.ogasawara@canonical.com
Subject: Re: [PATCH 10/17] hyper-v: trace vmbus_open()
Date: Tue, 31 Oct 2017 18:41:04 +0100	[thread overview]
Message-ID: <20171031184104.7a17079e@shemminger-XPS-13-9360> (raw)
In-Reply-To: <20171031124800.GA27947@kroah.com>

On Tue, 31 Oct 2017 13:48:00 +0100
Greg KH <gregkh@linuxfoundation.org> wrote:

> On Mon, Oct 30, 2017 at 10:31:34AM -0400, Steven Rostedt wrote:
> > On Mon, 30 Oct 2017 11:32:20 +0100
> > Greg KH <gregkh@linuxfoundation.org> wrote:
> >   
> > > On Mon, Oct 30, 2017 at 11:07:01AM +0100, Vitaly Kuznetsov wrote:  
> > > > Greg KH <gregkh@linuxfoundation.org> writes:
> > > >     
> > > > > On Mon, Oct 30, 2017 at 09:16:19AM +0100, Vitaly Kuznetsov wrote:    
> > > > >> Greg KH <gregkh@linuxfoundation.org> writes:
> > > > >>     
> > > > >> > On Sun, Oct 29, 2017 at 12:21:09PM -0700, kys@exchange.microsoft.com wrote:    
> > > > >> >> From: Vitaly Kuznetsov <vkuznets@redhat.com>
> > > > >> >> 
> > > > >> >> Add tracepoint to CHANNELMSG_OPENCHANNEL sender.
> > > > >> >> 
> > > > >> >> Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
> > > > >> >> Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
> > > > >> >> ---
> > > > >> >>  drivers/hv/channel.c  |  2 ++
> > > > >> >>  drivers/hv/hv_trace.h | 27 +++++++++++++++++++++++++++
> > > > >> >>  2 files changed, 29 insertions(+)
> > > > >> >> 
> > > > >> >> diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
> > > > >> >> index a406beb10dd0..739b3fe1e0fb 100644
> > > > >> >> --- a/drivers/hv/channel.c
> > > > >> >> +++ b/drivers/hv/channel.c
> > > > >> >> @@ -185,6 +185,8 @@ int vmbus_open(struct vmbus_channel *newchannel, u32 send_ringbuffer_size,
> > > > >> >>  	ret = vmbus_post_msg(open_msg,
> > > > >> >>  			     sizeof(struct vmbus_channel_open_channel), true);
> > > > >> >>  
> > > > >> >> +	trace_vmbus_open(open_msg, ret);    
> > > > >> >
> > > > >> > Why add tracepoints for things that ftrace can handle automatically?    
> > > > >> 
> > > > >> This series adds pretty prints for structures printing what is needed
> > > > >> and in the right format significantly simplifying debugging. And it
> > > > >> wouldn't make sense to add tracepoints to *some* messages-related
> > > > >> functions and skip others where parsing is more trivial.    
> > > > >
> > > > > Tracepoints add memory usage and take up real space.  If you don't need
> > > > > them for something, as there are other ways to already get the
> > > > > information needed, why add new ones that you now need to drag around
> > > > > for all time?
> > > > >    
> > > > 
> > > > Are you opposed to the series as a whole (AKA 'no tracepoints in
> > > > drivers') or only to some tracepoints we add here?    
> > > 
> > > I'm opposed to adding tracepoints for things that are not needed as you
> > > can get the same info already today without the tracepoint.  
> > 
> > I looked at this specific tracepoint, and I don't see how to get the
> > information from the current tracing infrastructure. Maybe an eBPF
> > program attached to a kprobe here might work. But the tracepoint data
> > looks like this:
> > 
> > +           TP_STRUCT__entry(
> > +                   __field(u32, child_relid)
> > +                   __field(u32, openid)
> > +                   __field(u32, gpadlhandle)
> > +                   __field(u32, target_vp)
> > +                   __field(u32, offset)
> > +                   __field(int, ret)
> > +                   ),
> > +           TP_fast_assign(
> > +                   __entry->child_relid = msg->child_relid;
> > +                   __entry->openid = msg->openid;
> > +                   __entry->gpadlhandle = msg->ringbuffer_gpadlhandle;
> > +                   __entry->target_vp = msg->target_vp;
> > +                   __entry->offset = msg->downstream_ringbuffer_pageoffset;
> > +                   __entry->ret = ret;
> > +                   ),
> > 
> > I don't see how that information can be extracted easily without a
> > tracepoint here. Am I missing something?  
> 
> Wasn't one of the outcomes of the conference last week the fact that for
> ftrace + ebpf we could get access to the structures of the function
> parameters?  Or that work would soon be showing up?
> 
> It just feels "wrong" to add a tracepoint for a function call, like it
> is a duplication of work/functionality we already have.
> 
> thanks,
> 
> greg k-h

Just to add some context. VMBus open/close etc are not in critical path.
The reason that tracing of these makes sense is that there have been bugs
in the past with teardown and restart of channels, and having some information
would help. Not sure if the detailed internals of the parameters matter that
much since it has been clear what the parameters were by context.

  parent reply	other threads:[~2017-10-31 17:41 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-29 19:20 [PATCH 00/17] Drivers: hv: vmbus: Add tracing to VMBus kys
2017-10-29 19:21 ` [PATCH 01/17] hyper-v: trace vmbus_on_msg_dpc() kys
2017-10-29 19:21   ` [PATCH 02/17] hyper-v: trace vmbus_on_message() kys
2017-10-29 19:21   ` [PATCH 03/17] hyper-v: trace vmbus_onoffer() kys
2017-10-29 19:21   ` [PATCH 04/17] hyper-v: trace vmbus_onoffer_rescind() kys
2017-10-29 19:21   ` [PATCH 05/17] hyper-v: trace vmbus_onopen_result() kys
2017-10-29 19:21   ` [PATCH 06/17] hyper-v: trace vmbus_ongpadl_created() kys
2017-10-29 19:21   ` [PATCH 07/17] hyper-v: trace vmbus_ongpadl_torndown() kys
2017-10-29 19:21   ` [PATCH 08/17] hyper-v: trace vmbus_onversion_response() kys
2017-10-29 19:21   ` [PATCH 09/17] hyper-v: trace vmbus_request_offers() kys
2017-10-29 19:21   ` [PATCH 10/17] hyper-v: trace vmbus_open() kys
2017-10-29 20:59     ` Greg KH
2017-10-30  8:16       ` Vitaly Kuznetsov
2017-10-30  8:45         ` Greg KH
2017-10-30 10:07           ` Vitaly Kuznetsov
2017-10-30 10:32             ` Greg KH
2017-10-30 14:31               ` Steven Rostedt
2017-10-31 12:48                 ` Greg KH
2017-10-31 13:10                   ` Steven Rostedt
2017-11-01 17:43                     ` KY Srinivasan
2017-11-04 11:05                       ` Greg KH
2017-11-04 15:09                         ` KY Srinivasan
2017-10-31 17:41                   ` Stephen Hemminger [this message]
2017-10-29 19:21   ` [PATCH 11/17] hyper-v: trace vmbus_close_internal() kys
2017-10-29 19:21   ` [PATCH 12/17] hyper-v: trace vmbus_establish_gpadl() kys
2017-10-29 19:21   ` [PATCH 13/17] hyper-v: trace vmbus_teardown_gpadl() kys
2017-10-29 19:21   ` [PATCH 14/17] hyper-v: trace vmbus_negotiate_version() kys
2017-10-29 19:21   ` [PATCH 15/17] hyper-v: trace vmbus_release_relid() kys
2017-10-29 19:21   ` [PATCH 16/17] hyper-v: trace vmbus_send_tl_connect_request() kys
2017-10-29 19:21   ` [PATCH 17/17] hyper-v: trace channel events kys

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171031184104.7a17079e@shemminger-XPS-13-9360 \
    --to=stephen@networkplumber.org \
    --cc=apw@canonical.com \
    --cc=devel@linuxdriverproject.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jasowang@redhat.com \
    --cc=leann.ogasawara@canonical.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marcelo.cerri@canonical.com \
    --cc=olaf@aepfle.de \
    --cc=rostedt@goodmis.org \
    --cc=sthemmin@microsoft.com \
    --cc=vkuznets@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).