According to the highlighted text followed, a new virtual process is created and it will save the state of the blocking thread, then the upcall handler schedules another thread that is eligible to run on "the" new virtual processor.
So my question is: Is that "the" new virtual processor now contains the states information of the thread that was "relinquished"? Why this current running thread should contain the information of the one that was relinquished? Or does it mean that the upcall handler just uses the new virtual process to save those information to "other" space?
In short, where those states information are stored?
I'm reading Operating System Concept, 9th ed., SILBERSCHATZ, page 188