On Thu May 03, 2018 at 11:18:03 +0800, nico.hacker wrote:
> The previous test is not enough to cause error, this error is not related to 
> peripherals, I have removed almost all peripheral drivers<br /><br />In the 
> previous test, I added a delay operation before the vm2 start, so that vm1 
> completely up and then start vm2, this will greatly reduce the probability of 
> the error. Now I removed this delay, vm1 and vm2 started simultaneously, then 
> the error will occur frequently (about 1/10 probability). The error is 
> generated when kernel processes vtimer interrupts. Under normal 
> circumstances, after processing a vtimer interrupt, the vcpu thread will 
> return to uvmm and then execute prepare_guest_entry(). This operation will 
> eventually enter the kernel through the system call to set the state of vcpu 
> thread, but when the error occurs, I find that the vcpu thread does not 
> execute vcpu_resume, it processes two consecutive vtimer interrupts. As a 
> result, the assertion fails.

Ok, I see. I've never experienced this, however I will try running VMs
aggressivly concurrent and see what happens.

> Is the kernel able to guarantee that the complete process of handling vgic 
> and vtimer interrupts (including the process in uvmm) is not interrupted by a 
> new interrupt?

Yes, this is supposed to be the case.

> Here's my configuration:

You're aware that you seem to give both VMs access to the same UART
device? (Will probably have nothing to do with the assertion.)




Adam

_______________________________________________
l4-hackers mailing list
l4-hackers@os.inf.tu-dresden.de
http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers

Reply via email to