TODO: Difference between revisions
From KVM
(kvm_mmu_post_write()) |
(move mmu stuff to own section) |
||
Line 5: | Line 5: | ||
* Real mode support: VT support for real mode is terrible, so we need to do it in software. This means extending the x86 emulator (x86_emulate.c) to handle more instructions, and changing the execution loop to call the emulator for real mode. | * Real mode support: VT support for real mode is terrible, so we need to do it in software. This means extending the x86 emulator (x86_emulate.c) to handle more instructions, and changing the execution loop to call the emulator for real mode. | ||
* Fedora kernel package: packaging kernel modules is a rather arcane stuff. We already have volunteers for openSUSE and Debian; we need packages for Fedora. | * Fedora kernel package: packaging kernel modules is a rather arcane stuff. We already have volunteers for openSUSE and Debian; we need packages for Fedora. | ||
The following smaller scale tasks can be a nice entry point to someone wishing to get involved: | The following smaller scale tasks can be a nice entry point to someone wishing to get involved: | ||
Line 13: | Line 11: | ||
* Avoid saving/loading the floating point unit state on each vm entry/exit (Anthony Liguori has partially working code). | * Avoid saving/loading the floating point unit state on each vm entry/exit (Anthony Liguori has partially working code). | ||
* Trap #UD and emulate sysenter/syscall/sysret/sysexit. These instructions don't exist on all cpus in all modes, so they hinder cross-vendor migration | * Trap #UD and emulate sysenter/syscall/sysret/sysexit. These instructions don't exist on all cpus in all modes, so they hinder cross-vendor migration | ||
MMU related: | |||
* Attach kvm memory to a Linux address_space so that guest memory can be paged out. | |||
* Improve mmu page eviction algorithm (currently FIFO, change to approximate LRU). | |||
* Implement kvm_mmu_post_write() so that page table updates don't take an immediate page fault after the write. | |||
For the adventurous: | For the adventurous: | ||
* Emulate the VT and SVM instructions, so that kvm can run in a virtual machine. Test by running a VM in a VT guest in an SVM guest on VT hardware, as well as running a VM in an SVM guest in a VT guest on SVM hardware. | * Emulate the VT and SVM instructions, so that kvm can run in a virtual machine. Test by running a VM in a VT guest in an SVM guest on VT hardware, as well as running a VM in an SVM guest in a VT guest on SVM hardware. | ||
__NOTOC__ | __NOTOC__ |
Revision as of 08:03, 10 March 2007
TODO
The following items need some love. Please post to the list if you are interested in helping out:
- Real mode support: VT support for real mode is terrible, so we need to do it in software. This means extending the x86 emulator (x86_emulate.c) to handle more instructions, and changing the execution loop to call the emulator for real mode.
- Fedora kernel package: packaging kernel modules is a rather arcane stuff. We already have volunteers for openSUSE and Debian; we need packages for Fedora.
The following smaller scale tasks can be a nice entry point to someone wishing to get involved:
- Enforce the virtual time stamp counter monotonicity even when a vcpu is migrated to another physical cpu. (in progress, Leonard Norrgård)
- Avoid saving/loading the floating point unit state on each vm entry/exit (Anthony Liguori has partially working code).
- Trap #UD and emulate sysenter/syscall/sysret/sysexit. These instructions don't exist on all cpus in all modes, so they hinder cross-vendor migration
MMU related:
- Attach kvm memory to a Linux address_space so that guest memory can be paged out.
- Improve mmu page eviction algorithm (currently FIFO, change to approximate LRU).
- Implement kvm_mmu_post_write() so that page table updates don't take an immediate page fault after the write.
For the adventurous:
- Emulate the VT and SVM instructions, so that kvm can run in a virtual machine. Test by running a VM in a VT guest in an SVM guest on VT hardware, as well as running a VM in an SVM guest in a VT guest on SVM hardware.