From: David Daney <ddaney.cavm@gmail.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: linux-kernel@vger.kernel.org, David Daney <david.daney@cavium.com>
Subject: Re: [PATCH] recordmcount: Fix handling of elf64 big-endian objects.
Date: Fri, 06 Jan 2012 12:42:22 -0800 [thread overview]
Message-ID: <4F075CAE.2040709@gmail.com> (raw)
In-Reply-To: <1324350542.5916.48.camel@gandalf.stny.rr.com>
On 12/19/2011 07:09 PM, Steven Rostedt wrote:
> On Mon, 2011-12-19 at 17:42 -0800, David Daney wrote:
>> From: David Daney<david.daney@cavium.com>
>>
>> In ELF64, the sh_flags field is 64-bits wide. recordmcount was
>> erroneously treating it as a 32-bit wide field. For little endian
>> objects this works because the flags of interest (SHF_EXECINSTR)
>> reside in the lower 32 bits of the word, and you get the same result
>> with either a 32-bit or 64-bit read. Big endian objects on the
>> other hand do not work at all with this error.
>>
>> The fix: Correctly treat sh_flags as 64-bits wide in elf64 objects.
>>
>> The symptom I observed was that my
>> __start_mcount_loc..__stop_mcount_loc was empty even though ftrace
>> function tracing was enabled.
>>
>
> OUCH!
>
> This looks like something that needs to go to stable. Let me play with
> this on my PPC64 tomorrow.
>
Hi Steven,
Any more feedback on this patch? Should I look for it to appear in 3.3?
Thanks,
David Daney
> Thanks!
>
> -- Steve
>
>> Signed-off-by: David Daney<david.daney@cavium.com>
>> ---
>> scripts/recordmcount.h | 2 +-
>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/scripts/recordmcount.h b/scripts/recordmcount.h
>> index f40a6af6..54e35c1 100644
>> --- a/scripts/recordmcount.h
>> +++ b/scripts/recordmcount.h
>> @@ -462,7 +462,7 @@ __has_rel_mcount(Elf_Shdr const *const relhdr, /* is SHT_REL or SHT_RELA */
>> succeed_file();
>> }
>> if (w(txthdr->sh_type) != SHT_PROGBITS ||
>> - !(w(txthdr->sh_flags)& SHF_EXECINSTR))
>> + !(_w(txthdr->sh_flags)& SHF_EXECINSTR))
>> return NULL;
>> return txtname;
>> }
>
>
next prev parent reply other threads:[~2012-01-06 20:42 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-20 1:42 [PATCH] recordmcount: Fix handling of elf64 big-endian objects David Daney
2011-12-20 3:09 ` Steven Rostedt
2012-01-06 20:42 ` David Daney [this message]
2012-01-06 21:47 ` Steven Rostedt
2012-01-06 23:09 ` Steven Rostedt
2012-01-06 23:15 ` David Daney
2012-01-06 23:24 ` Steven Rostedt
2012-01-08 11:51 ` [tip:perf/core] " tip-bot for David Daney
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=4F075CAE.2040709@gmail.com \
--to=ddaney.cavm@gmail.com \
--cc=david.daney@cavium.com \
--cc=linux-kernel@vger.kernel.org \
--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.