Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 Jul 2001 12:07:47 -0400 (EDT)
From:      Zhihui Zhang <zzhang@cs.binghamton.edu>
To:        msmith@freebsd.org, "Eugene L. Vorokov" <vel@bugz.infotecs.ru>
Cc:        freebsd-hackers@FreeBSD.ORG
Subject:   Re: using syscalls in a module (stack problem ?)
Message-ID:  <Pine.SOL.4.21.0107231201570.15045-100000@opal>
In-Reply-To: <200107231346.f6NDkh403679@bugz.infotecs.ru>

next in thread | previous in thread | raw e-mail | index | archive | help

Just out of curiosity, Linux's kernel stack is one page. Where in the
kernel source code that says that we can have two pages instead of one
page kernel stack?

-Zhihui


On Mon, 23 Jul 2001, Eugene L. Vorokov wrote:

> > > I call this function with (curproc, PATH_MAX+1), and everything is fine
> > > when I have just a few local variables defined in the caller (it all
> > > works on MOD_LOAD only). However, if I have 2 buffers, 4096 bytes each,
> > > as local variables and then try to allocate userspace memory the same
> > > way, kernel crashes - sometimes inside mmap(), sometimes a bit later.
> > > 
> > > Why could this happen ? Is it related to possible stack overflow ?
> > 
> > Yes.  The kernel stack is only two pages; you absolutely must not use 
> > large local variables in the kernel.
> 
> I see. But I still can define them using "static", right ?
> 
> Regards,
> Eugene
> 
> 
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-hackers" in the body of the message
> 


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.SOL.4.21.0107231201570.15045-100000>