[PATCH] syscall latency improvement #2 (253p6)

From: David Howells (dhowells@redhat.com)
Date: Tue Jan 29 2002 - 10:27:01 EST


Hi Linus,

This is a re-done patch to invalidate access to the task struct by other
archs (assuming patch #1 is applied).

David

diff -uNr linux-2.5.3-pre6/arch/alpha/kernel/check_asm.c linux-work-253p6/arch/alpha/kernel/check_asm.c
--- linux-2.5.3-pre6/arch/alpha/kernel/check_asm.c Tue Jan 22 09:06:50 2002
+++ linux-work-253p6/arch/alpha/kernel/check_asm.c Tue Jan 29 08:33:10 2002
@@ -12,13 +12,13 @@
         printf("#define TASK_FLAGS %ld\n",
                (long)offsetof(struct task_struct, flags));
         printf("#define TASK_SIGPENDING %ld\n",
- (long)offsetof(struct task_struct, sigpending));
+#error (long)offsetof(struct task_struct, sigpending));
         printf("#define TASK_ADDR_LIMIT %ld\n",
                (long)offsetof(struct task_struct, addr_limit));
         printf("#define TASK_EXEC_DOMAIN %ld\n",
                (long)offsetof(struct task_struct, exec_domain));
         printf("#define TASK_NEED_RESCHED %ld\n",
- (long)offsetof(struct task_struct, need_resched));
+#error (long)offsetof(struct task_struct, work.need_resched));
         printf("#define TASK_SIZE %ld\n", sizeof(struct task_struct));
         printf("#define STACK_SIZE %ld\n", sizeof(union task_union));
 
diff -uNr linux-2.5.3-pre6/arch/alpha/kernel/entry.S linux-work-253p6/arch/alpha/kernel/entry.S
--- linux-2.5.3-pre6/arch/alpha/kernel/entry.S Tue Jan 22 09:06:49 2002
+++ linux-work-253p6/arch/alpha/kernel/entry.S Tue Jan 29 08:33:10 2002
@@ -30,11 +30,11 @@
  */
 #define TASK_STATE 0
 #define TASK_FLAGS 8
-#define TASK_SIGPENDING 16
+#error #define TASK_SIGPENDING 16
 #define TASK_ADDR_LIMIT 24
 #define TASK_EXEC_DOMAIN 32
-#define TASK_NEED_RESCHED 40
-#define TASK_PTRACE 48
+#error #define TASK_NEED_RESCHED 40
+#error #define TASK_PTRACE 48
 #define TASK_PROCESSOR 100
 
 /*
@@ -580,11 +580,11 @@
         and $0,8,$0
         beq $0,restore_all
 ret_from_reschedule:
- ldq $2,TASK_NEED_RESCHED($8)
+#error ldq $2,TASK_NEED_RESCHED($8)
         lda $4,init_task_union
         bne $2,reschedule
         xor $4,$8,$4
- ldl $5,TASK_SIGPENDING($8)
+#error ldl $5,TASK_SIGPENDING($8)
         beq $4,restore_all
         bne $5,signal_return
 restore_all:
diff -uNr linux-2.5.3-pre6/arch/alpha/kernel/process.c linux-work-253p6/arch/alpha/kernel/process.c
--- linux-2.5.3-pre6/arch/alpha/kernel/process.c Tue Jan 22 09:06:49 2002
+++ linux-work-253p6/arch/alpha/kernel/process.c Tue Jan 29 08:33:10 2002
@@ -82,9 +82,9 @@
 
                 /* Although we are an idle CPU, we do not want to
                    get into the scheduler unnecessarily. */
- long oldval = xchg(&current->need_resched, -1UL);
+ long oldval = xchg(&current->work.need_resched, -1UL);
                 if (!oldval)
- while (current->need_resched < 0);
+ while (current->work.need_resched < 0);
                 schedule();
                 check_pgt_cache();
         }
diff -uNr linux-2.5.3-pre6/arch/arm/kernel/entry-common.S linux-work-253p6/arch/arm/kernel/entry-common.S
--- linux-2.5.3-pre6/arch/arm/kernel/entry-common.S Tue Jan 22 09:06:57 2002
+++ linux-work-253p6/arch/arm/kernel/entry-common.S Tue Jan 29 08:33:10 2002
@@ -34,8 +34,8 @@
  * stack.
  */
 ret_fast_syscall:
- ldr r1, [tsk, #TSK_NEED_RESCHED]
- ldr r2, [tsk, #TSK_SIGPENDING]
+#error ldr r1, [tsk, #TSK_NEED_RESCHED]
+#error ldr r2, [tsk, #TSK_SIGPENDING]
         teq r1, #0 @ need_resched || sigpending
         teqeq r2, #0
         bne slow
@@ -54,8 +54,8 @@
         bl SYMBOL_NAME(schedule)
 ENTRY(ret_to_user)
 ret_slow_syscall:
- ldr r1, [tsk, #TSK_NEED_RESCHED]
- ldr r2, [tsk, #TSK_SIGPENDING]
+#error ldr r1, [tsk, #TSK_NEED_RESCHED]
+#error ldr r2, [tsk, #TSK_SIGPENDING]
 1: teq r1, #0 @ need_resched => schedule()
         bne reschedule
         teq r2, #0 @ sigpending => do_signal()
@@ -66,7 +66,7 @@
         mov r0, #0 @ NULL 'oldset'
         mov r1, sp @ 'regs'
         mov r2, why @ 'syscall'
- b SYMBOL_NAME(do_signal) @ note the bl above sets lr
+#error b SYMBOL_NAME(do_signal) @ note the bl above sets lr
 
 /*
  * This is how we return from a fork. __switch_to will be calling us
@@ -82,7 +82,7 @@
         beq ret_slow_syscall
         mov r1, sp
         mov r0, #1 @ trace exit [IP = 1]
- bl SYMBOL_NAME(syscall_trace)
+#error bl SYMBOL_NAME(syscall_trace)
         b ret_slow_syscall
         
 
@@ -160,7 +160,7 @@
 __sys_trace:
         add r1, sp, #S_OFF
         mov r0, #0 @ trace entry [IP = 0]
- bl SYMBOL_NAME(syscall_trace)
+#error bl SYMBOL_NAME(syscall_trace)
 
         adrsvc al, lr, __sys_trace_return @ return address
         add r1, sp, #S_R0 + S_OFF @ pointer to regs
@@ -173,7 +173,7 @@
         str r0, [sp, #S_R0 + S_OFF]! @ save returned r0
         mov r1, sp
         mov r0, #1 @ trace exit [IP = 1]
- bl SYMBOL_NAME(syscall_trace)
+#error bl SYMBOL_NAME(syscall_trace)
         b ret_slow_syscall
 
         .align 5
diff -uNr linux-2.5.3-pre6/arch/arm/tools/getconstants.c linux-work-253p6/arch/arm/tools/getconstants.c
--- linux-2.5.3-pre6/arch/arm/tools/getconstants.c Tue Jan 22 09:07:03 2002
+++ linux-work-253p6/arch/arm/tools/getconstants.c Tue Jan 29 08:33:10 2002
@@ -37,10 +37,10 @@
 
 void func(void)
 {
-DEFN("TSK_SIGPENDING", OFF_TSK(sigpending));
+#error DEFN("TSK_SIGPENDING", OFF_TSK(sigpending));
 DEFN("TSK_ADDR_LIMIT", OFF_TSK(addr_limit));
-DEFN("TSK_NEED_RESCHED", OFF_TSK(need_resched));
-DEFN("TSK_PTRACE", OFF_TSK(ptrace));
+#error DEFN("TSK_NEED_RESCHED", OFF_TSK(need_resched));
+#error DEFN("TSK_PTRACE", OFF_TSK(ptrace));
 DEFN("TSK_USED_MATH", OFF_TSK(used_math));
 
 DEFN("TSS_SAVE", OFF_TSK(thread.save));
diff -uNr linux-2.5.3-pre6/arch/cris/kernel/entryoffsets.c linux-work-253p6/arch/cris/kernel/entryoffsets.c
--- linux-2.5.3-pre6/arch/cris/kernel/entryoffsets.c Tue Jan 22 09:07:06 2002
+++ linux-work-253p6/arch/cris/kernel/entryoffsets.c Tue Jan 29 08:33:10 2002
@@ -33,9 +33,9 @@
   VAL (NAME, offsetof (TYPE, MEMBER))
 
 /* task_struct offsets. */
-OF (LTASK_SIGPENDING, struct task_struct, sigpending)
-OF (LTASK_NEEDRESCHED, struct task_struct, need_resched)
-OF (LTASK_PTRACE, struct task_struct, ptrace)
+#error OF (LTASK_SIGPENDING, struct task_struct, sigpending)
+#error OF (LTASK_NEEDRESCHED, struct task_struct, need_resched)
+#error OF (LTASK_PTRACE, struct task_struct, ptrace)
 OF (LTASK_PID, struct task_struct, pid)
 
 /* pt_regs offsets. */
diff -uNr linux-2.5.3-pre6/arch/ia64/kernel/entry.S linux-work-253p6/arch/ia64/kernel/entry.S
--- linux-2.5.3-pre6/arch/ia64/kernel/entry.S Tue Jan 22 09:07:04 2002
+++ linux-work-253p6/arch/ia64/kernel/entry.S Tue Jan 29 08:33:10 2002
@@ -433,7 +433,7 @@
         .body
         mov loc2=b6
         ;;
- br.call.sptk.many rp=syscall_trace
+#error br.call.sptk.many rp=syscall_trace
 .ret3: mov rp=loc0
         mov ar.pfs=loc1
         mov b6=loc2
@@ -454,7 +454,7 @@
 
 GLOBAL_ENTRY(ia64_trace_syscall)
         PT_REGS_UNWIND_INFO(0)
- br.call.sptk.many rp=invoke_syscall_trace // give parent a chance to catch syscall args
+#error br.call.sptk.many rp=invoke_syscall_trace // give parent a chance to catch syscall args
 .ret6: br.call.sptk.many rp=b6 // do the syscall
 strace_check_retval:
         cmp.lt p6,p0=r8,r0 // syscall failed?
@@ -467,7 +467,7 @@
 .mem.offset 0,0; st8.spill [r2]=r8 // store return value in slot for r8
 .mem.offset 8,0; st8.spill [r3]=r10 // clear error indication in slot for r10
 ia64_strace_leave_kernel:
- br.call.sptk.many rp=invoke_syscall_trace // give parent a chance to catch return value
+#error br.call.sptk.many rp=invoke_syscall_trace // give parent a chance to catch return value
 .rety: br.cond.sptk ia64_leave_kernel
 
 strace_error:
@@ -530,14 +530,14 @@
 #ifdef CONFIG_PERFMON
 (pUser) ld8 r19=[r19] // load current->thread.pfm_must_block
 #endif
-(pUser) ld8 r17=[r17] // load current->need_resched
-(pUser) ld4 r18=[r18] // load current->sigpending
+#error (pUser) ld8 r17=[r17] // load current->need_resched
+#error (pUser) ld4 r18=[r18] // load current->sigpending
         ;;
 #ifdef CONFIG_PERFMON
 (pUser) cmp.ne.unc p9,p0=r19,r0 // current->thread.pfm_must_block != 0?
 #endif
-(pUser) cmp.ne.unc p7,p0=r17,r0 // current->need_resched != 0?
-(pUser) cmp.ne.unc p8,p0=r18,r0 // current->sigpending != 0?
+#error (pUser) cmp.ne.unc p7,p0=r17,r0 // current->need_resched != 0?
+#errror (pUser) cmp.ne.unc p8,p0=r18,r0 // current->sigpending != 0?
         ;;
         adds r2=PT(R8)+16,r12
         adds r3=PT(R9)+16,r12
@@ -816,7 +816,7 @@
         .spillpsp ar.unat, 16 // (note that offset is relative to psp+0x10!)
         st8 [sp]=r9,-16 // allocate space for ar.unat and save it
         .body
- br.call.sptk.many rp=ia64_do_signal
+#error br.call.sptk.many rp=ia64_do_signal
 .ret15: .restore sp
         adds sp=16,sp // pop scratch stack space
         ;;
diff -uNr linux-2.5.3-pre6/arch/ia64/tools/print_offsets.c linux-work-253p6/arch/ia64/tools/print_offsets.c
--- linux-2.5.3-pre6/arch/ia64/tools/print_offsets.c Tue Jan 22 09:07:05 2002
+++ linux-work-253p6/arch/ia64/tools/print_offsets.c Tue Jan 29 08:33:10 2002
@@ -51,9 +51,9 @@
     { "SIGFRAME_SIZE", sizeof (struct sigframe) },
     { "UNW_FRAME_INFO_SIZE", sizeof (struct unw_frame_info) },
     { "", 0 }, /* spacer */
- { "IA64_TASK_PTRACE_OFFSET", offsetof (struct task_struct, ptrace) },
- { "IA64_TASK_SIGPENDING_OFFSET", offsetof (struct task_struct, sigpending) },
- { "IA64_TASK_NEED_RESCHED_OFFSET", offsetof (struct task_struct, need_resched) },
+#error { "IA64_TASK_PTRACE_OFFSET", offsetof (struct task_struct, ptrace) },
+#error { "IA64_TASK_SIGPENDING_OFFSET", offsetof (struct task_struct, sigpending) },
+#error { "IA64_TASK_NEED_RESCHED_OFFSET", offsetof (struct task_struct, need_resched) },
     { "IA64_TASK_PROCESSOR_OFFSET", offsetof (struct task_struct, processor) },
     { "IA64_TASK_THREAD_OFFSET", offsetof (struct task_struct, thread) },
     { "IA64_TASK_THREAD_KSP_OFFSET", offsetof (struct task_struct, thread.ksp) },
diff -uNr linux-2.5.3-pre6/arch/m68k/kernel/m68k_defs.c linux-work-253p6/arch/m68k/kernel/m68k_defs.c
--- linux-2.5.3-pre6/arch/m68k/kernel/m68k_defs.c Tue Jan 22 09:06:55 2002
+++ linux-work-253p6/arch/m68k/kernel/m68k_defs.c Tue Jan 29 08:33:10 2002
@@ -25,8 +25,8 @@
         DEFINE(TASK_STATE, offsetof(struct task_struct, state));
         DEFINE(TASK_FLAGS, offsetof(struct task_struct, flags));
         DEFINE(TASK_PTRACE, offsetof(struct task_struct, ptrace));
- DEFINE(TASK_SIGPENDING, offsetof(struct task_struct, sigpending));
- DEFINE(TASK_NEEDRESCHED, offsetof(struct task_struct, need_resched));
+#error DEFINE(TASK_SIGPENDING, offsetof(struct task_struct, work.sigpending));
+#error DEFINE(TASK_NEEDRESCHED, offsetof(struct task_struct, work.need_resched));
         DEFINE(TASK_THREAD, offsetof(struct task_struct, thread));
         DEFINE(TASK_MM, offsetof(struct task_struct, mm));
         DEFINE(TASK_ACTIVE_MM, offsetof(struct task_struct, active_mm));
diff -uNr linux-2.5.3-pre6/arch/mips/kernel/entry.S linux-work-253p6/arch/mips/kernel/entry.S
--- linux-2.5.3-pre6/arch/mips/kernel/entry.S Tue Jan 22 09:06:51 2002
+++ linux-work-253p6/arch/mips/kernel/entry.S Tue Jan 29 08:33:10 2002
@@ -36,7 +36,7 @@
 EXPORT(ret_from_fork)
                 move a0, v0 # prev
                 jal schedule_tail
- lw t0, TASK_PTRACE($28) # syscall tracing enabled?
+#error lw t0, TASK_PTRACE($28) # syscall tracing enabled?
                 andi t0, PT_TRACESYS
                 bnez t0, tracesys_exit
                 j ret_from_sys_call
@@ -62,8 +62,8 @@
                 mtc0 t0, CP0_STATUS
                 nop; nop; nop
 
- lw v0, TASK_NEED_RESCHED($28)
- lw v1, TASK_SIGPENDING($28)
+#error lw v0, TASK_NEED_RESCHED($28)
+#error lw v1, TASK_SIGPENDING($28)
                 bnez v0, reschedule
                 bnez v1, signal_return
 restore_all: .set noat
@@ -80,7 +80,7 @@
 
                 move a0, zero
                 move a1, sp
- jal do_signal
+#error jal do_signal
                 b restore_all
 
 /*
diff -uNr linux-2.5.3-pre6/arch/mips/kernel/scall_o32.S linux-work-253p6/arch/mips/kernel/scall_o32.S
--- linux-2.5.3-pre6/arch/mips/kernel/scall_o32.S Tue Jan 22 09:06:51 2002
+++ linux-work-253p6/arch/mips/kernel/scall_o32.S Tue Jan 29 08:33:10 2002
@@ -49,7 +49,7 @@
 
 stack_done:
         sw a3, PT_R26(sp) # save for syscall restart
- lw t0, TASK_PTRACE($28) # syscall tracing enabled?
+#error lw t0, TASK_PTRACE($28) # syscall tracing enabled?
         andi t0, PT_TRACESYS
         bnez t0, trace_a_syscall
 
@@ -70,9 +70,9 @@
         xori t0, t0, 1
         mtc0 t0, CP0_STATUS
 
- lw t2, TASK_NEED_RESCHED($28)
+#error lw t2, TASK_NEED_RESCHED($28)
         bnez t2, o32_reschedule
- lw v0, TASK_SIGPENDING($28)
+#error lw v0, TASK_SIGPENDING($28)
         bnez v0, signal_return
 restore_all:
         RESTORE_SOME
@@ -88,7 +88,7 @@
 
         move a0, zero
         move a1, sp
- jal do_signal
+#error jal do_signal
         b restore_all
 
 o32_reschedule:
@@ -101,7 +101,7 @@
 trace_a_syscall:
         SAVE_STATIC
         sw t2, PT_R1(sp)
- jal syscall_trace
+#error jal syscall_trace
         lw t2, PT_R1(sp)
 
         lw a0, PT_R4(sp) # Restore argument registers
@@ -119,7 +119,7 @@
         sw v0, PT_R0(sp) # set flag for syscall restarting
 1: sw v0, PT_R2(sp) # result
 
- jal syscall_trace
+#error jal syscall_trace
         j ret_from_sys_call
 
 /* ------------------------------------------------------------------------ */
diff -uNr linux-2.5.3-pre6/arch/mips/kernel/smp.c linux-work-253p6/arch/mips/kernel/smp.c
--- linux-2.5.3-pre6/arch/mips/kernel/smp.c Tue Jan 22 09:06:51 2002
+++ linux-work-253p6/arch/mips/kernel/smp.c Tue Jan 29 08:33:10 2002
@@ -179,7 +179,7 @@
 
 static void reschedule_this_cpu(void *dummy)
 {
- current->need_resched = 1;
+ current->work.need_resched = 1;
 }
 
 void FASTCALL(smp_send_reschedule(int cpu))
diff -uNr linux-2.5.3-pre6/arch/mips/tools/offset.c linux-work-253p6/arch/mips/tools/offset.c
--- linux-2.5.3-pre6/arch/mips/tools/offset.c Tue Jan 22 09:06:51 2002
+++ linux-work-253p6/arch/mips/tools/offset.c Tue Jan 29 08:33:10 2002
@@ -79,9 +79,9 @@
         text("/* MIPS task_struct offsets. */");
         offset("#define TASK_STATE ", struct task_struct, state);
         offset("#define TASK_FLAGS ", struct task_struct, flags);
- offset("#define TASK_SIGPENDING ", struct task_struct, sigpending);
- offset("#define TASK_NEED_RESCHED ", struct task_struct, need_resched);
- offset("#define TASK_PTRACE ", struct task_struct, ptrace);
+#error offset("#define TASK_SIGPENDING ", struct task_struct, work.sigpending);
+#error offset("#define TASK_NEED_RESCHED ", struct task_struct, work.need_resched);
+#error offset("#define TASK_PTRACE ", struct task_struct, ptrace);
         offset("#define TASK_COUNTER ", struct task_struct, counter);
         offset("#define TASK_NICE ", struct task_struct, nice);
         offset("#define TASK_MM ", struct task_struct, mm);
diff -uNr linux-2.5.3-pre6/arch/mips64/kernel/entry.S linux-work-253p6/arch/mips64/kernel/entry.S
--- linux-2.5.3-pre6/arch/mips64/kernel/entry.S Tue Jan 22 09:07:05 2002
+++ linux-work-253p6/arch/mips64/kernel/entry.S Tue Jan 29 08:33:10 2002
@@ -17,7 +17,7 @@
 #include <asm/stackframe.h>
 
 /* This duplicates the definition from <linux/sched.h> */
-#define PT_TRACESYS 0x00000002 /* tracing system calls */
+#error #define PT_TRACESYS 0x00000002 /* tracing system calls */
 
 #define KU_USER 0x10
 
@@ -26,8 +26,8 @@
 FEXPORT(ret_from_fork)
                 move a0, v0 # prev
                 jal schedule_tail
- lw t0, TASK_PTRACE($28) # syscall tracing enabled?
- andi t0, PT_TRACESYS
+#error lw t0, TASK_PTRACE($28) # syscall tracing enabled?
+#error andi t0, PT_TRACESYS
                 bnez t0, tracesys_exit
                 j ret_from_sys_call
 
@@ -50,8 +50,8 @@
                 xori t0, t0, 1
                 mtc0 t0, CP0_STATUS
 
- ld v0, TASK_NEED_RESCHED($28)
- lw v1, TASK_SIGPENDING($28)
+#error ld v0, TASK_NEED_RESCHED($28)
+#error lw v1, TASK_SIGPENDING($28)
                 bnez v0, reschedule
                 bnez v1, signal_return
 
diff -uNr linux-2.5.3-pre6/arch/mips64/kernel/scall_64.S linux-work-253p6/arch/mips64/kernel/scall_64.S
--- linux-2.5.3-pre6/arch/mips64/kernel/scall_64.S Tue Jan 22 09:07:05 2002
+++ linux-work-253p6/arch/mips64/kernel/scall_64.S Tue Jan 29 08:33:10 2002
@@ -69,9 +69,9 @@
         ori t0, t0, 1
         mtc0 t0, CP0_STATUS
 
- ld t2, TASK_NEED_RESCHED($28)
+#error ld t2, TASK_NEED_RESCHED($28)
         bnez t2, reschedule
- lw v0, TASK_SIGPENDING($28)
+#error lw v0, TASK_SIGPENDING($28)
         bnez v0, signal_return
 
 restore_all:
diff -uNr linux-2.5.3-pre6/arch/mips64/kernel/scall_o32.S linux-work-253p6/arch/mips64/kernel/scall_o32.S
--- linux-2.5.3-pre6/arch/mips64/kernel/scall_o32.S Tue Jan 22 09:07:05 2002
+++ linux-work-253p6/arch/mips64/kernel/scall_o32.S Tue Jan 29 08:33:10 2002
@@ -22,7 +22,7 @@
 #include <asm/sysmips.h>
 
 /* This duplicates the definition from <linux/sched.h> */
-#define PT_TRACESYS 0x00000002 /* tracing system calls */
+#error #define PT_TRACESYS 0x00000002 /* tracing system calls */
 
 /* This duplicates the definition from <asm/signal.h> */
 #define SIGILL 4 /* Illegal instruction (ANSI). */
@@ -54,8 +54,8 @@
         bgez t0, stackargs
 
 stack_done:
- ld t0, TASK_PTRACE($28) # syscall tracing enabled?
- andi t0, PT_TRACESYS
+#error ld t0, TASK_PTRACE($28) # syscall tracing enabled?
+#error andi t0, PT_TRACESYS
                 bnez t0, trace_a_syscall
 
                 jalr t2 # Do The Real Thing (TM)
@@ -75,9 +75,9 @@
                 xori t0, t0, 1
                 mtc0 t0, CP0_STATUS
 
- ld t2, TASK_NEED_RESCHED($28)
+#error ld t2, TASK_NEED_RESCHED($28)
                 bnez t2, o32_reschedule
- lw v0, TASK_SIGPENDING($28)
+#error lw v0, TASK_SIGPENDING($28)
                 bnez v0, signal_return
 
 restore_all: RESTORE_SOME
@@ -92,7 +92,7 @@
                 move a0, zero
                 move a1, sp
                 SAVE_STATIC
- jal do_signal
+#error jal do_signal
 
 o32_reschedule:
                 SAVE_STATIC
@@ -130,7 +130,7 @@
         sd v0, PT_R0(sp) # set flag for syscall restarting
 1: sd v0, PT_R2(sp) # result
 
- jal syscall_trace
+#error jal syscall_trace
         j o32_ret_from_sys_call
 
 /* ------------------------------------------------------------------------ */
@@ -213,13 +213,13 @@
 1: sd v0, PT_R2(sp) # result
 
         /* Success, so skip usual error handling garbage. */
- ld t0, TASK_PTRACE($28) # syscall tracing enabled?
- andi t0, PT_TRACESYS
+#error ld t0, TASK_PTRACE($28) # syscall tracing enabled?
+#error andi t0, PT_TRACESYS
         bnez t0, 1f
         b o32_ret_from_sys_call
 
 1: SAVE_STATIC
- jal syscall_trace
+#error jal syscall_trace
         li a3, 0 # success
         j ret_from_sys_call
 
diff -uNr linux-2.5.3-pre6/arch/mips64/tools/offset.c linux-work-253p6/arch/mips64/tools/offset.c
--- linux-2.5.3-pre6/arch/mips64/tools/offset.c Tue Jan 22 09:07:05 2002
+++ linux-work-253p6/arch/mips64/tools/offset.c Tue Jan 29 08:33:10 2002
@@ -76,9 +76,9 @@
         text("/* MIPS task_struct offsets. */");
         offset("#define TASK_STATE ", struct task_struct, state);
         offset("#define TASK_FLAGS ", struct task_struct, flags);
- offset("#define TASK_SIGPENDING ", struct task_struct, sigpending);
- offset("#define TASK_NEED_RESCHED ", struct task_struct, need_resched);
- offset("#define TASK_PTRACE ", struct task_struct, ptrace);
+#error offset("#define TASK_SIGPENDING ", struct task_struct, sigpending);
+#error offset("#define TASK_NEED_RESCHED ", struct task_struct, need_resched);
+#error offset("#define TASK_PTRACE ", struct task_struct, ptrace);
         offset("#define TASK_COUNTER ", struct task_struct, counter);
         offset("#define TASK_NICE ", struct task_struct, nice);
         offset("#define TASK_MM ", struct task_struct, mm);
diff -uNr linux-2.5.3-pre6/arch/parisc/kernel/entry.S linux-work-253p6/arch/parisc/kernel/entry.S
--- linux-2.5.3-pre6/arch/parisc/kernel/entry.S Tue Jan 22 09:07:06 2002
+++ linux-work-253p6/arch/parisc/kernel/entry.S Tue Jan 29 08:33:10 2002
@@ -650,14 +650,14 @@
         copy %r30,%r1
         /* FIXME! depi below has hardcoded dependency on kernel stack size */
         depi 0,31,14,%r1 /* get task pointer */
- LDREG TASK_NEED_RESCHED(%r1),%r19 /* sched.h: long need_resched */
+#error LDREG TASK_NEED_RESCHED(%r1),%r19 /* sched.h: long need_resched */
         comib,<>,n 0,%r19,intr_do_resched /* forward */
 
 intr_check_sig:
         /* As above */
         copy %r30,%r1
         depi 0,31,14,%r1 /* get task pointer */
- ldw TASK_SIGPENDING(%r1),%r19 /* sched.h: int sigpending */
+#error ldw TASK_SIGPENDING(%r1),%r19 /* sched.h: int sigpending */
         comib,<>,n 0,%r19,intr_do_signal /* forward */
 
 intr_restore:
@@ -719,7 +719,7 @@
         copy %r0, %r24 /* unsigned long in_syscall */
         copy %r16, %r25 /* struct pt_regs *regs */
         ssm PSW_SM_I, %r0
- bl do_signal,%r2
+#error bl do_signal,%r2
         copy %r0, %r26 /* sigset_t *oldset = NULL */
 
         b intr_restore
@@ -1699,20 +1699,20 @@
 
         /* check for reschedule */
 
- LDREG TASK_NEED_RESCHED-TASK_SZ_ALGN-FRAME_SIZE(%r30),%r19 /* long */
+#error LDREG TASK_NEED_RESCHED-TASK_SZ_ALGN-FRAME_SIZE(%r30),%r19 /* long */
         comib,<>,n 0,%r19,syscall_do_resched /* forward */
 
 syscall_check_sig:
         ldo -TASK_SZ_ALGN-FRAME_SIZE(%r30),%r1 /* get task ptr */
         /* check for pending signals */
- ldw TASK_SIGPENDING(%r1),%r19
+#error ldw TASK_SIGPENDING(%r1),%r19
         comib,<>,n 0,%r19,syscall_do_signal /* forward */
 
 syscall_restore:
         /* disable interrupts while dicking with the kernel stack, */
         /* or life can become unpleasant */
         rsm PSW_SM_I, %r20
- LDREG TASK_PTRACE(%r1), %r19 /* Are we being ptraced? */
+#error LDREG TASK_PTRACE(%r1), %r19 /* Are we being ptraced? */
         bb,<,n %r19,31,syscall_restore_rfi
         LDREG TASK_PT_GR20(%r1),%r19
         mtctl %r19, %cr27
@@ -1840,7 +1840,7 @@
 
         ldi 1, %r24 /* unsigned long in_syscall */
 
- bl do_signal,%r2
+#error bl do_signal,%r2
         copy %r0, %r26 /* sigset_t *oldset = NULL */
 
         ldo -TASK_SZ_ALGN-FRAME_SIZE(%r30), %r1 /* reload task ptr */
diff -uNr linux-2.5.3-pre6/arch/parisc/tools/offset.c linux-work-253p6/arch/parisc/tools/offset.c
--- linux-2.5.3-pre6/arch/parisc/tools/offset.c Tue Jan 22 09:07:06 2002
+++ linux-work-253p6/arch/parisc/tools/offset.c Tue Jan 29 08:33:10 2002
@@ -241,11 +241,11 @@
         text("/* PARISC task_struct offsets. */");
         offset("#define TASK_STATE ", struct task_struct, state);
         offset("#define TASK_FLAGS ", struct task_struct, flags);
- offset("#define TASK_SIGPENDING ", struct task_struct, sigpending);
+#error offset("#define TASK_SIGPENDING ", struct task_struct, sigpending);
         offset("#define TASK_SEGMENT ", struct task_struct, addr_limit);
- offset("#define TASK_NEED_RESCHED ", struct task_struct, need_resched);
+#error offset("#define TASK_NEED_RESCHED ", struct task_struct, need_resched);
         offset("#define TASK_COUNTER ", struct task_struct, counter);
- offset("#define TASK_PTRACE ", struct task_struct, ptrace);
+#error offset("#define TASK_PTRACE ", struct task_struct, ptrace);
         offset("#define TASK_NICE ", struct task_struct, nice);
         offset("#define TASK_MM ", struct task_struct, mm);
         offset("#define TASK_PROCESSOR ", struct task_struct, processor);
diff -uNr linux-2.5.3-pre6/arch/ppc/kernel/entry.S linux-work-253p6/arch/ppc/kernel/entry.S
--- linux-2.5.3-pre6/arch/ppc/kernel/entry.S Tue Jan 22 09:06:53 2002
+++ linux-work-253p6/arch/ppc/kernel/entry.S Tue Jan 29 08:33:10 2002
@@ -261,9 +261,9 @@
         .globl ret_from_fork
 ret_from_fork:
         bl schedule_tail
- lwz r0,TASK_PTRACE(r2)
+#error lwz r0,TASK_PTRACE(r2)
         andi. r0,r0,PT_TRACESYS
- bnel- syscall_trace
+#error bnel- syscall_trace
         b ret_from_except
 
         .globl ret_from_intercept
@@ -279,16 +279,16 @@
         lwz r3,_MSR(r1) /* Returning to user mode? */
         andi. r3,r3,MSR_PR
         beq+ do_signal_ret /* if so, check need_resched and signals */
- lwz r3,NEED_RESCHED(r2)
+#error lwz r3,NEED_RESCHED(r2)
         cmpi 0,r3,0 /* check need_resched flag */
         beq+ 7f
         bl schedule
-7: lwz r5,SIGPENDING(r2) /* Check for pending unblocked signals */
+#error 7: lwz r5,SIGPENDING(r2) /* Check for pending unblocked signals */
         cmpwi 0,r5,0
         beq+ do_signal_ret
         li r3,0
         addi r4,r1,STACK_FRAME_OVERHEAD
- bl do_signal
+#error bl do_signal
         .globl do_signal_ret
 do_signal_ret:
         .globl ret_to_user_hook
diff -uNr linux-2.5.3-pre6/arch/ppc/kernel/mk_defs.c linux-work-253p6/arch/ppc/kernel/mk_defs.c
--- linux-2.5.3-pre6/arch/ppc/kernel/mk_defs.c Tue Jan 22 09:06:53 2002
+++ linux-work-253p6/arch/ppc/kernel/mk_defs.c Tue Jan 29 08:33:10 2002
@@ -39,7 +39,7 @@
         DEFINE(NEXT_TASK, offsetof(struct task_struct, next_task));
         DEFINE(COUNTER, offsetof(struct task_struct, counter));
         DEFINE(PROCESSOR, offsetof(struct task_struct, processor));
- DEFINE(SIGPENDING, offsetof(struct task_struct, sigpending));
+#error DEFINE(SIGPENDING, offsetof(struct task_struct, sigpending));
         DEFINE(THREAD, offsetof(struct task_struct, thread));
         DEFINE(MM, offsetof(struct task_struct, mm));
         DEFINE(ACTIVE_MM, offsetof(struct task_struct, active_mm));
@@ -50,8 +50,8 @@
         DEFINE(PT_REGS, offsetof(struct thread_struct, regs));
         DEFINE(PT_TRACESYS, PT_TRACESYS);
         DEFINE(TASK_FLAGS, offsetof(struct task_struct, flags));
- DEFINE(TASK_PTRACE, offsetof(struct task_struct, ptrace));
- DEFINE(NEED_RESCHED, offsetof(struct task_struct, need_resched));
+#error DEFINE(TASK_PTRACE, offsetof(struct task_struct, ptrace));
+#error DEFINE(NEED_RESCHED, offsetof(struct task_struct, need_resched));
         DEFINE(THREAD_FPR0, offsetof(struct thread_struct, fpr[0]));
         DEFINE(THREAD_FPSCR, offsetof(struct thread_struct, fpscr));
 #ifdef CONFIG_ALTIVEC
diff -uNr linux-2.5.3-pre6/arch/ppc/kernel/smp.c linux-work-253p6/arch/ppc/kernel/smp.c
--- linux-2.5.3-pre6/arch/ppc/kernel/smp.c Tue Jan 22 09:06:53 2002
+++ linux-work-253p6/arch/ppc/kernel/smp.c Tue Jan 29 08:33:10 2002
@@ -106,7 +106,7 @@
                 smp_call_function_interrupt();
                 break;
         case PPC_MSG_RESCHEDULE:
- current->need_resched = 1;
+ current->work.need_resched = 1;
                 break;
         case PPC_MSG_INVALIDATE_TLB:
                 _tlbia();
diff -uNr linux-2.5.3-pre6/arch/s390/kernel/entry.S linux-work-253p6/arch/s390/kernel/entry.S
--- linux-2.5.3-pre6/arch/s390/kernel/entry.S Tue Jan 22 09:07:06 2002
+++ linux-work-253p6/arch/s390/kernel/entry.S Tue Jan 29 08:33:10 2002
@@ -76,9 +76,9 @@
  */
 state = 0
 flags = 4
-sigpending = 8
-need_resched = 24
-tsk_ptrace = 28
+#error sigpending = 8
+#error need_resched = 24
+#error tsk_ptrace = 28
 processor = 56
 
 /*
@@ -218,7 +218,7 @@
         stosm 24(%r15),0x03 # reenable interrupts
         sll %r8,2
         l %r8,sys_call_table-entry_base(8,%r13) # get address of system call
- tm tsk_ptrace+3(%r9),0x02 # PT_TRACESYS
+#error tm tsk_ptrace+3(%r9),0x02 # PT_TRACESYS
         bnz BASED(sysc_tracesys)
         basr %r14,%r8 # call sys_xxxx
         st %r2,SP_R2(%r15) # store return value (change R2 on stack)
@@ -231,9 +231,9 @@
 #
 # check, if reschedule is needed
 #
- icm %r0,15,need_resched(%r9) # get need_resched from task_struct
+#error icm %r0,15,need_resched(%r9) # get need_resched from task_struct
         bnz BASED(sysc_reschedule)
- icm %r0,15,sigpending(%r9) # get sigpending from task_struct
+#error icm %r0,15,sigpending(%r9) # get sigpending from task_struct
         bnz BASED(sysc_signal_return)
 sysc_leave:
         tm SP_PGM_OLD_ILC(%r15),0xff
@@ -744,9 +744,9 @@
 #
 # check, if reschedule is needed
 #
- icm %r0,15,need_resched(%r9) # get need_resched from task_struct
+#error icm %r0,15,need_resched(%r9) # get need_resched from task_struct
         bnz BASED(io_reschedule)
- icm %r0,15,sigpending(%r9) # get sigpending from task_struct
+#error icm %r0,15,sigpending(%r9) # get sigpending from task_struct
         bnz BASED(io_signal_return)
 io_leave:
         stnsm 24(%r15),0xfc # disable I/O and ext. interrupts
@@ -874,7 +874,7 @@
  */
 .Ls390_mcck: .long s390_do_machine_check
 .Ldo_IRQ: .long do_IRQ
-.Ldo_signal: .long do_signal
+#error .Ldo_signal: .long do_signal
 .Ldo_softirq: .long do_softirq
 .Lentry_base: .long entry_base
 .Lext_hash: .long ext_int_hash
@@ -891,7 +891,7 @@
 .Lsigreturn: .long sys_sigreturn
 .Lsigsuspend: .long sys_sigsuspend
 .Lsigaltstack: .long sys_sigaltstack
-.Ltrace: .long syscall_trace
+#error .Ltrace: .long syscall_trace
 .Lvfork: .long sys_vfork
 
 #ifdef CONFIG_SMP
diff -uNr linux-2.5.3-pre6/arch/s390x/kernel/entry.S linux-work-253p6/arch/s390x/kernel/entry.S
--- linux-2.5.3-pre6/arch/s390x/kernel/entry.S Tue Jan 22 09:07:06 2002
+++ linux-work-253p6/arch/s390x/kernel/entry.S Tue Jan 29 08:33:10 2002
@@ -76,9 +76,9 @@
  */
 state = 0
 flags = 8
-sigpending = 16
-need_resched = 32
-tsk_ptrace = 40
+#error sigpending = 16
+#error need_resched = 32
+#error tsk_ptrace = 40
 processor = 92
 
 /*
@@ -220,10 +220,10 @@
 #
 # check, if reschedule is needed
 #
- lg %r0,need_resched(%r9) # get need_resched from task_struct
+#error lg %r0,need_resched(%r9) # get need_resched from task_struct
         ltgr %r0,%r0
         jnz sysc_reschedule
- icm %r0,15,sigpending(%r9) # get sigpending from task_struct
+#error icm %r0,15,sigpending(%r9) # get sigpending from task_struct
         jnz sysc_signal_return
 sysc_leave:
         tm SP_PGM_OLD_ILC(%r15),0xff
@@ -246,7 +246,7 @@
 sysc_tracesys:
         lghi %r2,-ENOSYS
         stg %r2,SP_R2(%r15) # give sysc_trace an -ENOSYS retval
- brasl %r14,syscall_trace
+#error brasl %r14,syscall_trace
         lg %r2,SP_R2(%r15)
         cghi %r2,-ENOSYS
         je sysc_tracesys_dn1
@@ -263,7 +263,7 @@
         basr %r14,%r8 # call sys_xxx
         stg %r2,SP_R2(%r15) # store return value
         larl %r14,sysc_return
- jg syscall_trace # return point is sysc_return
+#error jg syscall_trace # return point is sysc_return
 
 #
 # call schedule with sysc_return as return-address
@@ -734,10 +734,10 @@
 #
 # check, if reschedule is needed
 #
- lg %r0,need_resched(%r9) # get need_resched from task_struct
+#error lg %r0,need_resched(%r9) # get need_resched from task_struct
         ltgr %r0,%r0
         jnz io_reschedule
- icm %r0,15,sigpending(%r9) # get sigpending from task_struct
+#error icm %r0,15,sigpending(%r9) # get sigpending from task_struct
         jnz io_signal_return
 io_leave:
         stnsm 48(%r15),0xfc # disable I/O and ext. interrupts
diff -uNr linux-2.5.3-pre6/arch/sh/kernel/entry.S linux-work-253p6/arch/sh/kernel/entry.S
--- linux-2.5.3-pre6/arch/sh/kernel/entry.S Tue Jan 29 08:19:23 2002
+++ linux-work-253p6/arch/sh/kernel/entry.S Tue Jan 29 08:33:10 2002
@@ -61,11 +61,11 @@
  * These are offsets into the task-struct.
  */
 flags = 4
-sigpending = 8
-need_resched = 20
-tsk_ptrace = 24
+#error sigpending = 8
+#error need_resched = 20
+#error tsk_ptrace = 24
 
-PT_TRACESYS = 0x00000002
+#error PT_TRACESYS = 0x00000002
 
 ENOSYS = 38
 EINVAL = 22
@@ -300,8 +300,8 @@
         ! If we're being traced, return via syscall_ret_trace, otherwise
         ! return directly to ret_from_syscall
         stc k_current, r0
- mov.l @(tsk_ptrace,r0), r0 ! Is current PTRACE_SYSCALL'd?
- mov #PT_TRACESYS, r1
+#error mov.l @(tsk_ptrace,r0), r0 ! Is current PTRACE_SYSCALL'd?
+#error mov #PT_TRACESYS, r1
         tst r1, r0
         bt ret_from_syscall
         bra syscall_ret_trace
@@ -371,8 +371,8 @@
         STI()
         !
         stc k_current, r11
- mov.l @(tsk_ptrace,r11), r10 ! Is current PTRACE_SYSCALL'd?
- mov #PT_TRACESYS, r11
+#error mov.l @(tsk_ptrace,r11), r10 ! Is current PTRACE_SYSCALL'd?
+#error mov #PT_TRACESYS, r11
         tst r11, r10
         bt 5f
         ! Yes it is traced.
@@ -497,7 +497,7 @@
         .align 2
 __TRA: .long TRA
 __syscall_trace:
- .long SYMBOL_NAME(syscall_trace)
+#error .long SYMBOL_NAME(syscall_trace)
 __n_sys:.long NR_syscalls
 __sct: .long SYMBOL_NAME(sys_call_table)
 __syscall_ret_trace:
@@ -545,10 +545,10 @@
         ldc r0, sr
         !
         stc k_current, r1
- mov.l @(need_resched,r1), r0
+#error mov.l @(need_resched,r1), r0
         tst r0, r0
         bf reschedule
- mov.l @(sigpending,r1), r0
+#error mov.l @(sigpending,r1), r0
         tst r0, r0
         bt restore_all
 signal_return:
@@ -560,7 +560,7 @@
          lds r0, pr
         .align 2
 __do_signal:
- .long SYMBOL_NAME(do_signal)
+#error .long SYMBOL_NAME(do_signal)
 __irq_stat:
         .long SYMBOL_NAME(irq_stat)
 
diff -uNr linux-2.5.3-pre6/arch/sparc/kernel/rtrap.S linux-work-253p6/arch/sparc/kernel/rtrap.S
--- linux-2.5.3-pre6/arch/sparc/kernel/rtrap.S Tue Jan 22 09:06:50 2002
+++ linux-work-253p6/arch/sparc/kernel/rtrap.S Tue Jan 29 08:33:10 2002
@@ -58,15 +58,15 @@
          nop
 
 1:
- ld [%curptr + AOFF_task_need_resched], %g2
+#error ld [%curptr + AOFF_task_need_resched], %g2
         orcc %g2, %g0, %g0
         be signal_p
- ld [%curptr + AOFF_task_sigpending], %g2
+#error ld [%curptr + AOFF_task_sigpending], %g2
 
         call C_LABEL(schedule)
          nop
 
- ld [%curptr + AOFF_task_sigpending], %g2
+#error ld [%curptr + AOFF_task_sigpending], %g2
 signal_p:
         cmp %g2, 0
         bz,a ret_trap_continue
@@ -98,7 +98,7 @@
          add %sp, REGWIN_SZ, %o0
 
         b signal_p
- ld [%curptr + AOFF_task_sigpending], %g2
+#error ld [%curptr + AOFF_task_sigpending], %g2
 
 ret_trap_nobufwins:
         /* Load up the user's out registers so we can pull
@@ -168,7 +168,7 @@
          nop
 
         b signal_p
- ld [%curptr + AOFF_task_sigpending], %g2
+#error ld [%curptr + AOFF_task_sigpending], %g2
 
 ret_trap_kernel:
                 /* Will the rett land us in the invalid window? */
@@ -218,7 +218,7 @@
          add %sp, REGWIN_SZ, %o0
 
         b signal_p
- ld [%curptr + AOFF_task_sigpending], %g2
+#error ld [%curptr + AOFF_task_sigpending], %g2
 
         .globl C_LABEL(sun4c_rett_stackchk)
 C_LABEL(sun4c_rett_stackchk):
diff -uNr linux-2.5.3-pre6/arch/sparc/kernel/smp.c linux-work-253p6/arch/sparc/kernel/smp.c
--- linux-2.5.3-pre6/arch/sparc/kernel/smp.c Tue Jan 29 08:19:23 2002
+++ linux-work-253p6/arch/sparc/kernel/smp.c Tue Jan 29 08:33:10 2002
@@ -247,7 +247,7 @@
 /* Reschedule call back. */
 void smp_reschedule_irq(void)
 {
- current->need_resched = 1;
+ current->work.need_resched = 1;
 }
 
 /* Stopping processors. */
diff -uNr linux-2.5.3-pre6/arch/sparc64/kernel/process.c linux-work-253p6/arch/sparc64/kernel/process.c
--- linux-2.5.3-pre6/arch/sparc64/kernel/process.c Tue Jan 29 08:19:23 2002
+++ linux-work-253p6/arch/sparc64/kernel/process.c Tue Jan 29 08:33:10 2002
@@ -54,7 +54,7 @@
 
         /* endless idle loop with no priority at all */
         for (;;) {
- /* If current->need_resched is zero we should really
+ /* If current->work.need_resched is zero we should really
                  * setup for a system wakup event and execute a shutdown
                  * instruction.
                  *
diff -uNr linux-2.5.3-pre6/arch/sparc64/kernel/rtrap.S linux-work-253p6/arch/sparc64/kernel/rtrap.S
--- linux-2.5.3-pre6/arch/sparc64/kernel/rtrap.S Tue Jan 22 09:06:56 2002
+++ linux-work-253p6/arch/sparc64/kernel/rtrap.S Tue Jan 29 08:33:10 2002
@@ -42,14 +42,14 @@
                  wrpr %g0, RTRAP_PSTATE, %pstate
                 wrpr %g0, RTRAP_PSTATE_IRQOFF, %pstate
                 /* Redo sched+sig checks */
- ldx [%g6 + AOFF_task_need_resched], %l0
+#error ldx [%g6 + AOFF_task_need_resched], %l0
                 brz,pt %l0, 1f
                  nop
                 call schedule
 
                  wrpr %g0, RTRAP_PSTATE, %pstate
                 wrpr %g0, RTRAP_PSTATE_IRQOFF, %pstate
-1: lduw [%g6 + AOFF_task_sigpending], %l0
+#error1: lduw [%g6 + AOFF_task_sigpending], %l0
                 brz,pt %l0, __handle_user_windows_continue
                  nop
                 clr %o0
@@ -82,14 +82,14 @@
                 call fault_in_user_windows
                  wrpr %g0, RTRAP_PSTATE, %pstate
                 wrpr %g0, RTRAP_PSTATE_IRQOFF, %pstate
-1: ldx [%g6 + AOFF_task_need_resched], %l0
+#error 1: ldx [%g6 + AOFF_task_need_resched], %l0
                 brz,pt %l0, 1f
                  nop
                 call schedule
                  wrpr %g0, RTRAP_PSTATE, %pstate
 
                 wrpr %g0, RTRAP_PSTATE_IRQOFF, %pstate
-1: lduw [%g6 + AOFF_task_sigpending], %l0
+#error 1: lduw [%g6 + AOFF_task_sigpending], %l0
                 brz,pt %l0, __handle_perfctrs_continue
                  sethi %hi(TSTATE_PEF), %o0
                 clr %o0
@@ -173,9 +173,9 @@
                  */
 to_user: wrpr %g0, RTRAP_PSTATE_IRQOFF, %pstate
 __handle_preemption_continue:
- ldx [%g6 + AOFF_task_need_resched], %l0
+#error ldx [%g6 + AOFF_task_need_resched], %l0
                 brnz,pn %l0, __handle_preemption
- lduw [%g6 + AOFF_task_sigpending], %l0
+#error lduw [%g6 + AOFF_task_sigpending], %l0
                 brnz,pn %l0, __handle_signal
                  nop
 __handle_signal_continue:
-
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/



This archive was generated by hypermail 2b29 : Thu Jan 31 2002 - 21:01:03 EST