Date: Fri, 12 Jan 2001 11:18:53 +0530 (IST) From: Mohana Krishna Penumetcha <pmk@sasi.com> To: Julian Elischer <julian@elischer.org> Cc: freebsd-hackers@FreeBSD.ORG Subject: Re: kernel debugging!!! Message-ID: <Pine.LNX.4.10.10101121107070.1850-100000@pcs113.sasi.com> In-Reply-To: <3A5DCFE0.D52CD8E6@elischer.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 11 Jan 2001, Julian Elischer wrote: > Mohana Krishna Penumetcha wrote: > > > > > * Mohana Krishna Penumetcha <pmk@sasi.com> [010111 03:08] wrote: > > > > > > > > > > > > > Afaik, on i386 you have ~4k of kernel stack, however you have to > > > > > realize that driver entry can come from an interrupt generated when > > > > > the stack is already nearly exhausted. I'm not really that much > > > > > of a driver programmer, but I've heard of people facing this problem > > > > > before, solutions varied, but since each driver instance is single > > > > > threaded you can pre-allocate via malloc (i think) the space you > > > > > need and attach it to the per-driver data structure (softc afaik). > > > > > > > > i am confused between the kernel stack in kernel space (where ISRs > > > > are called) and kernel stack each process has. the UPAGES constant > > > > defines the size of process kernel stack. does it define kernel stack in > > > > kernel space also?? (fig 3.1, page 51, BSD book) > > > > > > > > BTW, memory for softc is allocated from the heap in newbus > > > > architecture. > > > > > > I'm pretty sure interrupts are piggybacked on the user-kernel-stack. > > > > > > > this is o.k. when the system is up and running. but what about > > boot-up time when there is no process, is there any stack meant for > > this? > > > There is always a stack for you..(there is an idle stack for just this case). that means this idle stack is used during boot up time. and what will kernel do when there is no curproc i.e. all processes are in sleep/waitng for some event?? can you give me some pointers?? BTW, i need some pointers about how to use the information given by DDB, basically instruction,stack, base pointers, registers etc. in our case DDB is n't showing any stack trace. it is printing a stack trace which either starts from one on its internal routines or from trap. thanks, mohan 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.LNX.4.10.10101121107070.1850-100000>