This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: Improve build-id checking when the task we're interested in isn't 'current'. git commit causing problems on ARM and IA64
- From: David Smith <dsmith at redhat dot com>
- To: William Cohen <wcohen at redhat dot com>
- Cc: systemtap at sourceware dot org
- Date: Mon, 02 Apr 2012 14:30:11 -0500
- Subject: Re: Improve build-id checking when the task we're interested in isn't 'current'. git commit causing problems on ARM and IA64
- References: <4F76225B.8010600@redhat.com>
On 03/30/2012 04:15 PM, William Cohen wrote:
> When running tests I found the following patch causing problems on ARM and IA64 machines
>
> http://sourceware.org/git/gitweb.cgi?p=systemtap.git;a=commitdiff;h=c0456b6fda16307070e0896d3cca86f523214a5e;hp=ca73974d84f94065dbabce2a2044d17a83bade57
>
> On ARM with a really simple example end up with:
>
> $ ../install/bin/stap -k ../systemtap/testsuite/systemtap.base/add.stp
> WARNING: "copy_to_user_page" [/tmp/stapgL32Wo/stap_7644.ko] undefined!
> Error inserting module '/tmp/stapgL32Wo/stap_7644.ko': Unknown symbol in module
> WARNING: /media/greatplains/wcohen/systemtap_write/install/bin/staprun exited with status: 1
> Pass 5: run failed. Try again with another '--vp 00001' option.
> Keeping temporary directory "/tmp/stapgL32Wo"
>
>
> On IA64 same example ends up with:
>
> $ ../install/bin/stap -k ../systemtap/testsuite/systemtap.base/add.stp
> WARNING: "flush_icache_range" [/tmp/staprfDqn5/stap_29610.ko] undefined!
> Error inserting module '/tmp/staprfDqn5/stap_29610.ko': Unknown symbol in module
> WARNING: /home/wcohen/systemtap_write/install/bin/staprun exited with status: 1
> Pass 5: run failed. Try again with another '--vp 00001' option.
> Keeping temporary directory "/tmp/staprfDqn5"
>
>
> It looks like the reordering of the includes is causing a problem on these machines.
>
> -Will
This is fixed for IA64 in commit 414b89b. It might fix ARM also, but I
don't have access to an ARM machine, so you'll have to test that one.
Long story short, it wasn't a problem with includes, but with some new
code. New code in sym.c/vma.c was calling __access_process_vm() in
certain situations. The __access_process_vm() function ends up calling
flush_icache_range() (__access_process_vm() calls copy_to_user_page(),
which calls flush_icache_user_range(), which calls
flush_icache_range()), which isn't exported.
I fixed the problem by ifdef'ing out the __access_process_vm() call when
we've got in-kernel utrace.
--
David Smith
dsmith@redhat.com
Red Hat
http://www.redhat.com
256.217.0141 (direct)
256.837.0057 (fax)