Messages in this thread | | | Date | Thu, 26 Mar 1998 00:19:10 +0100 (CET) | From | Andrea Arcangeli <> | Subject | Re: 2.0.33 oops, non-fatal, comments anyone? [EIP traced] |
| |
On Wed, 25 Mar 1998, Chris Evans wrote:
>Mar 25 02:56:55 ferret kernel: EIP: 0010:[schedule+384/652]
The Oops is in goodness() (linux/kernel/sched.c) in the underlined line:
static inline int goodness(struct task_struct * p, struct task_struct * prev, int this_cpu) { int weight;
#ifdef __SMP__ /* We are not permitted to run a task someone else is running */ if (p->processor != NO_PROC_ID) return -1000; #ifdef PAST_2_0 /* This process is locked to a processor group */ if (p->processor_mask && !(p->processor_mask & (1<<this_cpu)) return -1000; #endif #endif
/* * Realtime process, select the first one on the * runqueue (taking priorities within processes * into account). */ if (p->policy != SCHED_OTHER) ^^^^^^^^^^^^^^^^^^^^^^^^ return 1000 + p->rt_priority;
The p->policy doesn' t exists (the p pointer is corrupted). It shouldn' t be NULL since the Oops say "general protection: 0000" and not NULL pointer derefence of something similar... Am I right here?
The interesting thing is that in patch-2.0.30 happen this:
- if (p->counter > current->counter + 3) + if (p->policy != SCHED_OTHER || p->counter > current->counter + 3)
2.0.29 should 100% Oops too ;-).........
>Mar 25 02:56:56 ferret kernel: Call Trace: [do_select+133/484] >[do_select+397/484] [sys_select+387/596] [udp_rcv+956/976] >[ip_rcv+1091/1396] [old_select+63/80] [system_call+85/124]
I will continue to trace the Oops tomorrow (or when I will have some time.....).
Andrea[s] Arcangeli
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu
| |