hm, i just noticed that in vmx_vcpu_run() KVM restores %fs quite late. 

This is a bit awkward under v2.6.21 x86 because there we use %fs for the 
KERNEL_PDA area. Things like 'current' rely on it. So maybe we should 
just do this unconditionally in assembly:

        movl $(__KERNEL_PDA), %edx;
        movl %edx, %fs

it's also a problem with -rt too, which has that whole codepath up to 
the load_fs() call preemptible.

i'm also wondering about this bit:

        kvm_run->exit_type = 0;
        if (fail) {
                kvm_run->exit_type = KVM_EXIT_TYPE_FAIL_ENTRY;
                kvm_run->exit_reason = vmcs_read32(VM_INSTRUCTION_ERROR);
                kvm_cr3_cache_sync(vcpu);
                r = 0;
        } else {
                if (fs_gs_ldt_reload_needed) {
                        load_ldt(ldt_sel);
                        load_fs(fs_sel);

are you sure we dont need an FS reload in the 'fail' case?

        Ingo

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to