lkml.org 
[lkml]   [2005]   [Mar]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[patch 02/12] uml: cpu_relax fix
    From
    Date

    Use rep_nop instead of barrier for cpu_relax, following $(SUBARCH)'s doing
    that (i.e. i386 and x86_64).

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
    ---

    linux-2.6.11-paolo/include/asm-um/processor-generic.h | 2 --
    linux-2.6.11-paolo/include/asm-um/processor-i386.h | 8 ++++++++
    linux-2.6.11-paolo/include/asm-um/processor-x86_64.h | 8 ++++++++
    3 files changed, 16 insertions(+), 2 deletions(-)

    diff -puN include/asm-um/processor-generic.h~uml-cpu_relax include/asm-um/processor-generic.h
    --- linux-2.6.11/include/asm-um/processor-generic.h~uml-cpu_relax 2005-03-22 16:52:25.000000000 +0100
    +++ linux-2.6.11-paolo/include/asm-um/processor-generic.h 2005-03-22 16:54:41.000000000 +0100
    @@ -16,8 +16,6 @@ struct task_struct;

    struct mm_struct;

    -#define cpu_relax() barrier()
    -
    struct thread_struct {
    int forking;
    int nsyscalls;
    diff -puN include/asm-um/processor-i386.h~uml-cpu_relax include/asm-um/processor-i386.h
    --- linux-2.6.11/include/asm-um/processor-i386.h~uml-cpu_relax 2005-03-22 16:53:43.000000000 +0100
    +++ linux-2.6.11-paolo/include/asm-um/processor-i386.h 2005-03-22 16:54:39.000000000 +0100
    @@ -19,6 +19,14 @@ struct arch_thread {

    #include "asm/arch/user.h"

    +/* REP NOP (PAUSE) is a good thing to insert into busy-wait loops. */
    +static inline void rep_nop(void)
    +{
    + __asm__ __volatile__("rep;nop": : :"memory");
    +}
    +
    +#define cpu_relax() rep_nop()
    +
    /*
    * Default implementation of macro that returns current
    * instruction pointer ("program counter"). Stolen
    diff -puN include/asm-um/processor-x86_64.h~uml-cpu_relax include/asm-um/processor-x86_64.h
    --- linux-2.6.11/include/asm-um/processor-x86_64.h~uml-cpu_relax 2005-03-22 16:56:30.000000000 +0100
    +++ linux-2.6.11-paolo/include/asm-um/processor-x86_64.h 2005-03-22 16:56:32.000000000 +0100
    @@ -12,6 +12,14 @@
    struct arch_thread {
    };

    +/* REP NOP (PAUSE) is a good thing to insert into busy-wait loops. */
    +extern inline void rep_nop(void)
    +{
    + __asm__ __volatile__("rep;nop": : :"memory");
    +}
    +
    +#define cpu_relax() rep_nop()
    +
    #define INIT_ARCH_THREAD { }

    #define current_text_addr() \
    _
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2005-04-06 13:30    [W:0.022 / U:1.908 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site