This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug runtime/12341] deref()/store_deref() variations between arches
- From: "dsmith at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sources dot redhat dot com
- Date: Thu, 6 Jan 2011 20:58:42 +0000
- Subject: [Bug runtime/12341] deref()/store_deref() variations between arches
- Auto-submitted: auto-generated
- References: <bug-12341-1110@http.sourceware.org/bugzilla/>
http://sourceware.org/bugzilla/show_bug.cgi?id=12341
--- Comment #2 from David Smith <dsmith at redhat dot com> 2011-01-06 20:58:39 UTC ---
(In reply to comment #0)
> For powerpc, deref() calls __stp_get_user_asm(), which is custom powerpc
> assembly code (that looks almost identical to the kernel's __get_user_asm()).
> store_deref() calls __stp_put_user_asm(), which is custom powerpc assembly
> code.
For powerpc, I've discovered some history.
loc2c-runtime.h originally used the kernel's __get_user_asm() macros.
This changed on 20 Mar 2006 in the following commit:
<http://sources.redhat.com/git/gitweb.cgi?p=systemtap.git;a=commitdiff;h=15eeafe9465119eb443f59b332e24ecfeec10488>
To fix bug 2076 (ppc64 runtime is broken under kernel v2.6.15-RC5):
<http://sourceware.org/bugzilla/show_bug.cgi?id=2076>
which was caused by the "__get_user_asm" macro changing to taking 4 arguments
(from 5).
There is (hopefully) a better way to fix that problem than duplicating
__get_user_asm()/__put_user_asm().
Note that we just can't go back to calling __get_user_asm(), since in current
kernels __get_user_asm2() is used on powerpc to get 64-bit values. We'll need
to call something a bit higher up.
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.