aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/xlat.lst
Commit message (Collapse)AuthorAgeFilesLines
* x86: fix compat guest handling of XENPF_enter_acpi_sleepJan Beulich2013-09-261-0/+1
| | | | | | | | | | | | | Rather than blindly defining the native name to the compat one, when we want to pass the compat structure to a native function we ought to verify that their layouts match. With a respective xlat.lst entry there's then also no need anymore to do such aliasing. While cleaaning up that file I also noticed that the Cx and Px interface handling here has quite a few unnecessary #define-s - delete them. Signed-off-by: Jan Beulich <jbeulich@suse.com>
* xen, libxc: rename xenctl_cpumap to xenctl_bitmapDario Faggioli2013-04-171-1/+1
| | | | | | | | | | | | | | | | | | More specifically: 1. replaces xenctl_cpumap with xenctl_bitmap 2. provides bitmap_to_xenctl_bitmap and the reverse; 3. re-implement cpumask_to_xenctl_bitmap with bitmap_to_xenctl_bitmap and the reverse; Other than #3, no functional changes. Interface only slightly afected. This is in preparation of introducing NUMA node-affinity maps. Signed-off-by: Dario Faggioli <dario.faggioli@citrix.com> Acked-by: George Dunlap <george.dunlap@eu.citrix.com> Acked-by: Juergen Gross <juergen.gross@ts.fujitsu.com> Acked-by: Keir Fraser <keir@xen.org>
* xen: reinstate previously unused XENMEM_remove_from_physmap hypercallDaniel De Graaf2012-01-281-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch reinstates the XENMEM_remove_from_physmap hypercall which was removed in 19041:ee62aaafff46 because it was not used. However, is now needed in order to support xenstored stub domains. The xenstored stub domain is not priviliged like dom0 and so cannot unilaterally map the xenbus page of other guests into it's address space. Therefore, before creating a domU the domain builder needs to seed its grant table with a grant ref allowing the xenstored stub domain to access the new domU's xenbus page. At present domU's do not start with their grant table mapped. Instead it gets mapped when the guest requests a grant table from the hypervisor. In order to seed the grant table, the domain builder first needs to map it into dom0 address space. But the hypercall to do this requires a gpfn (guest pfn), which is an mfn for PV guest, but a pfn for HVM guests. Therfore, in order to seed the grant table of an HVM guest, dom0 needs to *temporarily* map it into the guest's "physical" address space. Hence the need to reinstate the XENMEM_remove_from_physmap hypercall. Signed-off-by: Alex Zeffertt <alex.zeffertt@eu.citrix.com> Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov> Acked-by: Ian Campbell <ian.campbell@citrix.com> Committed-by: Keir Fraser <keir@xen.org>
* Add a GNTTABOP to swap the content of two grant references under lockWei Liu2012-01-241-0/+1
| | | | | | | | provided that they are not currently active. Signed-off-by: Wei Liu <wei.liu2@citrix.com> Signed-off-by: Paul Durrant <paul.durrant@citrix.com> Committed-by: Keir Fraser <keir@xen.org>
* XLAT.lst whitespace fix.Andrew Cooper2011-12-141-1/+1
| | | | | | | Replace spaces with tabs to be in line with file format. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Committed-by: Jan Beulich <jbeulich@suse.com>
* x86: add platform hypercall to retrieve pCPU-s' family, model, and steppingJan Beulich2011-12-131-9/+11
| | | | | | | | | | | | | With the recent hotplug changes to the Xen part of the microcode loading, this allows the kernel driver to avoid unnecessary calls into the hypervisor during pCPU hot-enabling: Knowing that the hypervisor retains the data for already booted CPUs, only data for CPUs with a different signature needs to be passed down. Since the microcode loading code can be pretty verbose, avoiding to invoke it can make the log much easier to look at in case of problems. Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org>
* PCI multi-seg: add new physdevop-sJan Beulich2011-09-181-0/+2
| | | | | | | | | | | | | The new PHYSDEVOP_pci_device_add is intended to be extensible, with a first extension (to pass the proximity domain of a device) added right away. A couple of directly related functions at once get adjusted to account for the segment number. Should we deprecate the PHYSDEVOP_manage_pci_* sub-hypercalls? Signed-off-by: Jan Beulich <jbeulich@suse.com>
* x86-64/MMCFG: pass down firmware (ACPI) reservation status of used memory spaceJan Beulich2011-07-251-0/+1
| | | | | | | | | | | | | Reserving the MMCFG address range(s) in E820 is specified to only be optional for the firmware to do. The requirement is to have them reserved in ACPI resources. Those, however, aren't directly visible to Xen as they require the ACPI interpreter to be active. Thus, if a range isn't reserved in E820, we should not completely disable use of MMCFG on the respective bus range, but rather keep it disabled until Dom0 can pass down information on the ACPI reservation status (though a new physdevop hypercall). Signed-off-by: Jan Beulich <jbeulich@novell.com>
* x86-64/physdevop: reduce generated code duplicationJan Beulich2011-07-081-0/+10
| | | | | | | | | | | | | | | | | At least all the helper functions can be used by both the native and the compat-mode implementations, requiring their parameters to be adjusted. Additionally, rather than having the compat mode wrapper source file blindly define the native structures to be replaced by the compat mode ones, replace unnecessary (un-)definitions by layout match checks. In a second step, do_physdev_op() could be split into a part that needs re-compilation for compat mode handling and one that can be used for native and compat mode. Signed-off-by: Jan Beulich <jbeulich@novell.com>
* x86: split struct vcpuJan Beulich2011-04-051-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | This is accomplished by splitting the guest_context member, which by itself is larger than a page on x86-64. Quite a number of fields of this structure is completely meaningless for HVM guests, and thus a new struct pv_vcpu gets introduced, which is being overlaid with struct hvm_vcpu in struct arch_vcpu. The one member that is mostly responsible for the large size is trap_ctxt, which now gets allocated separately (unless fitting on the same page as struct arch_vcpu, as is currently the case for x86-32), and only for non-hvm, non-idle domains. This change pointed out a latent problem in arch_set_info_guest(), which is permitted to be called on already initialized vCPU-s, but so far copied the new state into struct arch_vcpu without (in this case) actually going through all the necessary accounting/validation steps. The logic gets changed so that the pieces that bypass accounting will at least be verified to be no different from the currently active bits, and the whole change will fail in case they are. The logic does *not* get adjusted here to do full error recovery, that is, partially modified state continues to not get unrolled in case of failure. Signed-off-by: Jan Beulich <jbeulich@novell.com>
* x86: add CMCI software injection interfaceKeir Fraser2010-06-091-0/+1
| | | | | | | | A new command is added. User can set the target CPU map, since the CMCI can be triggered on some specific CPUs. Please be noticed that the xenctl_cpumap structure is moved from domctl.h to xen.h. Signed-off-by: Jiang, Yunhong <yunhong.jiang@intel.com>
* Introduce a grant_entry_v2 structure.Keir Fraser2009-10-071-0/+5
| | | | Signed-off-by: Steven Smith <steven.smith@citrix.com>
* Rename the struct grant_entry to struct grant_entry_v1, so that itKeir Fraser2009-10-071-1/+1
| | | | | | isn't in the way when we introduce struct grant_entry_v2. Signed-off-by: Steven Smith <steven.smith@citrix.com>
* tmem: fix 32-on-64 supportKeir Fraser2009-06-171-3/+1
| | | | | | | | | This implicitly required coverting the tmem_op structure from anonymous to standard struct/union sub-fields, and extending the get-fields.sh helper script to deal with typedef-ed guest handles used as types of translated compound type fields. Signed-off-by: Jan Beulich <jbeulich@novell.com>
* Transcendent memory ("tmem") for Xen.Keir Fraser2009-05-261-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tmem, when called from a tmem-capable (paravirtualized) guest, makes use of otherwise unutilized ("fallow") memory to create and manage pools of pages that can be accessed from the guest either as "ephemeral" pages or as "persistent" pages. In either case, the pages are not directly addressible by the guest, only copied to and fro via the tmem interface. Ephemeral pages are a nice place for a guest to put recently evicted clean pages that it might need again; these pages can be reclaimed synchronously by Xen for other guests or other uses. Persistent pages are a nice place for a guest to put "swap" pages to avoid sending them to disk. These pages retain data as long as the guest lives, but count against the guest memory allocation. Tmem pages may optionally be compressed and, in certain cases, can be shared between guests. Tmem also handles concurrency nicely and provides limited QoS settings to combat malicious DoS attempts. Save/restore and live migration support is not yet provided. Tmem is primarily targeted for an x86 64-bit hypervisor. On a 32-bit x86 hypervisor, it has limited functionality and testing due to limitations of the xen heap. Nearly all of tmem is architecture-independent; three routines remain to be ported to ia64 and it should work on that architecture too. It is also structured to be portable to non-Xen environments. Tmem defaults off (for now) and must be enabled with a "tmem" xen boot option (and does nothing unless a tmem-capable guest is running). The "tmem_compress" boot option enables compression which takes about 10x more CPU but approximately doubles the number of pages that can be stored. Tmem can be controlled via several "xm" commands and many interesting tmem statistics can be obtained. A README and internal specification will follow, but lots of useful prose about tmem, as well as Linux patches, can be found at http://oss.oracle.com/projects/tmem . Signed-off-by: Dan Magenheimer <dan.magenheimer@oracle.com>
* x86 mce: fix c/s 17968 for 32-on-64Keir Fraser2009-03-311-0/+16
| | | | | | | | | | | | | | | | 32-on-64 aspects were not properly considered. Add respective checking, and adjust structure layouts for the cases where the checking pointed out issues. Also, - fix a potential memory corruption issue (do_mca() could write beyond log_cpus' end if the guest specified less than the number of online CPUs - there is no reason to make the (not even properly prefixed) definitions in xen/public/arch-x86/xen-mca.h globally visible by including the file from xen/public/arch-x86/xen.h. Signed-off-by: Jan Beulich <jbeulich@novell.com>
* Remove unused XENMEM_remove_from_physmap.Keir Fraser2009-01-141-1/+0
| | | | | | | Never present in any stable release of Xen. Introduced for use by qemu-dm but now not needed. Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
* Remove unused XENMEM_translate_pfn_list.Keir Fraser2009-01-141-1/+0
| | | | | | | | Never used by a guest OS (except in IA64 hcall translation layer) and obsoleted in the tools for ages. Recent usage by qemu-dm is now removed. Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
* PoD memory 7/9: Xen interfaceKeir Fraser2009-01-051-0/+1
| | | | | | | | | | | | | | | Implement Xen interface to PoD functionality. * Increase the number of MEMOP bits from 4 to 6 (increasing the number of available memory operations from 16 to 64). * Introduce XENMEMF_populate_on_demand, which will cause populate_physmap() to fill a range with PoD entries rather than backing it with ram * Introduce XENMEM_[sg]et_pod_target operation to the memory hypercall, to get and set PoD cache size. set_pod_target() should be called during domain creation, as well as after modifying the memory target of any domain which may have outstanding PoD entries. Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
* Simplify set_px_info hypercall 32-on-64 compatibility shim.Keir Fraser2008-10-221-1/+1
| | | | | | | | Mark processor_px as 'checking' and translate handle to simplify actual code doing in the translation. (According to Jan Beulich's suggestion) Signed-off-by: Liu, Jinsong <jinsong.liu@intel.com>
* x86: Adapt 32b guest os to 64b hypervisor platform_hypercall compatibilityKeir Fraser2008-10-211-0/+4
| | | | | | | | | | | Changeset 18552 (19b0a4f91712) move px transfer logic from platform_hypercall.c to a common file to support both x86 and ia64. However, it involves 32b guest os to 64b hypervisor (x86) compatible issue. This patch fix the compatible issue, and make set_px_pminfo() re-used by ia64 and x86 (32b guest os to 64b hypervisor, and 64b guest os to 64b hypervisor). Signed-off-by: Liu Jinsong <jinsong.liu@intel.com>
* hvm: Use main memory for video memory.Keir Fraser2008-08-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* x86: fix a few 32-on-64 compat mode issuesKeir Fraser2008-05-121-0/+5
| | | | | | | | | | | - handle VCPUOP_register_vcpu_info and VCPUOP_get_physid (and add respective layout checks) - add missing structure size check for struct vcpu_info - add missing layout check for vcpu_set_periodic_timer - handle VCPUOP_set_singleshot_timer via argument translation as the structure sizes differ (due to padding in 64-bits) Signed-off-by: Jan Beulich <jbeulich@novell.com>
* Add basic acpi C-states based cpu idle power mgmt in xen for x86.Keir Fraser2008-05-011-0/+5
| | | | | | | | | | | | It includes: 1. hypercall definition for passing ACPI info. 2. C1/C2 support. 3. Mwait support, as well as legacy ioport. 4. Ladder policy from Linux kernel. A lot of code & ideas came from Linux. Signed-off-by: Wei Gang <gang.wei@intel.com>
* kexec: Add XLAT_kexec_rangeKeir Fraser2008-03-031-0/+1
| | | | | | | | Add XLAT_kexec_range and use it to translate between xen_kexec_range_t and compat_kexec_range_t. I missed this in my previous patche which created the explicit definition of kexec_get_range_compat(). Signed-off-by: Simon Horman <horms@verge.net.au>
* [XEN] gnttab: Add new op unmap_and_replacekfraser@localhost.localdomain2007-05-301-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The operation unmap_and_replace is an extension of unmap_grant_ref. A new argument in the form of a virtual address (for PV) is given. Instead of modifying the PTE for the mapped grant table entry to null, we change it to the PTE for the new address. In turn we point the new address to null. As it stands grant table entries once mapped cannot be remapped by the guest OS (it can however perform a new mapping on the same entry but that is within our control). Therefore it's safe to manipulate the mapped PTE entry to redirect it to a normal page where we've copied the contents. It's intended to be used as follows: 1) map_grant_ref to v1 2) ... 3) alloc page at v2 4) copy the page at v1 to v2 5) unmap_and_replace v1 with v2 Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Added compat integration (PAE-on-64). Signed-off-by: Keir Fraser <keir@xensource.com>
* acm: Remove unecessary compat shim from do_acm_op().kfraser@localhost.localdomain2007-04-261-1/+0
| | | | Signed-off-by: Keir Fraser <keir@xensource.com>
* Make domctl/sysctl interfaces 32-/64-bit invariant.kfraser@localhost.localdomain2007-01-241-7/+0
| | | | | | | This kills off a fair amount of unpleasant CONFIG_COMPAT shimming and avoids needing to keep the compat paths in sync as these interfaces continue to develop. Signed-off-by: Keir Fraser <keir@xensource.com>
* Unbreak 64bit buildTim Deegan2007-01-201-2/+0
| | | | Signed-off-by: Tim Deegan <Tim.Deegan@xensource.com>
* [HVM] save restore: vcpu context supportSteven Hand2007-01-161-0/+2
| | | | | | Signed-off-by: Zhai Edwin <edwin.zhai@intel.com> save/restore HVM vcpu context such as vmcs
* Enable compatibility mode operation for kexec.Emmanuel Ackaouy2007-01-051-0/+2
| | | | Signed-off-by: Jan Beulich <jbeulich@novell.com>
* Enable compatibility mode operation for trace buffer access.Emmanuel Ackaouy2007-01-051-0/+1
| | | | Signed-off-by: Jan Beulich <jbeulich@novell.com>
* Enable compatibility mode operation for HYPERVISOR_domctl. Also add logicEmmanuel Ackaouy2007-01-051-1/+3
| | | | | | | to switch a domain to/from compatibility mode (supposed to happen early after domain creation only). Signed-off-by: Jan Beulich <jbeulich@novell.com>
* Enable compatibility mode operation for HYPERVISOR_sysctl.Emmanuel Ackaouy2007-01-051-0/+5
| | | | Signed-off-by: Jan Beulich <jbeulich@novell.com>
* Enable compatibility mode operation for HYPERVISOR_xenoprof_op.Emmanuel Ackaouy2007-01-051-0/+2
| | | | Signed-off-by: Jan Beulich <jbeulich@novell.com>
* Enable compatibility mode operation for HYPERVISOR_acm_op.Emmanuel Ackaouy2007-01-051-0/+1
| | | | Signed-off-by: Jan Beulich <jbeulich@novell.com>
* Enable compatibility mode operation for HYPERVISOR_grant_table_op.Emmanuel Ackaouy2007-01-051-0/+7
| | | | Signed-off-by: Jan Beulich <jbeulich@novell.com>
* Enable compatibility mode operation for HYPERVISOR_sched_op andEmmanuel Ackaouy2007-01-051-0/+3
| | | | | | HYPERVISOR_set_timer_op. Signed-off-by: Jan Beulich <jbeulich@novell.com>
* Merge vcpuop compat header creationEmmanuel Ackaouy2007-01-051-3/+3
| | | | Signed-off-by: Emmanuel Ackaouy <ack@xensource.com>
* Enable compatibility mode operation for HYPERVISOR_vcpu_op.Emmanuel Ackaouy2007-01-051-0/+4
| | | | Signed-off-by: Jan Beulich <jbeulich@novell.com>
* Enable compatibility mode operation for HYPERVISOR_physdev_op andEmmanuel Ackaouy2007-01-051-0/+11
| | | | | | HYPERVISOR_event_channel_op. Signed-off-by: Jan Beulich <jbeulich@novell.com>
* Enable compatibility mode operation for HYPERVISOR_mmu_update andEmmanuel Ackaouy2007-01-051-0/+2
| | | | | | HYPERVISOR_mmuext_op. Signed-off-by: Jan Beulich <jbeulich@novell.com>
* Enable compatibility mode operation for HYPERVISOR_memory_op,Emmanuel Ackaouy2007-01-051-0/+6
| | | | | | | HYPERVISOR_update_descriptor, HYPERVISOR_update_va_mapping. This also introduces infrastructure to do argument translation. Signed-off-by: Jan Beulich <jbeulich@novell.com>
* Handle shared info (having different layout for native and compatibilityEmmanuel Ackaouy2007-01-051-0/+1
| | | | | | mode guests) accesses. Signed-off-by: Jan Beulich <jbeulich@novell.com>
* Handle the creation of startup info for compatibility mode guests. ThisEmmanuel Ackaouy2007-01-051-0/+5
includes a script to auto-generate checking or translation code between native and compatibility mode hypercall argument structures. Signed-off-by: Jan Beulich <jbeulich@novell.com>