Does a single thread application have only one stack?
No, the application has a user stack per thread, but it also has a kernel stack
per thread. Kernel can not trust user rsp
value to be good and need its own
separate stack for when e.g. the application performs system calls.
A more profound explanation can be seen at: https://stackoverflow.com/questions/12911841/kernel-stack-and-user-space-stack