81 lines
2.5 KiB
Plaintext
Raw Normal View History

Main monitor loop should compare cycles burned thus far vs
cycles requested, so it doesn't keep bopping back and forth
between host-kernel and monitor spaces without returning to
user space.
2003-01-02 02:11:40 +00:00
Fix monPrint and friends.
2003-01-02 17:05:47 +00:00
monpanic breaks up into 2 monprints which hit user space twice.
2003-01-02 02:11:40 +00:00
Could put the GDT/LDT in linear memory where the guest
2003-01-02 17:05:47 +00:00
expects them.
2003-01-02 02:11:40 +00:00
Synchronize page writes with iCache in bochs.
Deal with cycle counts of guest execution in VM, and in
bochs/plex86 shim.
Deal with page_usage. How do we update this between timeslices?
Do we always clear it? Maybe we should keep a log of things to
clear (page_usage, GDT entries, PDE entries, ...) and clear those
before returning to user space.
2003-01-02 17:05:47 +00:00
GDT entries for guest need to be cleared upon return from guest
execution, or just cleared before invocation of the guest.
Task segment must be a 32-bit'er.
Save/restore floating point state of host/VM.
deduct off some cycles for the IRET/int sequence.
2003-01-02 17:05:47 +00:00
Conditions for bochs compile using plex86:
- Not compiled for debug
- x86 host
- Not PCI supported (for now).
2003-01-02 17:05:47 +00:00
paging-mon.c: We can eliminate any code other than CPL==3.
2003-01-02 17:05:47 +00:00
Fix extra PDBR reload in nexus.S
2003-01-02 17:05:47 +00:00
Manipulation/reading of host page tables needs to be SMP/preempt
compatible. Need to do spin-lock (big kernel lock for old Linux)
on vma.
==================== From previous plex86 TODO file ====================
This is a list of the major tasks/achievements/milestones yet to-do.
We should keep this list prioritized, creating sort of a road map.
Hopefully, this will reduce duplicate suggestions on the developers
channels, and let people know where we are in the development process.
Entries listed first have highest priority.
<NEAR-TERM>
- Fix plex86 on Linux 2.4.x/SMP or with 1P and LAPIC enabled.
- Save FPU state on host <--> monitor context switch.
- Special guest-specific drivers and special emulated pseudo-devices
for faster graphics/network/disk access.
- Allow some of the inactive guest pages be host swappable.
Currently, all pages are locked down.
- Many performance enhancements (see PERFORMANCE)
- Allow memory to be mapped anywhere in the physical address
space.
- Allow certain guest pages to be swap eligible by the host.
This means they will have to be unavailable by the guest
during that time. Need a dynamic algorith for this.
- Test on 2.4 with SMP/APIC enabled on single processor machine.
- Deal with guest use of TF.
- Deal with LDT
unallocVmPages/unreserve_guest_pages called twice,
release & teardown.