[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: About Kernel Backtrace



I am debugging a network driver bug in a platform with ARM 9 processor, and
putting my debgging code, that is BUG() in somewhere. However, I have
several questions about Kernel Stack when the kernel path is in softirq.
After reading the chpater 3 in Understanding the Linux Kernel book. I
realize that Kernel stack should be located within the the process desriptor
structure

Not really - the process descriptor (task_struct) USED TO reside at the end of kernel mode stack. But these days, a smaller struct thread_info resides at the end of kernel stack (Again, stack is not "located" within thread_info or task_struct)

when the user mode process is calling the system call. However,
there are not any descriptions about where the ISR and SoftIRQ kernel stack
are. Could you please give me a clue to the interrupt and ISR context swtich
in kernel mode?

If you've configured your kernel to have a stack size of 2 pages (which is standard) then your ISRs and softirqs etc will use the same kernel mode stack. However, if you have configured the kernel stack to be 1 page, then there will be a separate per CPU stack which will be shared by all ISRs

Thanks,

Rajat

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ