Here is a question about the details happening during system call.
However, one thing surprises me that the TSS maintains different stacks for different priviliges. That is, codes running in user mode and system mode are using different stack context.
Since system call is actually a function call, why couldn't we just reuse the user stack and just create a new stack frame for that?