File: TODO

package info (click to toggle)
bochs 2.3-2etch1
  • links: PTS
  • area: main
  • in suites: etch
  • size: 14,116 kB
  • ctags: 16,927
  • sloc: cpp: 130,524; ansic: 18,822; sh: 7,922; makefile: 3,836; yacc: 1,056; asm: 463; perl: 381; lex: 280; csh: 3
file content (80 lines) | stat: -rw-r--r-- 2,600 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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.

Fix monPrint and friends.
monpanic breaks up into 2 monprints which hit user space twice.

Could put the GDT/LDT in linear memory where the guest
  expects them.

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.

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.

Conditions for bochs compile using plex86:
  - Not compiled for debug
  - x86 host
  - Not PCI supported (for now).

paging-mon.c:  We can eliminate any code other than CPL==3.

Fix extra PDBR reload in nexus.S

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.