about multi core and vt
Posted: Thu Aug 28, 2014 8:26 pm
Hi, i know maybe this is not the right place to ask my question, but i have been stuck for a long time, still do not know how to solve and where to ask.
my projectis to develop a Virtualization system base on Intel-VT. now, my purpose is run Ubuntu 14.04 on one core(BSP), a another Real Time OS on another(AP).
Both OS share the same VMM.
I can run Ubuntu 14.04 on BSP correctly,here is my steps:
1)boot with Ubuntu 14.04
2)start my char device driver.
3)initialize VMCS;set guest to Ubuntu, host to my VMM;enable EPT with 1-to-1 map, set ept memory type according to the MTRR.
4)execute vmlaunch.
At this time, Ubuntu seems OK, and VMM can handle a lot of VM-Exit.
My next step is run Real Time OS and Ubuntu simultaneously,here is my steps.
1)boot with Ubuntu 14.04
2)start my char device driver.
3)initialize VMCS;enable EPT with 1-to-1 map, set ept memory type according to the MTRR.
4)execute vmlaunch.
when cpu 0(which run Ubuntu) exit to VMM, I start to initialize the cpu 1(which i want to run real time os):
1)send a IPI to cpu1
2)initialize the cpu1, copy the MTRR and PAT from CPU 0.
3)initialize VMCS;set guest to RTOS, host to my VMM(the same with Ubuntu, but with different stack);enable EPT with 1-to-1 map, set ept memory type according to the MTRR.
4)execute vmlaunch.
At this time, my problem came out, I can see the RTOS runs correctly, but Ubuntu hangs(No any response on the screen).
I can assure the Two OS in different memory section, and the RTOS do not modify any hardware settings.
hope some one could give me some tips.
my projectis to develop a Virtualization system base on Intel-VT. now, my purpose is run Ubuntu 14.04 on one core(BSP), a another Real Time OS on another(AP).
Both OS share the same VMM.
I can run Ubuntu 14.04 on BSP correctly,here is my steps:
1)boot with Ubuntu 14.04
2)start my char device driver.
3)initialize VMCS;set guest to Ubuntu, host to my VMM;enable EPT with 1-to-1 map, set ept memory type according to the MTRR.
4)execute vmlaunch.
At this time, Ubuntu seems OK, and VMM can handle a lot of VM-Exit.
My next step is run Real Time OS and Ubuntu simultaneously,here is my steps.
1)boot with Ubuntu 14.04
2)start my char device driver.
3)initialize VMCS;enable EPT with 1-to-1 map, set ept memory type according to the MTRR.
4)execute vmlaunch.
when cpu 0(which run Ubuntu) exit to VMM, I start to initialize the cpu 1(which i want to run real time os):
1)send a IPI to cpu1
2)initialize the cpu1, copy the MTRR and PAT from CPU 0.
3)initialize VMCS;set guest to RTOS, host to my VMM(the same with Ubuntu, but with different stack);enable EPT with 1-to-1 map, set ept memory type according to the MTRR.
4)execute vmlaunch.
At this time, my problem came out, I can see the RTOS runs correctly, but Ubuntu hangs(No any response on the screen).
I can assure the Two OS in different memory section, and the RTOS do not modify any hardware settings.
hope some one could give me some tips.