lkml.org 
[lkml]   [2008]   [Jan]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[RFC PATCH 04/23 -v4] add notrace annotations to vsyscall.
    Add the notrace annotations to some of the vsyscall functions.

    Signed-off-by: Steven Rostedt <srostedt@redhat.com>
    ---
    arch/x86/kernel/vsyscall_64.c | 3 ++-
    arch/x86/vdso/vclock_gettime.c | 15 ++++++++-------
    arch/x86/vdso/vgetcpu.c | 3 ++-
    include/asm-x86/vsyscall.h | 3 ++-
    4 files changed, 14 insertions(+), 10 deletions(-)

    Index: linux-mcount.git/arch/x86/kernel/vsyscall_64.c
    ===================================================================
    --- linux-mcount.git.orig/arch/x86/kernel/vsyscall_64.c 2008-01-17 20:33:16.000000000 -0500
    +++ linux-mcount.git/arch/x86/kernel/vsyscall_64.c 2008-01-17 20:33:34.000000000 -0500
    @@ -42,7 +42,8 @@
    #include <asm/topology.h>
    #include <asm/vgtod.h>

    -#define __vsyscall(nr) __attribute__ ((unused,__section__(".vsyscall_" #nr)))
    +#define __vsyscall(nr) \
    + __attribute__ ((unused, __section__(".vsyscall_" #nr))) notrace
    #define __syscall_clobber "r11","rcx","memory"
    #define __pa_vsymbol(x) \
    ({unsigned long v; \
    Index: linux-mcount.git/arch/x86/vdso/vclock_gettime.c
    ===================================================================
    --- linux-mcount.git.orig/arch/x86/vdso/vclock_gettime.c 2008-01-17 20:33:16.000000000 -0500
    +++ linux-mcount.git/arch/x86/vdso/vclock_gettime.c 2008-01-17 20:33:34.000000000 -0500
    @@ -24,7 +24,7 @@

    #define gtod vdso_vsyscall_gtod_data

    -static long vdso_fallback_gettime(long clock, struct timespec *ts)
    +notrace static long vdso_fallback_gettime(long clock, struct timespec *ts)
    {
    long ret;
    asm("syscall" : "=a" (ret) :
    @@ -32,7 +32,7 @@ static long vdso_fallback_gettime(long c
    return ret;
    }

    -static inline long vgetns(void)
    +notrace static inline long vgetns(void)
    {
    long v;
    cycles_t (*vread)(void);
    @@ -41,7 +41,7 @@ static inline long vgetns(void)
    return (v * gtod->clock.mult) >> gtod->clock.shift;
    }

    -static noinline int do_realtime(struct timespec *ts)
    +notrace static noinline int do_realtime(struct timespec *ts)
    {
    unsigned long seq, ns;
    do {
    @@ -55,7 +55,8 @@ static noinline int do_realtime(struct t
    }

    /* Copy of the version in kernel/time.c which we cannot directly access */
    -static void vset_normalized_timespec(struct timespec *ts, long sec, long nsec)
    +notrace static void
    +vset_normalized_timespec(struct timespec *ts, long sec, long nsec)
    {
    while (nsec >= NSEC_PER_SEC) {
    nsec -= NSEC_PER_SEC;
    @@ -69,7 +70,7 @@ static void vset_normalized_timespec(str
    ts->tv_nsec = nsec;
    }

    -static noinline int do_monotonic(struct timespec *ts)
    +notrace static noinline int do_monotonic(struct timespec *ts)
    {
    unsigned long seq, ns, secs;
    do {
    @@ -83,7 +84,7 @@ static noinline int do_monotonic(struct
    return 0;
    }

    -int __vdso_clock_gettime(clockid_t clock, struct timespec *ts)
    +notrace int __vdso_clock_gettime(clockid_t clock, struct timespec *ts)
    {
    if (likely(gtod->sysctl_enabled && gtod->clock.vread))
    switch (clock) {
    @@ -97,7 +98,7 @@ int __vdso_clock_gettime(clockid_t clock
    int clock_gettime(clockid_t, struct timespec *)
    __attribute__((weak, alias("__vdso_clock_gettime")));

    -int __vdso_gettimeofday(struct timeval *tv, struct timezone *tz)
    +notrace int __vdso_gettimeofday(struct timeval *tv, struct timezone *tz)
    {
    long ret;
    if (likely(gtod->sysctl_enabled && gtod->clock.vread)) {
    Index: linux-mcount.git/arch/x86/vdso/vgetcpu.c
    ===================================================================
    --- linux-mcount.git.orig/arch/x86/vdso/vgetcpu.c 2008-01-17 20:33:16.000000000 -0500
    +++ linux-mcount.git/arch/x86/vdso/vgetcpu.c 2008-01-17 20:33:34.000000000 -0500
    @@ -13,7 +13,8 @@
    #include <asm/vgtod.h>
    #include "vextern.h"

    -long __vdso_getcpu(unsigned *cpu, unsigned *node, struct getcpu_cache *unused)
    +notrace long
    +__vdso_getcpu(unsigned *cpu, unsigned *node, struct getcpu_cache *unused)
    {
    unsigned int dummy, p;

    Index: linux-mcount.git/include/asm-x86/vsyscall.h
    ===================================================================
    --- linux-mcount.git.orig/include/asm-x86/vsyscall.h 2008-01-17 20:33:16.000000000 -0500
    +++ linux-mcount.git/include/asm-x86/vsyscall.h 2008-01-17 20:33:34.000000000 -0500
    @@ -24,7 +24,8 @@ enum vsyscall_num {
    ((unused, __section__ (".vsyscall_gtod_data"),aligned(16)))
    #define __section_vsyscall_clock __attribute__ \
    ((unused, __section__ (".vsyscall_clock"),aligned(16)))
    -#define __vsyscall_fn __attribute__ ((unused,__section__(".vsyscall_fn")))
    +#define __vsyscall_fn \
    + __attribute__ ((unused, __section__(".vsyscall_fn"))) notrace

    #define VGETCPU_RDTSCP 1
    #define VGETCPU_LSL 2
    --


    \
     
     \ /
      Last update: 2008-01-21 16:29    [W:0.024 / U:61.052 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site