linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Jan Kara <jack@suse.cz>
To: Theodore Ts'o <tytso@mit.edu>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Dave Chinner <david@fromorbit.com>,
	Ross Zwisler <ross.zwisler@linux.intel.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Dan Williams <dan.j.williams@intel.com>,
	Ingo Molnar <mingo@redhat.com>, Jan Kara <jack@suse.cz>,
	Matthew Wilcox <mawilcox@microsoft.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	"linux-ext4@vger.kernel.org" <linux-ext4@vger.kernel.org>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	linux-mm <linux-mm@kvack.org>,
	"linux-nvdimm@lists.01.org" <linux-nvdimm@ml01.01.org>
Subject: Re: [PATCH 3/6] dax: add tracepoint infrastructure, PMD tracing
Date: Mon, 28 Nov 2016 09:33:27 +0100	[thread overview]
Message-ID: <20161128083327.GA2590@quack2.suse.cz> (raw)
In-Reply-To: <20161125214840.kexe5mj2yn4jtazi@thunk.org>

On Fri 25-11-16 16:48:40, Ted Tso wrote:
> On Fri, Nov 25, 2016 at 11:51:26AM -0800, Linus Torvalds wrote:
> > We do have filesystem code that is just disgusting. As an example:
> > fs/afs/ tends to have these crazy "_enter()/_exit()" macros in every
> > single function. If you want that, use the function tracer. That seems
> > to be just debugging code that has been left around for others to
> > stumble over. I do *not* believe that we should encourage that kind of
> > "machine gun spray" use of tracepoints.
> 
> There is a reason why people want to be able to do that, and that's
> because kprobes doesn't give you access to the arguments and return
> codes to the functions.  Maybe there could be a way to do this more
> easily using DWARF information and EBPF magic, perhaps?  It won't help
> for inlined functions, of course, but most of the functions where
> people want to do this aren't generally functions which are going to
> be inlined, but rather things like write_begin, writepages, which are
> called via a struct ops table and so will never be inlined to begin
> with.

Actually, you can print register & stack contents from a kprobe and you can
get a function return value from a kretprobe (see
Documentation/trace/kprobetrace.txt). Since calling convention is fixed
(arg 1 in RDI, arg 2 in RSI...) you can relatively easily dump function
arguments on entry and dump return value on return for arbitrary function
of your choice. I was already debugging issues like that several times (in
VFS actually because of missing trace points ;)). You can even create a
kprobe to dump register contents in the middle of the function (although
there it takes more effort reading the dissasembly to see what you are
interested in).

								Honza
-- 
Jan Kara <jack@suse.com>
SUSE Labs, CR

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  parent reply	other threads:[~2016-11-28  8:33 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-23 18:44 [PATCH 0/6] introduce DAX tracepoint support Ross Zwisler
2016-11-23 18:44 ` [PATCH 1/6] dax: fix build breakage with ext4, dax and !iomap Ross Zwisler
2016-11-24  9:02   ` Jan Kara
2016-11-28 19:15     ` Ross Zwisler
2016-11-29  8:53       ` Jan Kara
2016-11-30 19:04         ` Ross Zwisler
2016-12-01  7:53           ` Jan Kara
2016-11-23 18:44 ` [PATCH 2/6] dax: remove leading space from labels Ross Zwisler
2016-11-24  9:11   ` Jan Kara
2016-11-24 19:42     ` Dan Williams
2016-11-28 19:20       ` Ross Zwisler
2016-11-23 18:44 ` [PATCH 3/6] dax: add tracepoint infrastructure, PMD tracing Ross Zwisler
2016-11-24  9:16   ` Jan Kara
2016-11-24 17:32   ` Al Viro
2016-11-25  2:49     ` Dave Chinner
2016-11-25  4:14       ` Al Viro
2016-11-25  7:06         ` Dave Chinner
2016-11-25  7:37           ` Al Viro
2016-11-25 19:51             ` Linus Torvalds
2016-11-25 20:36               ` Mike Marshall
2016-11-25 21:48               ` Theodore Ts'o
2016-11-25 23:38                 ` Linus Torvalds
2016-11-28  8:33                 ` Jan Kara [this message]
2016-11-27 22:42               ` Dave Chinner
2016-11-28  0:58                 ` Linus Torvalds
2016-11-28  1:45                   ` Al Viro
2016-11-28  9:09                   ` Dave Chinner
2016-11-25  3:00   ` Dave Chinner
2016-11-28 22:46     ` Ross Zwisler
2016-11-29  2:02       ` Dave Chinner
2017-03-08 22:05         ` Mike Marshall
2016-11-23 18:44 ` [PATCH 4/6] dax: update MAINTAINERS entries for FS DAX Ross Zwisler
2016-11-23 18:44 ` [PATCH 5/6] dax: add tracepoints to dax_pmd_load_hole() Ross Zwisler
2016-11-24  9:20   ` Jan Kara
2016-11-23 18:44 ` [PATCH 6/6] dax: add tracepoints to dax_pmd_insert_mapping() Ross Zwisler
2016-11-24  9:22   ` Jan Kara

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=20161128083327.GA2590@quack2.suse.cz \
    --to=jack@suse.cz \
    --cc=akpm@linux-foundation.org \
    --cc=dan.j.williams@intel.com \
    --cc=david@fromorbit.com \
    --cc=hch@lst.de \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-nvdimm@ml01.01.org \
    --cc=mawilcox@microsoft.com \
    --cc=mingo@redhat.com \
    --cc=ross.zwisler@linux.intel.com \
    --cc=rostedt@goodmis.org \
    --cc=torvalds@linux-foundation.org \
    --cc=tytso@mit.edu \
    --cc=viro@zeniv.linux.org.uk \
    /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