307 and each thread's user side stack follows. On ARM processors the stack is |
307 and each thread's user side stack follows. On ARM processors the stack is |
308 descending, so that as items are added to the stack, the stack pointer is |
308 descending, so that as items are added to the stack, the stack pointer is |
309 decremented. This means that if the stack overflows, the stack pointer points |
309 decremented. This means that if the stack overflows, the stack pointer points |
310 into the guard area and causes a processor exception, with the result that |
310 into the guard area and causes a processor exception, with the result that |
311 the kernel panics the thread. </p> <fig id="GUID-C87444AA-A8DC-5A5C-B2E6-B15FA69B6CE1"> |
311 the kernel panics the thread. </p> <fig id="GUID-C87444AA-A8DC-5A5C-B2E6-B15FA69B6CE1"> |
312 <image href="GUID-DD0DA06D-4180-54F1-8807-A7BF31D6A1F1_d0e303518_href.png" placement="inline"/> |
312 <image href="GUID-DD0DA06D-4180-54F1-8807-A7BF31D6A1F1_d0e301355_href.png" placement="inline"/> |
313 </fig> <p>Return addresses are stored by pushing them on to the stack so at |
313 </fig> <p>Return addresses are stored by pushing them on to the stack so at |
314 any point you can trace through the stack looking at the saved return addresses |
314 any point you can trace through the stack looking at the saved return addresses |
315 to see the chain of function calls up to the present function. </p> <p>The |
315 to see the chain of function calls up to the present function. </p> <p>The |
316 size of the user-side stack space has an indirect effect on the number of |
316 size of the user-side stack space has an indirect effect on the number of |
317 threads that a process can have. There are other factors involved, but this |
317 threads that a process can have. There are other factors involved, but this |