Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752706AbbBYNZK (ORCPT ); Wed, 25 Feb 2015 08:25:10 -0500 Received: from mail.kernel.org ([198.145.29.136]:40104 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751611AbbBYNZI (ORCPT ); Wed, 25 Feb 2015 08:25:08 -0500 Date: Wed, 25 Feb 2015 10:25:02 -0300 From: Arnaldo Carvalho de Melo To: Masami Hiramatsu Cc: Linux Kernel Mailing List , Jiri Olsa , David Ahern Subject: Re: Trying to use 'perf probe' to debug perf itself Message-ID: <20150225132502.GC11858@kernel.org> References: <20150224184947.GF25009@kernel.org> <54ED391C.2020808@hitachi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <54ED391C.2020808@hitachi.com> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2229 Lines: 67 Em Wed, Feb 25, 2015 at 11:53:16AM +0900, Masami Hiramatsu escreveu: > (2015/02/25 3:49), Arnaldo Carvalho de Melo wrote: > > Available variables at thread__get > > @ > > struct thread* thread > > [root@ssdandy ~]# > > cool, so I thought it would be just a matter of asking to put the probes > > and get the value of 'thread', then match things, but: > > [root@ssdandy ~]# perf probe -v ~/bin/perf thread__put thread > > Writing event: p:probe_perf/thread__put /root/bin/perf:0xd03d2 thread=-32(%sp):u64 > > Failed to write event: Invalid argument > > Error: Failed to add events. Reason: Invalid argument (Code: -22) > > [root@ssdandy ~]# > > Not possible :-\ > Hmm, strange. Could you tell me the version of your kernel? [root@ssdandy ~]# uname -r 3.10.0-210.el7.x86_64 > It seems that the kernel newer than 3.14 supports uprobes with > memory dereference (e.g. -32(%sp) )feature. Right, that must be the case, will test, but then, would it be possible for the kernel, in such cases, return something line EOPNOTSUP? I will try to figure out a better error message on the tooling side, something like: . Realize we're asking for memory dereference in uprobes . If it fails with EINVAL, check the kernel version and say something like: Please upgrade your kernel to at least x.y.z to have access to feature FOO_BAR. - Arnaldo > (it was actually introduced by 5baaa59e, and git-describe told > it was v3.13-rc4-22-g5baaa59) > > And also, could you try to write the result command to uprobe_event as > below? > > # echo "p:probe_perf/thread__put /root/bin/perf:0xd03d2 thread=-32(%sp):u64" >> \ > /sys/kernel/debug/tracing/uprobe_events Well, I'll try that if it fails after I upgrade to 3.14. > > please let me know if you need some file, here is the readelf -wi for > > those two routines: > > This should not be the problem of dwarf-analysis. It seems kernel-side > (uprobe) problem. Thanks a lot! - Arnaldo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/