diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-07-11 02:32:09 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-07-11 02:32:09 +0000 |
commit | 7f5ea64ad438953cbeb3055f424dfac01d5bcfc7 (patch) | |
tree | f8cabc30da0d0eaa578cb6369c816e02af148510 /arch | |
parent | 99e873a7003ab3980a6296c29066e3ab7956a009 (diff) |
Merge with Linux 2.4.0-test3.
Diffstat (limited to 'arch')
27 files changed, 45 insertions, 49 deletions
diff --git a/arch/alpha/kernel/process.c b/arch/alpha/kernel/process.c index 27b042777..81d85386d 100644 --- a/arch/alpha/kernel/process.c +++ b/arch/alpha/kernel/process.c @@ -74,7 +74,7 @@ void cpu_idle(void) { /* An endless idle loop with no priority at all. */ - current->priority = 0; + current->nice = 20; current->counter = -100; while (1) { diff --git a/arch/alpha/kernel/smp.c b/arch/alpha/kernel/smp.c index b812e2c64..b00e7d79b 100644 --- a/arch/alpha/kernel/smp.c +++ b/arch/alpha/kernel/smp.c @@ -651,7 +651,7 @@ smp_percpu_timer_interrupt(struct pt_regs *regs) } if (user) { - if (current->priority < DEF_PRIORITY) { + if (current->nice > 0) { kstat.cpu_nice++; kstat.per_cpu_nice[cpu]++; } else { diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index cab969c5c..f281f7337 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c @@ -75,7 +75,7 @@ void cpu_idle(void) { /* endless idle loop with no priority at all */ init_idle(); - current->priority = 0; + current->nice = 20; current->counter = -100; while (1) { diff --git a/arch/i386/defconfig b/arch/i386/defconfig index 068aceaf2..35444fef3 100644 --- a/arch/i386/defconfig +++ b/arch/i386/defconfig @@ -45,6 +45,7 @@ CONFIG_NOHIGHMEM=y # CONFIG_MATH_EMULATION is not set # CONFIG_MTRR is not set CONFIG_SMP=y +CONFIG_HAVE_DEC_LOCK=y # # Loadable module support @@ -141,14 +142,10 @@ CONFIG_INET=y # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE is not set # CONFIG_IP_ALIAS is not set +# CONFIG_INET_ECN is not set # CONFIG_SYN_COOKIES is not set # -# (it is safe to leave these untouched) -# -CONFIG_SKB_LARGE=y - -# # # # CONFIG_IPX is not set diff --git a/arch/i386/kernel/apic.c b/arch/i386/kernel/apic.c index 88d571654..0600d91a9 100644 --- a/arch/i386/kernel/apic.c +++ b/arch/i386/kernel/apic.c @@ -589,7 +589,7 @@ static inline void handle_smp_time (int user, int cpu) p->counter = 0; p->need_resched = 1; } - if (p->priority < DEF_PRIORITY) { + if (p->nice > 0) { kstat.cpu_nice += user; kstat.per_cpu_nice[cpu] += user; } else { diff --git a/arch/i386/kernel/entry.S b/arch/i386/kernel/entry.S index 660a9e1fb..da7fd047d 100644 --- a/arch/i386/kernel/entry.S +++ b/arch/i386/kernel/entry.S @@ -77,8 +77,8 @@ sigpending = 8 addr_limit = 12 exec_domain = 16 need_resched = 20 -processor = 48 -tsk_ptrace = 56 +tsk_ptrace = 24 +processor = 52 ENOSYS = 38 diff --git a/arch/i386/kernel/process.c b/arch/i386/kernel/process.c index e240cc79a..83ec9d192 100644 --- a/arch/i386/kernel/process.c +++ b/arch/i386/kernel/process.c @@ -123,7 +123,7 @@ void cpu_idle (void) { /* endless idle loop with no priority at all */ init_idle(); - current->priority = 0; + current->nice = 20; current->counter = -100; while (1) { diff --git a/arch/i386/kernel/time.c b/arch/i386/kernel/time.c index a009a428b..4bb184112 100644 --- a/arch/i386/kernel/time.c +++ b/arch/i386/kernel/time.c @@ -79,7 +79,7 @@ static unsigned long last_tsc_low; /* lsb 32 bits of Time Stamp Counter */ unsigned long fast_gettimeoffset_quotient=0; extern rwlock_t xtime_lock; -extern volatile unsigned long lost_ticks; +extern unsigned long wall_jiffies; spinlock_t rtc_lock = SPIN_LOCK_UNLOCKED; @@ -262,7 +262,7 @@ void do_gettimeofday(struct timeval *tv) read_lock_irqsave(&xtime_lock, flags); usec = do_gettimeoffset(); { - unsigned long lost = lost_ticks; + unsigned long lost = jiffies - wall_jiffies; if (lost) usec += lost * (1000000 / HZ); } @@ -282,14 +282,14 @@ void do_gettimeofday(struct timeval *tv) void do_settimeofday(struct timeval *tv) { write_lock_irq(&xtime_lock); - /* This is revolting. We need to set the xtime.tv_usec - * correctly. However, the value in this location is - * is value at the last tick. - * Discover what correction gettimeofday - * would have done, and then undo it! + /* + * This is revolting. We need to set "xtime" correctly. However, the + * value in this location is the value at the most recent update of + * wall time. Discover what correction gettimeofday() would have + * made, and then undo it! */ tv->tv_usec -= do_gettimeoffset(); - tv->tv_usec -= lost_ticks * (1000000 / HZ); + tv->tv_usec -= (jiffies - wall_jiffies) * (1000000 / HZ); while (tv->tv_usec < 0) { tv->tv_usec += 1000000; diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c index 58ad3c21c..30bfcf101 100644 --- a/arch/ia64/kernel/process.c +++ b/arch/ia64/kernel/process.c @@ -114,7 +114,7 @@ cpu_idle (void *unused) { /* endless idle loop with no priority at all */ init_idle(); - current->priority = 0; + current->nice = 20; current->counter = -100; #ifdef CONFIG_SMP diff --git a/arch/ia64/kernel/smp.c b/arch/ia64/kernel/smp.c index e6f0f36fe..f6ae656e4 100644 --- a/arch/ia64/kernel/smp.c +++ b/arch/ia64/kernel/smp.c @@ -412,7 +412,7 @@ smp_do_timer(struct pt_regs *regs) } if (user) { - if (current->priority < DEF_PRIORITY) { + if (current->nice > 0) { kstat.cpu_nice++; kstat.per_cpu_nice[cpu]++; } else { diff --git a/arch/m68k/kernel/process.c b/arch/m68k/kernel/process.c index 030b3e136..ef4a49339 100644 --- a/arch/m68k/kernel/process.c +++ b/arch/m68k/kernel/process.c @@ -81,7 +81,7 @@ void cpu_idle(void) { /* endless idle loop with no priority at all */ init_idle(); - current->priority = 0; + current->nice = 20; current->counter = -100; idle(); } diff --git a/arch/mips/kernel/irixelf.c b/arch/mips/kernel/irixelf.c index ee22aec9d..db8bb8698 100644 --- a/arch/mips/kernel/irixelf.c +++ b/arch/mips/kernel/irixelf.c @@ -1156,7 +1156,7 @@ static int irix_core_dump(long signr, struct pt_regs * regs, struct file *file) psinfo.pr_state = i; psinfo.pr_sname = (i < 0 || i > 5) ? '.' : "RSDZTD"[i]; psinfo.pr_zomb = psinfo.pr_sname == 'Z'; - psinfo.pr_nice = current->priority-15; + psinfo.pr_nice = current->nice; psinfo.pr_flag = current->flags; psinfo.pr_uid = current->uid; psinfo.pr_gid = current->gid; diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c index 2353515b9..a5a630769 100644 --- a/arch/mips/kernel/process.c +++ b/arch/mips/kernel/process.c @@ -34,7 +34,7 @@ void cpu_idle(void) { /* endless idle loop with no priority at all */ - current->priority = 0; + current->nice = 20; current->counter = -100; init_idle(); diff --git a/arch/mips/kernel/time.c b/arch/mips/kernel/time.c index 8de389a50..43a9c9a8e 100644 --- a/arch/mips/kernel/time.c +++ b/arch/mips/kernel/time.c @@ -25,7 +25,7 @@ #include <linux/mc146818rtc.h> #include <linux/timex.h> -extern volatile unsigned long lost_ticks; +extern volatile unsigned long wall_jiffies; unsigned long r4k_interval = 0; extern rwlock_t xtime_lock; @@ -226,10 +226,10 @@ void do_gettimeofday(struct timeval *tv) tv->tv_usec += do_gettimeoffset(); /* - * xtime is atomically updated in timer_bh. lost_ticks is - * nonzero if the timer bottom half hasnt executed yet. + * xtime is atomically updated in timer_bh. jiffies - wall_jiffies + * is nonzero if the timer bottom half hasnt executed yet. */ - if (lost_ticks) + if (jiffies - wall_jiffies) tv->tv_usec += USECS_PER_JIFFY; read_unlock_irqrestore (&xtime_lock, flags); diff --git a/arch/mips/tools/offset.c b/arch/mips/tools/offset.c index b76281d64..2e2af434e 100644 --- a/arch/mips/tools/offset.c +++ b/arch/mips/tools/offset.c @@ -81,7 +81,7 @@ void output_task_defines(void) offset("#define TASK_SIGPENDING ", struct task_struct, sigpending); offset("#define TASK_NEED_RESCHED ", struct task_struct, need_resched); offset("#define TASK_COUNTER ", struct task_struct, counter); - offset("#define TASK_PRIORITY ", struct task_struct, priority); + offset("#define TASK_NICE ", struct task_struct, nice); offset("#define TASK_MM ", struct task_struct, mm); size("#define TASK_STRUCT_SIZE ", struct task_struct); linefeed; diff --git a/arch/mips64/kernel/process.c b/arch/mips64/kernel/process.c index 22ce0ed6d..ade972d6b 100644 --- a/arch/mips64/kernel/process.c +++ b/arch/mips64/kernel/process.c @@ -35,7 +35,7 @@ asmlinkage int cpu_idle(void) { /* endless idle loop with no priority at all */ init_idle(); - current->priority = 0; + current->nice = 20; current->counter = -100; while (1) { while (!current->need_resched) diff --git a/arch/mips64/sgi-ip27/ip27-timer.c b/arch/mips64/sgi-ip27/ip27-timer.c index a6bcdcc95..9a88ca83d 100644 --- a/arch/mips64/sgi-ip27/ip27-timer.c +++ b/arch/mips64/sgi-ip27/ip27-timer.c @@ -38,7 +38,7 @@ static unsigned long ct_cur[NR_CPUS]; /* What counter should be at next timer ir static long last_rtc_update = 0; /* Last time the rtc clock got updated */ extern rwlock_t xtime_lock; -extern volatile unsigned long lost_ticks; +extern volatile unsigned long wall_jiffies; static int set_rtc_mmss(unsigned long nowtime) @@ -120,7 +120,7 @@ again: } if (user) { - if (current->priority < DEF_PRIORITY) { + if (current->nice > 0) { inc = &kstat.cpu_nice; inc2 = &kstat.per_cpu_nice[cpu]; } else { @@ -175,7 +175,7 @@ void do_gettimeofday(struct timeval *tv) read_lock_irqsave(&xtime_lock, flags); usec = do_gettimeoffset(); { - unsigned long lost = lost_ticks; + unsigned long lost = jiffies - wall_jiffies; if (lost) usec += lost * (1000000 / HZ); } @@ -196,7 +196,7 @@ void do_settimeofday(struct timeval *tv) { write_lock_irq(&xtime_lock); tv->tv_usec -= do_gettimeoffset(); - tv->tv_usec -= lost_ticks * (1000000 / HZ); + tv->tv_usec -= (jiffies - wall_jiffies) * (1000000 / HZ); while (tv->tv_usec < 0) { tv->tv_usec += 1000000; diff --git a/arch/mips64/tools/offset.c b/arch/mips64/tools/offset.c index a8833e216..6fec8d313 100644 --- a/arch/mips64/tools/offset.c +++ b/arch/mips64/tools/offset.c @@ -1,10 +1,9 @@ -/* $Id: offset.c,v 1.4 1999/12/04 03:59:01 ralf Exp $ - * +/* * offset.c: Calculate pt_regs and task_struct offsets. * * Copyright (C) 1996 David S. Miller - * Copyright (C) 1997, 1998, 1999 Ralf Baechle - * Copyright (C) 1999 Silicon Graphics, Inc. + * Copyright (C) 1997, 1998, 1999, 2000 Ralf Baechle + * Copyright (C) 1999, 2000 Silicon Graphics, Inc. */ #include <linux/types.h> #include <linux/sched.h> @@ -80,7 +79,7 @@ void output_task_defines(void) offset("#define TASK_SIGPENDING ", struct task_struct, sigpending); offset("#define TASK_NEED_RESCHED ", struct task_struct, need_resched); offset("#define TASK_COUNTER ", struct task_struct, counter); - offset("#define TASK_PRIORITY ", struct task_struct, priority); + offset("#define TASK_NICE ", struct task_struct, nice); offset("#define TASK_MM ", struct task_struct, mm); offset("#define TASK_PROCESSOR ", struct task_struct, processor); size("#define TASK_STRUCT_SIZE ", struct task_struct); diff --git a/arch/ppc/kernel/smp.c b/arch/ppc/kernel/smp.c index 78157554d..176a47ca5 100644 --- a/arch/ppc/kernel/smp.c +++ b/arch/ppc/kernel/smp.c @@ -95,7 +95,7 @@ void smp_local_timer_interrupt(struct pt_regs * regs) p->counter = 0; current->need_resched = 1; } - if (p->priority < DEF_PRIORITY) { + if (p->nice > 0) { kstat.cpu_nice += user; kstat.per_cpu_nice[cpu] += user; } else { diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c index 33e8092cf..93d4dff76 100644 --- a/arch/s390/kernel/process.c +++ b/arch/s390/kernel/process.c @@ -59,7 +59,7 @@ int cpu_idle(void *unused) { /* endless idle loop with no priority at all */ init_idle(); - current->priority = 0; + current->nice = 20; current->counter = -100; wait_psw.mask = _WAIT_PSW_MASK; wait_psw.addr = (unsigned long) &&idle_wakeup | 0x80000000L; diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c index e8b975070..8f72782d2 100644 --- a/arch/s390/kernel/smp.c +++ b/arch/s390/kernel/smp.c @@ -712,7 +712,7 @@ void smp_local_timer_interrupt(struct pt_regs * regs) p->counter = 0; p->need_resched = 1; } - if (p->priority < DEF_PRIORITY) { + if (p->nice > 0) { kstat.cpu_nice += user; kstat.per_cpu_nice[cpu] += user; } else { diff --git a/arch/sh/kernel/process.c b/arch/sh/kernel/process.c index acefb5e4f..6a949883c 100644 --- a/arch/sh/kernel/process.c +++ b/arch/sh/kernel/process.c @@ -63,7 +63,7 @@ void cpu_idle(void *unused) { /* endless idle loop with no priority at all */ init_idle(); - current->priority = 0; + current->nice = 20; current->counter = -100; while (1) { diff --git a/arch/sparc/kernel/process.c b/arch/sparc/kernel/process.c index e18d91e0e..ae76ef0e0 100644 --- a/arch/sparc/kernel/process.c +++ b/arch/sparc/kernel/process.c @@ -60,7 +60,7 @@ int cpu_idle(void) goto out; /* endless idle loop with no priority at all */ - current->priority = 0; + current->nice = 20; current->counter = -100; init_idle(); diff --git a/arch/sparc/kernel/sun4d_smp.c b/arch/sparc/kernel/sun4d_smp.c index ac9caa27f..79ea6061e 100644 --- a/arch/sparc/kernel/sun4d_smp.c +++ b/arch/sparc/kernel/sun4d_smp.c @@ -484,7 +484,7 @@ void smp4d_percpu_timer_interrupt(struct pt_regs *regs) } if(user) { - if(current->priority < DEF_PRIORITY) { + if(current->nice > 0) { kstat.cpu_nice++; kstat.per_cpu_nice[cpu]++; } else { diff --git a/arch/sparc/kernel/sun4m_smp.c b/arch/sparc/kernel/sun4m_smp.c index f0e046db3..289d746bd 100644 --- a/arch/sparc/kernel/sun4m_smp.c +++ b/arch/sparc/kernel/sun4m_smp.c @@ -471,7 +471,7 @@ void smp4m_percpu_timer_interrupt(struct pt_regs *regs) } if(user) { - if(current->priority < DEF_PRIORITY) { + if(current->nice > 0) { kstat.cpu_nice++; kstat.per_cpu_nice[cpu]++; } else { diff --git a/arch/sparc64/kernel/process.c b/arch/sparc64/kernel/process.c index dd8b8274d..732c6975b 100644 --- a/arch/sparc64/kernel/process.c +++ b/arch/sparc64/kernel/process.c @@ -53,7 +53,7 @@ int cpu_idle(void) return -EPERM; /* endless idle loop with no priority at all */ - current->priority = 0; + current->nice = 20; current->counter = -100; init_idle(); diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c index 40b12eb6a..acd65f3f2 100644 --- a/arch/sparc64/kernel/smp.c +++ b/arch/sparc64/kernel/smp.c @@ -717,7 +717,7 @@ void smp_percpu_timer_interrupt(struct pt_regs *regs) } if (user) { - if (current->priority < DEF_PRIORITY) { + if (current->nice > 0) { inc = &kstat.cpu_nice; inc2 = &kstat.per_cpu_nice[cpu]; } else { |