From: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Howard McLauchlan <hmclauchlan@fb.com>,
linux-kernel@vger.kernel.org, Ingo Molnar <mingo@redhat.com>,
kernel-team@fb.com, Masami Hiramatsu <mhiramat@kernel.org>
Subject: Re: [PATCH] uprobe: add support for overlayfs
Date: Wed, 11 Apr 2018 07:27:37 -0700 [thread overview]
Message-ID: <20180411142737.GA16559@linux.vnet.ibm.com> (raw)
In-Reply-To: <20180410200059.731d87fe@gandalf.local.home>
* Steven Rostedt <rostedt@goodmis.org> [2018-04-10 20:00:59]:
> On Tue, 10 Apr 2018 16:10:30 -0700
> Howard McLauchlan <hmclauchlan@fb.com> wrote:
>
> > uprobes cannot successfully attach to binaries located in a directory
> > mounted with overlayfs.
> >
> > To verify, create directories for mounting overlayfs
> > (upper,lower,work,merge), move some binary into merge/ and use readelf
> > to obtain some known instruction of the binary. I used /bin/true and the
> > entry instruction(0x13b0):
> >
> > $ mount -t overlay overlay -o lowerdir=lower,upperdir=upper,workdir=work merge
> > $ cd /sys/kernel/debug/tracing
> > $ echo 'p:true_entry PATH_TO_MERGE/merge/true:0x13b0' > uprobe_events
> > $ echo 1 > events/uprobes/true_entry/enable
> >
> > This returns 'bash: echo: write error: Input/output error' and dmesg
> > tells us 'event trace: Could not enable event true_entry'
>
> I tried the above and verified that it is a problem and your patch
> solves it.
>
> Thanks, I'll apply it and start my tests on it.
>
> -- Steve
>
> >
> > This change makes create_trace_uprobe() look for the real inode of a
> > dentry. In the case of normal filesystems, this simplifies to just
> > returning the inode. In the case of overlayfs(and similar fs) we will
> > obtain the underlying dentry and corresponding inode, upon which uprobes
> > can successfully register.
> >
> > Running the example above with the patch applied, we can see that the
> > uprobe is enabled and will output to trace as expected.
> >
Looks good to me.
Reviewed-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
> > Reviewed-by: Josef Bacik <jbacik@fb.com>
> > Signed-off-by: Howard McLauchlan <hmclauchlan@fb.com>
> > ---
> > kernel/trace/trace_uprobe.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/kernel/trace/trace_uprobe.c b/kernel/trace/trace_uprobe.c
> > index 2014f4351ae0..17c65fa4136d 100644
> > --- a/kernel/trace/trace_uprobe.c
> > +++ b/kernel/trace/trace_uprobe.c
> > @@ -446,7 +446,7 @@ static int create_trace_uprobe(int argc, char **argv)
> > if (ret)
> > goto fail_address_parse;
> >
> > - inode = igrab(d_inode(path.dentry));
> > + inode = igrab(d_real_inode(path.dentry));
> > path_put(&path);
> >
> > if (!inode || !S_ISREG(inode->i_mode)) {
>
next prev parent reply other threads:[~2018-04-11 14:27 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-10 23:10 [PATCH] uprobe: add support for overlayfs Howard McLauchlan
2018-04-11 0:00 ` Steven Rostedt
2018-04-11 2:13 ` Masami Hiramatsu
2018-04-11 14:27 ` Srikar Dronamraju [this message]
-- strict thread matches above, loose matches on Subject: below --
2018-02-28 0:40 Howard McLauchlan
2018-03-05 19:59 ` Josef Bacik
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=20180411142737.GA16559@linux.vnet.ibm.com \
--to=srikar@linux.vnet.ibm.com \
--cc=hmclauchlan@fb.com \
--cc=kernel-team@fb.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mhiramat@kernel.org \
--cc=mingo@redhat.com \
--cc=rostedt@goodmis.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.