ia64/xen-unstable

view xen/include/xlat.lst @ 18394:dade7f0bdc8d

hvm: Use main memory for video memory.

When creating an HVM domain, if e.g. another domain is created before
qemu allocates video memory, the extra 8MB memory ballooning is not
available any more, because it got consumed by the other domain.

This fixes it by taking video memory from the main memory:

- make hvmloader use e820_malloc to reserve some of the main memory
and notify ioemu of its address through the Xen platform PCI card.
- add XENMAPSPACE_mfn to the xen_add_to_physmap memory op, to allow
ioemu to move the MFNs between the original position and the PCI
mapping, when LFB acceleration is disabled/enabled
- add a remove_from_physmap memory op, to allow ioemu to unmap it
completely for the case of old guests with acceleration disabled.
- add xc_domain_memory_translate_gpfn_list to libxc to allow ioemu to
get the MFNs of the video memory.
- have xend save the PCI memory space instead of ioemu: if a memory
page is there, the guest can access it like usual memory, so xend
can safely be responsible to save it. The extra benefit is that
live migration will apply the logdirty optimization there too.
- handle old saved images, populating the video memory from ioemu if
really needed.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
author Keir Fraser <keir.fraser@citrix.com>
date Wed Aug 27 14:53:39 2008 +0100 (2008-08-27)
parents 945394931d9e
children a9f299b11b7f
line source
1 # First column indicator:
2 # ! - needs translation
3 # ? - needs checking
4 ? dom0_vga_console_info xen.h
5 ? mmu_update xen.h
6 ! mmuext_op xen.h
7 ! start_info xen.h
8 ? vcpu_info xen.h
9 ? vcpu_time_info xen.h
10 ! cpu_user_regs arch-x86/xen-@arch@.h
11 ! trap_info arch-x86/xen.h
12 ! vcpu_guest_context arch-x86/xen.h
13 ? evtchn_alloc_unbound event_channel.h
14 ? evtchn_bind_interdomain event_channel.h
15 ? evtchn_bind_ipi event_channel.h
16 ? evtchn_bind_pirq event_channel.h
17 ? evtchn_bind_vcpu event_channel.h
18 ? evtchn_bind_virq event_channel.h
19 ? evtchn_close event_channel.h
20 ? evtchn_op event_channel.h
21 ? evtchn_send event_channel.h
22 ? evtchn_status event_channel.h
23 ? evtchn_unmask event_channel.h
24 ! gnttab_copy grant_table.h
25 ? gnttab_dump_table grant_table.h
26 ? gnttab_map_grant_ref grant_table.h
27 ! gnttab_setup_table grant_table.h
28 ! gnttab_transfer grant_table.h
29 ? gnttab_unmap_grant_ref grant_table.h
30 ? gnttab_unmap_and_replace grant_table.h
31 ? grant_entry grant_table.h
32 ? kexec_exec kexec.h
33 ! kexec_image kexec.h
34 ! kexec_range kexec.h
35 ! add_to_physmap memory.h
36 ! remove_from_physmap memory.h
37 ! foreign_memory_map memory.h
38 ! memory_exchange memory.h
39 ! memory_map memory.h
40 ! memory_reservation memory.h
41 ! translate_gpfn_list memory.h
42 ! sched_poll sched.h
43 ? sched_remote_shutdown sched.h
44 ? sched_shutdown sched.h
45 ? t_buf trace.h
46 ? vcpu_get_physid vcpu.h
47 ? vcpu_register_vcpu_info vcpu.h
48 ! vcpu_runstate_info vcpu.h
49 ? vcpu_set_periodic_timer vcpu.h
50 ! vcpu_set_singleshot_timer vcpu.h
51 ? xenoprof_init xenoprof.h
52 ? xenoprof_passive xenoprof.h
53 ! power_register platform.h
54 ? processor_csd platform.h
55 ! processor_cx platform.h
56 ! processor_flags platform.h
57 ! processor_power platform.h