I have a question about trap handling in UML kernel, particularly in the skas0 mode.
My understanding is that, UML will fork a kernel thread for each user process and
this thread will go to a loop (in userspace()) and wait for signal from user process using
ptrace. If a signal occurs, it will call the signal handler to handle the interrupt.
Is it correct?
My second question is, how many kernel threads are there in skas0 mode or I should
ask how many different kinds of kernel threads will be created? Is there any kernel thread
in UML other than those created for user process?
My last question is, given a kernel thread, if it is possible that the execution of a thread will
be interrupted by others other than by scheduler?