Hi,
On Fri Mar 24, 2017 at 22:48:03 +0100, Marc CHALAND wrote:
2017-03-22 23:45 GMT+01:00 Adam Lackorzynski adam@os.inf.tu-dresden.de:
Basically the vCPU model is an asynchronous execution model, that is very similar to an actual CPU. I.e. you have vCPU that executes code and that has an entry vector that is being jumped to whenever the vCPU shall get an event (both asynchronous interrupts and synchronous exceptions). To prevent diverting to the entry code there's a virtual interrupt flag, i.e. if virtual interrupts are off, no message/interrupt will be posted. Based on that multi-threading in the vCPU is implemented, i.e. some timer triggers an interrupts, which in turn triggers some scheduling code running in the vCPU which in turn does some stack switching. You can also look into this paper http://os.inf.tu-dresden.de/papers_ps/rtlws2010_genericvirt.pdf
So, in that case, I have to implement my own scheduler to run it into one vCPU ? We don't have the code of the old scheduler.
Ah, you don't have a scheduler. You don't need to use a vCPU, you can also use a thread with its known semantics. That still works as it used to work.
Adam