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