tripple fault problem

tripple fault problem

Ritratto di alexander_t

I've made a very simple hypervisor. It works at one CPU, at base of Windows7 x64 and has no usefull functionality.
I can not solve two big problem:
1) If I run it at one CPU, I've got a tripple fault after some success VM exits. But if i set "int 3" at begin of non-root code after vmlaunch - host OS works almost very well.
2) If I try to repeat starting VMM at every CPU - I'v got a freezing and then random fatal error.

I suggest, I've done something wrong around interrupt tuning and has corrupt interrupt handling on the host

At startup I initialize VMCS member:

__vmx_vmwrite( VMCS_CONTROL_ENTRY_INTERRUPT_INFO, 0 );
__vmx_vmwrite( VMCS_CONTROL_ENTRY_EXCEPTION_ERROR, 0 );
__vmx_vmwrite( VMCS_CONTROL_ENTRY_INSTRUCTION_LENGTH, 0 );

__vmx_vmwrite( VMCS_GUEST_INTERRUPT_INFO, 0 );
__vmx_vmwrite( VMCS_GUEST_ACTIVITY_STATE, 0 );

I try to sratup hypervisor from working thread, IPI routine, DPC routine - the result is the same

What can be wrong?

2 post / 0 new
Ultimo contenuto
Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione
Ritratto di alexander_t

Solved

There was a bug in code in host selectors limit's initialization - I did not extend limit due "Granularity" bit in selector attributes

Accedere per lasciare un commento.