RE: [CHECKER] large stack variables (>=1K) in 2.4.4 and 2.4.4-ac8

Dunlap, Randy
2001-05-25T04:25:55Z

> From: Andrew Morton [mailto:andrewm@uow.edu.au]
>
> Andreas Dilger wrote:
> >
> > On a side note, does anyone know if the kernel does checking if the
> > stack overflowed at any time?
>
> There's a little bit of code in show_task() which calculates
> how close this task ever got to overrunning its kernel stack:
>
> {
> unsigned long * n = (unsigned long *) (p+1);
> while (!*n)
> n++;
> free = (unsigned long) n - (unsigned long)(p+1);
> }
> printk("%5lu %5d %6d ", free, p->pid, p->p_pptr->pid);
>
> SYSRQ-T will trigger this.
>
> However it doesn't work, because do_fork() doesn't zero
> out the stack pages when they're created.

If do_fork() performance is an issue, at least clearing the stack
pages as a build option would be nice for some of us.

~Randy