Re: SATA_SIL works with 2.6.7-bk8 seagate drive, but oops

From: Linus Torvalds
Date: Fri Jun 25 2004 - 18:18:35 EST




On Fri, 25 Jun 2004, George Georgalis wrote:
>
> However at about 3Gb (if that is relevant) top segfaulted with a
> non critical oops. top will not restart, but the box is otherwise
> functioning well considering the write load.

Ok, this is unlikely to be SATA-related, unless SATA just happened to
corrupt something really strange.

> Unable to handle kernel NULL pointer dereference at virtual address 000000b4
> printing eip:
> c017c78a
> *pde = 00000000
> Oops: 0000 [#1]
> PREEMPT
> CPU: 0
> EIP: 0060:[<c017c78a>] Not tainted
> EFLAGS: 00010286 (2.6.7-sta-bk8)
> EIP is at pid_alive+0xa/0x30

That's "p->pids[PIDTYPE_PID].pidptr", and it looks like "p" is NULL.

That in turn _shouldn't_ happen, since that comes from

struct task_struct *task = proc_task(inode);

and proc_task() should always be non-NULL for any /proc file that has one
of the pid-based dentry ops.

> Could this be related to "Unknown HZ value! (91) Assume 100." which
> started showing up with VIA motherboards on 2.5.x (I think) on top or ps
> commands. When I researched it before, It never caused ill, had been
> identified as a "kernel bug" but benign. I know nothing more.

No, that's just a pstools bug. It shouldn't try to guess HZ at all.

> ATM, ps also seg faults, here is a corresponding oops,

Same problem. One of your existing /proc/<xxx>/ directories has a NULL
"task" pointer, and that really shouldn't happen.

Hmm. I do worry that maybe it's the SATA thing that has written NULL
somewhere, since the /proc code never clears that field once it is set
(and it would always be set by the code that creates the inode in the
first place).

Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/