[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