view xen/TODO @ 922:fc5ae656dd1e

bitkeeper revision 1.582.1.2 (3fafc1a8WtDmHzijhEouIqSThPp1nA)

Fixes to xen_netwatch.
author kaf24@scramble.cl.cam.ac.uk
date Mon Nov 10 16:49:44 2003 +0000 (2003-11-10)
parents 3aa0265ba99b
line source
2 This is stuff we probably want to implement in the near future.
4 -- Keir (16/3/03)
8 -----------------------------
9 A better control daemon is required for domain 0, which keeps proper
10 track of machine resources and can make sensible policy choices. This
11 may require support in Xen; for example, notifications (eg. DOMn is
12 killed), and requests (eg. can DOMn allocate x frames of memory?).
15 ----------------------------------
16 More intelligent assignment of domains to processors. In
17 particular, we don't play well with hyperthreading: we will assign
18 domains to virtual processors on the same package, rather then
19 spreading them across processor packages.
21 What we need to do is port code from Linux which stores information on
22 relationships between processors in the system (eg. which ones are
23 siblings in the same package). We then use this to balance domains
24 across packages, and across virtual processors within a package.
27 -----------------------
28 The current virtual firewall/router is completely broken. Needs a new
29 design and implementation!
33 Graveyard
34 *********
36 The hypervisor page cache
37 -------------------------
38 This will allow guest OSes to make use of spare pages in the system, but
39 allow them to be immediately used for any new domains or memory requests.
40 The idea is that, when a page is laundered and falls off Linux's clean_LRU
41 list, rather than freeing it it becomes a candidate for passing down into
42 the hypervisor. In return, xeno-linux may ask for one of its previously-
43 cached pages back:
44 (page, new_id) = cache_query(page, old_id);
45 If the requested page couldn't be kept, a blank page is returned.
46 When would Linux make the query? Whenever it wants a page back without
47 the delay or going to disc. Also, whenever a page would otherwise be
48 flushed to disc.
50 To try and add to the cache: (blank_page, new_id) = cache_query(page, NULL);
51 [NULL means "give me a blank page"].
52 To try and retrieve from the cache: (page, new_id) = cache_query(x_page, id)
53 [we may request that x_page just be discarded, and therefore not impinge
54 on this domain's cache quota].