lkml.org 
[lkml]   [2012]   [Nov]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v4 6/8] x86/ftrace: Use __pa_symbol instead of __pa on C visible symbols
From
Date
On Fri, 2012-11-16 at 14:25 -0800, H. Peter Anvin wrote:
> It is a performance improvement.
>
> >> * kernel identity mapping to modify code.
> >> */
> >> if (within(ip, (unsigned long)_text, (unsigned long)_etext))
> >> - ip = (unsigned long)__va(__pa(ip));
> >> + ip = (unsigned long)__va(__pa_symbol(ip));
> >>
> >> return probe_kernel_write((void *)ip, new_code, MCOUNT_INSN_SIZE);
> >> }
> >> @@ -279,7 +279,7 @@ static int ftrace_write(unsigned long ip, const
> >char *val, int size)
> >> * kernel identity mapping to modify code.
> >> */
> >> if (within(ip, (unsigned long)_text, (unsigned long)_etext))
> >> - ip = (unsigned long)__va(__pa(ip));
> >> + ip = (unsigned long)__va(__pa_symbol(ip));
> >>
> >> return probe_kernel_write((void *)ip, val, size);
> >> }
>

#define __pa(x) __phys_addr((unsigned long)(x))
#define __pa_symbol(x) __pa(__phys_reloc_hide((unsigned long)(x)))


I'm confused. __pa_symbol() just calls __pa() with some macro magic to
its parameter. How is this a performance improvement?

-- Steve




\
 
 \ /
  Last update: 2012-11-17 00:21    [W:1.218 / U:0.328 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site