diff options
author | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2006-01-31 11:49:51 +0100 |
---|---|---|
committer | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2006-01-31 11:49:51 +0100 |
commit | d1bd157fbc9b15d811c3888a38c48f4b70eba16e (patch) | |
tree | 3332c77d81e184ee9e8cb4250654727da6cf4629 /tools | |
parent | bd0e34a1736601c468931c37bb480a9f88b7766f (diff) | |
download | xen-d1bd157fbc9b15d811c3888a38c48f4b70eba16e.tar.gz xen-d1bd157fbc9b15d811c3888a38c48f4b70eba16e.tar.bz2 xen-d1bd157fbc9b15d811c3888a38c48f4b70eba16e.zip |
Big merge the HVM full-virtualisation abstractions.
This changeset contains all differences between
xen-unstable.hg and xen-unstable-hvm.hg.
All information and comments for changesets unique to
xen-unstable-hvm.hg are included below.
Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com>
Signed-off-by: Keir Fraser <keir@xensource.com>
> user: leendert@eserver2.watson.ibm.com
> date: Tue Jan 31 04:29:51 2006 -0400
> files: xen/include/asm-ia64/mm.h
> description:
> Fix ia64 compile.
>
> Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com>
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Tue Jan 31 02:21:49 2006 -0400
> files: xen/include/xen/domain_page.h
> description:
> Eliminate unused fields (pfn,va) warnings.
>
> Signed-Off-By: Leendert van Doorn <leendert@watson.ibm.com>
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Fri Jan 27 04:31:44 2006 -0400
> files: tools/python/xen/xend/image.py
> description:
> Name cleanup. vmx refers to VT-x specific code, HVM is used for all others.
>
> Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com>
>
>
> user: root@xen-trw1.amd.com
> date: Sun Jan 22 18:39:58 2006 -0500
> files: xen/arch/x86/hvm/platform.c
> description:
> support prefix 0x67 in hvm decode logic, gfxboot patch causes 0x67 prefix.
>
>
> user: twoller@xen-trw1.amd.com
> date: Sun Jan 22 18:35:59 2006 -0500
> files: xen/arch/x86/hvm/svm/svm.c xen/arch/x86/hvm/svm/vmcb.c xen/include/asm-x86/hvm/svm/svm.h
> description:
> check for valid shared_page_va/vmcb before deallocating in SVM.
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Sun Jan 22 02:56:20 2006 -0400
> files: xen/include/asm-x86/hvm/svm/svm.h xen/include/asm-x86/hvm/svm/vmmcall.h
> description:
> Some SVM header file cleanups.
>
> Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com>
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Fri Jan 20 11:50:23 2006 -0400
> files: xen/arch/x86/domain.c
> description:
> Need to be more diligent about when to call into the HVM abstraction layer
> and when not.
>
> Signed-Off-By: Leendert van Doorn <leendert@watson.ibm.com>
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Wed Jan 18 15:14:56 2006 -0400
> files: xen/arch/x86/hvm/svm/svm.c xen/arch/x86/hvm/svm/x86_32/exits.S xen/arch/x86/hvm/svm/x86_64/exits.S xen/arch/x86/hvm/vmx/x86_32/exits.S xen/arch/x86/hvm/vmx/x86_64/exits.S
> description:
> Added missing copyright statements and updated svm.c's copyright to properly
> reflect that it was derived from vmx.c.
>
> Signed-Off-By: Leendert van Doorn <leendert@watson.ibm.com>
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Tue Jan 17 09:42:11 2006 -0400
> files: xen/arch/ia64/Makefile xen/arch/ia64/vmx/vlsapic.c xen/arch/ia64/vmx/vmx_init.c xen/include/asm-ia64/vmx_platform.h
> description:
> Make sure ia64 builds again with the new directory structure.
>
> Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com>
>
>
> user: leendert@localhost.localdomain
> date: Tue Jan 17 08:28:51 2006 -0400
> files: xen/arch/x86/Makefile xen/arch/x86/hvm/i8259.c xen/arch/x86/hvm/vioapic.c
> description:
> The device models now belong in hvm.
>
> Signed-ff-by: Leendert van Doorn <leendert@watson.ibm.com>
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Sun Jan 15 16:40:58 2006 -0400
> files: xen/arch/x86/Makefile xen/arch/x86/cpu/amd.c xen/arch/x86/cpu/intel.c xen/arch/x86/dm/hvm_vioapic.c xen/arch/x86/dm/i8259.c xen/arch/x86/dom0_ops.c xen/arch/x86/domain.c xen/arch/x86/hvm/hvm.c xen/arch/x86/hvm/intercept.c xen/arch/x86/hvm/io.c xen/arch/x86/hvm/platform.c xen/arch/x86/hvm/svm/emulate.c xen/arch/x86/hvm/svm/instrlen.c xen/arch/x86/hvm/svm/intr.c xen/arch/x86/hvm/svm/svm.c xen/arch/x86/hvm/svm/vmcb.c xen/arch/x86/hvm/svm/x86_32/exits.S xen/arch/x86/hvm/svm/x86_64/exits.S xen/arch/x86/hvm/vlapic.c xen/arch/x86/hvm/vmx/io.c xen/arch/x86/hvm/vmx/vmcs.c xen/arch/x86/hvm/vmx/vmx.c xen/arch/x86/hvm/vmx/x86_32/exits.S xen/arch/x86/hvm/vmx/x86_64/exits.S xen/arch/x86/i387.c xen/arch/x86/x86_32/entry.S xen/arch/x86/x86_32/traps.c xen/arch/x86/x86_64/entry.S xen/arch/x86/x86_64/traps.c xen/include/asm-x86/domain.h xen/include/asm-x86/hvm/domain.h xen/include/asm-x86/hvm/hvm.h xen/include/asm-x86/hvm/io.h xen/include/asm-x86/hvm/support.h xen/include/asm-x86/hvm/svm/emulate.h xen/include/asm-x86/hvm/svm/intr.h xen/include/asm-x86/hvm/svm/svm.h xen/include/asm-x86/hvm/svm/vmcb.h xen/include/asm-x86/hvm/svm/vmmcall.h xen/include/asm-x86/hvm/vcpu.h xen/include/asm-x86/hvm/vioapic.h xen/include/asm-x86/hvm/vlapic.h xen/include/asm-x86/hvm/vmx/cpu.h xen/include/asm-x86/hvm/vmx/vmcs.h xen/include/asm-x86/hvm/vmx/vmx.h xen/include/asm-x86/hvm/vpic.h xen/include/asm-x86/hvm/vpit.h xen/include/asm-x86/shadow.h
> description:
> As suggested by Keir, I restructured the hvm/vmx/svm tree. The new
> directory structure looks like:
>
> xen/arch/hvm/
> xen/arch/hvm/vmx
> xen/arch/hvm/vmx/x86_32
> xen/arch/hvm/vmx/x86_64
> xen/arch/hvm/svm
> xen/arch/hvm/svm/x86_32
> xen/arch/hvm/svm/x86_64
>
> xen/include/hvm/
> xen/include/hvm/vmx
> xen/include/hvm/svm
>
> Many files have been renamed and had their hvm_/vmx_/svm_ suffix removed
> because this is now clear from the directory where the file resides.
>
> Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com>
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Sat Jan 14 17:03:28 2006 -0400
> files: xen/arch/ia64/vmx/vlsapic.c xen/include/asm-ia64/vmx_platform.h
> description:
> Name change fix for ia64.
>
> Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com>
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Sat Jan 14 15:12:59 2006 -0400
> files: xen/arch/x86/dm/hvm_vioapic.c xen/arch/x86/dm/i8259.c xen/arch/x86/hvm.c xen/arch/x86/hvm_intercept.c xen/arch/x86/svm.c xen/arch/x86/svm_intr.c xen/arch/x86/svm_vmcb.c xen/arch/x86/vmx.c xen/arch/x86/vmx_io.c xen/arch/x86/vmx_vmcs.c xen/include/asm-x86/hvm_domain.h xen/include/asm-x86/hvm_vcpu.h
> description:
> Move VMX/SVM print buffer to hvm_domain.
>
> Cleanup variable names. The suffix hvm_ is redundant in hvm_domain.
>
> Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com>
>
>
> user: twoller@xen-trw1.site
> date: Fri Jan 13 17:03:18 2006 -0500
> files: xen/arch/x86/svm.c
> description:
> remove unnecessary spin_unlock in asid_fetch code for svm.
>
>
> user: twoller@xen-trw1.site
> date: Wed Jan 11 20:00:36 2006 -0500
> files: xen/arch/x86/svm.c
> description:
> remove unneeded update_pagetables() during svm PF handling (resolved with ASID code rework).
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Tue Jan 10 02:45:32 2006 -0400
> files: xen/arch/x86/hvm.c xen/arch/x86/vmx_io.c
> description:
> Factor out cpu_get_interrupt(). It is used by VMX and SVM.
>
> Signed-Off-By: Leendert van Doorn <leendert@watson.ibm.com>
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Mon Jan 9 00:03:30 2006 -0400
> files: xen/arch/x86/hvm.c xen/arch/x86/svm.c xen/arch/x86/vmx.c xen/include/asm-x86/hvm_support.h xen/include/asm-x86/hvm_vcpu.h
> description:
> Introduce small print buffer per domain rather than a single global one.
>
> Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com>
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Sun Jan 8 23:07:12 2006 -0400
> files: xen/arch/x86/dom0_ops.c xen/include/asm-x86/hvm_support.h xen/include/public/arch-x86_32.h xen/include/public/arch-x86_64.h
> description:
> More cleanup. There is no point in distinguishing between SVM and VMX,
> a single HVM flag bit suffices.
>
> Signed-Off-By: Leendert van Doorn <leendert@watson.ibm.com>
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Sun Jan 8 12:05:59 2006 -0400
> files: xen/arch/x86/svm.c xen/arch/x86/vmx.c
> description:
> Both VMX & SVM now print writes to the debug port (0xE9) on the console.
>
> Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com>
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Sat Jan 7 13:55:27 2006 -0400
> files: xen/arch/x86/svm.c xen/arch/x86/svm_intr.c xen/arch/x86/svm_vmcb.c xen/arch/x86/vmx.c xen/arch/x86/vmx_io.c xen/arch/x86/vmx_vmcs.c xen/arch/x86/x86_32/asm-offsets.c xen/arch/x86/x86_64/asm-offsets.c xen/include/asm-x86/domain.h xen/include/asm-x86/vmx.h
> description:
> Introduce shorthands to improve code legibility.
>
> Signed-Off-By: Leendert van Doorn <leendert@watson.ibm.com>
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Wed Jan 4 06:12:10 2006 -0400
> files: tools/examples/xmexample.hvm
> description:
> Minor spelling mistakes.
>
> Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com>
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Wed Jan 4 03:37:55 2006 -0400
> files: xen/include/public/hvm/hvm_info_table.h xen/include/public/hvm/ioreq.h xen/include/public/hvm/vmx_assist.h
> description:
> Missed adding new files.
>
> Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com>
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Mon Jan 2 01:23:54 2006 -0400
> files: tools/debugger/libxendebug/xendebug.c tools/libxc/xc_hvm_build.c
> description:
> Finalize Xin Li's patch: vmx/svm_identify is no longer necessary.
> Xen debug should test for HVM instead of VMX.
>
> Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com>
>
>
> user: twoller@xen-trw1.site
> date: Sun Jan 1 03:22:39 2006 -0500
> files: tools/ioemu/vl.c
> description:
> change hardcoded VTXEN to HVMXEN.
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Sun Jan 1 02:22:47 2006 -0400
> files: tools/libxc/xc_hvm_build.c tools/python/xen/xend/image.py xen/arch/x86/domain.c
> description:
> Avoid xen crash if there is no VMX support. If a platform
> doesn't support VMX, creating VMX domain will crash xen
> HV.
>
> Signed-off-by: Xin Li <xin.b.li@intel.com>
> Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com>
> [ vmx/svm_identify are still needed in hvm builder, but this may not
> really be necessary. I need to check this. - lvd ]
>
>
> user: twoller@xen-trw1.site
> date: Fri Dec 30 21:38:56 2005 -0500
> files: xen/arch/x86/svm.c xen/arch/x86/svm_vmcb.c xen/arch/x86/x86_32/entry.S xen/include/asm-x86/svm.h xen/include/asm-x86/svm_vmcb.h
> description:
> add multi-core support for guest ASIDs for SVM partitions.
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Sun Dec 25 20:44:43 2005 -0400
> files: tools/firmware/vmxassist/head.S
> description:
> Make sure vmxassist still works in its debug environment.
>
> Signed-Off-By: Leendert van Doorn <leendert@watson.ibm.com>
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Fri Dec 23 18:27:57 2005 -0400
> files: tools/libxc/xc_ia64_stubs.c
> description:
> Fixed libxc ia64, xend uses xc_hvm_build instead of xc_vmx_build.
>
> Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com>
>
>
> user: twoller@xen-trw1.site
> date: Wed Dec 21 21:39:17 2005 -0500
> files: xen/arch/x86/svm_intr.c xen/arch/x86/svm_vmcb.c
> description:
> cleanup of svm specific code.
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Wed Dec 21 17:18:25 2005 -0400
> files: tools/python/xen/xm/tests/test_create.py tools/xm-test/README
> description:
> Minor name cleanups. xm-test isn't VMX specific. Instead use HVM.
>
>
> user: twoller@xen-trw1.site
> date: Tue Dec 20 20:01:38 2005 -0500
> files: xen/arch/x86/svm_vmcb.c
> description:
> reword comments.
>
>
> user: twoller@xen-trw1.site
> date: Tue Dec 20 20:01:07 2005 -0500
> files: xen/arch/x86/svm_intr.c
> description:
> add additional VLAPIC delivery modes.
>
>
> user: twoller@xen-trw1.site
> date: Tue Dec 20 20:00:22 2005 -0500
> files: xen/arch/x86/svm.c
> description:
> reformat misaligned code.
>
>
> user: twoller@xen-trw1.site
> date: Tue Dec 20 19:59:37 2005 -0500
> files: xen/arch/x86/svm.c
> description:
> Add additional AMD SVM specific CPUID logic.
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Thu Dec 15 03:06:15 2005 -0400
> files: tools/xm-test/tests/block-create/01_block_attach_device_pos.py tools/xm-test/tests/block-create/02_block_attach_file_device_pos.py tools/xm-test/tests/block-create/04_block_attach_device_repeatedly_pos.py tools/xm-test/tests/block-create/05_block_attach_and_dettach_device_repeatedly_pos.py tools/xm-test/tests/block-create/06_block_attach_baddomain_neg.py tools/xm-test/tests/block-create/07_block_attach_baddevice_neg.py tools/xm-test/tests/block-create/08_block_attach_bad_filedevice_neg.py tools/xm-test/tests/block-create/09_block_attach_and_dettach_device_check_data_pos.py tools/xm-test/tests/block-create/10_block_attach_dettach_multiple_devices.py tools/xm-test/tests/block-create/11_block_attach_shared_dom0.py tools/xm-test/tests/block-create/12_block_attach_shared_domU.py tools/xm-test/tests/block-destroy/01_block-destroy_btblock_pos.py tools/xm-test/tests/block-destroy/02_block-destroy_rtblock_pos.py tools/xm-test/tests/block-destroy/04_block-destroy_nonattached_neg.py tools/xm-test/tests/block-destroy/05_block-destroy_byname_pos.py tools/xm-test/tests/block-destroy/06_block-destroy_check_list_pos.py tools/xm-test/tests/block-list/01_block-list_pos.py tools/xm-test/tests/block-list/02_block-list_attachbd_pos.py tools/xm-test/tests/block-list/03_block-list_anotherbd_pos.py tools/xm-test/tests/block-list/04_block-list_nodb_pos.py tools/xm-test/tests/block-list/06_block-list_checkremove_pos.py tools/xm-test/tests/memmax/01_memmax_badparm_neg.py tools/xm-test/tests/memset/01_memset_basic_pos.py tools/xm-test/tests/memset/02_memset_badparm_neg.py tools/xm-test/tests/memset/03_memset_random_pos.py tools/xm-test/tests/memset/04_memset_smallmem_pos.py tools/xm-test/tests/migrate/01_migrate_localhost_pos.py tools/xm-test/tests/network-attach/01_network_attach_pos.py tools/xm-test/tests/network-attach/02_network_attach_detach_pos.py tools/xm-test/tests/network-attach/03_network_attach_detach_multiple_pos.py tools/xm-test/tests/restore/01_restore_basic_pos.py tools/xm-test/tests/restore/02_restore_badparm_neg.py tools/xm-test/tests/restore/03_restore_badfilename_neg.py tools/xm-test/tests/restore/04_restore_withdevices_pos.py tools/xm-test/tests/save/01_save_basic_pos.py tools/xm-test/tests/save/02_save_badparm_neg.py tools/xm-test/tests/save/03_save_bogusfile_neg.py tools/xm-test/tests/sysrq/01_sysrq_basic_neg.py tools/xm-test/tests/sysrq/02_sysrq_sync_pos.py tools/xm-test/tests/sysrq/03_sysrq_withreboot_pos.py
> description:
> Adding SKIP() to tests that aren't supported for VMX domains.
>
> Signed-off-by: Dan Stekloff <dsteklof@us.ibm.com>
> Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com>
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Tue Dec 13 22:43:47 2005 -0400
> files: xen/arch/x86/svm.c xen/arch/x86/vmx.c xen/arch/x86/vmx_io.c xen/include/asm-x86/hvm_vpit.h xen/include/asm-x86/msr.h
> description:
> Support VMX guest accesses to IA32_TIME_STAMP_COUNTER MSR.
>
> Signed-off-by: Haifeng Xue <haifeng.xue@intel.com>
> Signed-off-by: Leendert van Doorn <leendert@us.ibm.com>
>
>
> user: twoller@xen-trw1.site
> date: Tue Dec 13 19:49:53 2005 -0500
> files: xen/arch/x86/svm.c xen/arch/x86/svm_emulate.c xen/arch/x86/svm_instrlen.c xen/arch/x86/svm_intr.c xen/arch/x86/svm_vmcb.c xen/include/asm-x86/svm.h xen/include/asm-x86/svm_emulate.h xen/include/asm-x86/svm_intr.h xen/include/asm-x86/svm_vmcb.h xen/include/asm-x86/svm_vmmcall.h
> description:
> Add SVM base files to repository.
>
>
> user: twoller@xen-trw1.site
> date: Tue Dec 13 19:49:02 2005 -0500
> files: xen/arch/x86/x86_32/entry.S xen/arch/x86/x86_64/entry.S
> description:
> Add SVM entry points for launch/resume.
>
>
> user: twoller@xen-trw1.site
> date: Tue Dec 13 19:47:38 2005 -0500
> files: .hgignore
> description:
> Add hvmloader files to ignore list.
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Mon Dec 12 22:58:54 2005 -0400
> files: docs/src/user.tex tools/firmware/README xen/include/asm-x86/hvm.h
> description:
> Removed dirty words (by request).
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Mon Dec 12 05:48:22 2005 -0400
> files: tools/firmware/hvmloader/mkhex
> description:
> Fix file mode.
>
> Signed-off-by: Leendert van Doorn <leendert@watson.ibm.com>
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Mon Dec 12 04:50:42 2005 -0400
> files: xen/Rules.mk xen/arch/x86/cpu/amd.c xen/arch/x86/cpu/intel.c xen/arch/x86/dm/hvm_vioapic.c xen/arch/x86/dm/i8259.c xen/arch/x86/dom0_ops.c xen/arch/x86/domain.c xen/arch/x86/hvm.c xen/arch/x86/hvm_intercept.c xen/arch/x86/hvm_io.c xen/arch/x86/hvm_platform.c xen/arch/x86/hvm_vlapic.c xen/arch/x86/mpparse.c xen/arch/x86/shadow.c xen/arch/x86/vmx.c xen/arch/x86/vmx_io.c xen/arch/x86/vmx_vmcs.c xen/arch/x86/x86_32/asm-offsets.c xen/arch/x86/x86_32/entry.S xen/arch/x86/x86_64/asm-offsets.c xen/arch/x86/x86_64/entry.S xen/arch/x86/x86_64/mm.c xen/include/asm-x86/config.h xen/include/asm-x86/cpufeature.h xen/include/asm-x86/domain.h xen/include/asm-x86/hvm_domain.h xen/include/asm-x86/hvm_io.h xen/include/asm-x86/hvm_support.h xen/include/asm-x86/hvm_vcpu.h xen/include/asm-x86/hvm_vioapic.h xen/include/asm-x86/hvm_vlapic.h xen/include/asm-x86/hvm_vpic.h xen/include/asm-x86/hvm_vpit.h xen/include/asm-x86/mpspec.h xen/include/asm-x86/msr.h xen/include/asm-x86/processor.h xen/include/asm-x86/vmx.h xen/include/asm-x86/vmx_cpu.h xen/include/asm-x86/vmx_vmcs.h
> description:
> Phase 3 of HVM integration: This patchset introduces the refactoring of
> virtualization architecture independent functions from specific ones.
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Sun Dec 11 07:02:51 2005 -0400
> files: xen/arch/x86/dom0_ops.c xen/arch/x86/domain.c xen/arch/x86/i387.c xen/arch/x86/shadow.c xen/arch/x86/vmx.c xen/arch/x86/x86_32/traps.c xen/arch/x86/x86_64/traps.c xen/include/asm-x86/hvm.h xen/include/asm-x86/hvm_support.h xen/include/asm-x86/regs.h xen/include/asm-x86/shadow.h xen/include/asm-x86/vmx_vmcs.h
> description:
> Phase 2 of HVM integration: This patchset introduces the hvm interface
> to the hypervisor and modifies all the non-vmx specific files to use it.
>
>
> user: leendert@eserver2.watson.ibm.com
> date: Sun Dec 11 01:10:00 2005 -0400
> files: tools/examples/Makefile tools/examples/README tools/examples/xmexample.hvm tools/ioemu/exec-all.h tools/ioemu/hw/i8254.c tools/ioemu/hw/i8259.c tools/ioemu/monitor.c tools/ioemu/target-i386-dm/helper2.c tools/ioemu/vl.c tools/libxc/Makefile tools/libxc/xc_hvm_build.c tools/libxc/xc_ptrace.c tools/libxc/xc_ptrace_core.c tools/libxc/xenguest.h tools/python/xen/lowlevel/xc/xc.c tools/python/xen/xend/image.py tools/python/xen/xm/create.py tools/xm-test/configure.ac tools/xm-test/lib/XmTestLib/XenDomain.py tools/xm-test/lib/XmTestLib/config.py.in tools/xm-test/ramdisk/Makefile.am tools/xm-test/ramdisk/bin/create_disk_image tools/xm-test/tests/block-list/04_block-list_nodb_pos.py xen/include/public/arch-x86_32.h xen/include/public/arch-x86_64.h
> description:
> Phase 1 of HVM integration: This patchset updates the tools. Most of the
> tools are machine independent except for some detection code in the hvm
> domain builder.
Diffstat (limited to 'tools')
81 files changed, 513 insertions, 505 deletions
diff --git a/tools/debugger/libxendebug/xendebug.c b/tools/debugger/libxendebug/xendebug.c index 7a9deaa07f..8a4160637c 100644 --- a/tools/debugger/libxendebug/xendebug.c +++ b/tools/debugger/libxendebug/xendebug.c @@ -355,7 +355,7 @@ xendebug_memory_page (domain_context_p ctxt, int xc_handle, uint32_t vcpu, if ( (pde = ctxt->cr3_virt[vcpu][vtopdi(va)]) == 0) /* logical address */ return 0; - if (ctxt->context[vcpu].flags & VGCF_VMX_GUEST) + if (ctxt->context[vcpu].flags & VGCF_HVM_GUEST) pde = ctxt->page_array[pde >> PAGE_SHIFT] << PAGE_SHIFT; if (pde != ctxt->pde_phys[vcpu]) { @@ -370,7 +370,7 @@ xendebug_memory_page (domain_context_p ctxt, int xc_handle, uint32_t vcpu, if ((page = ctxt->pde_virt[vcpu][vtopti(va)]) == 0) /* logical address */ return 0; - if (ctxt->context[vcpu].flags & VGCF_VMX_GUEST) + if (ctxt->context[vcpu].flags & VGCF_HVM_GUEST) page = ctxt->page_array[page >> PAGE_SHIFT] << PAGE_SHIFT; if (page != ctxt->page_phys[vcpu] || protection != ctxt->page_perm[vcpu]) { diff --git a/tools/examples/Makefile b/tools/examples/Makefile index 6c542aeae3..a94ea7aa0a 100644 --- a/tools/examples/Makefile +++ b/tools/examples/Makefile @@ -16,7 +16,7 @@ XEN_CONFIG_DIR = /etc/xen XEN_CONFIGS = xend-config.sxp XEN_CONFIGS += xmexample1 XEN_CONFIGS += xmexample2 -XEN_CONFIGS += xmexample.vmx +XEN_CONFIGS += xmexample.hvm XEN_CONFIGS += xmexample.vti # Xen script dir and scripts to go there. diff --git a/tools/examples/README b/tools/examples/README index 889333ab63..a51ec758c4 100644 --- a/tools/examples/README +++ b/tools/examples/README @@ -32,6 +32,6 @@ xmexample2 - a more complex configuration script for 'xm create' xmexample3 - an advanced configuration script for 'xm create' that utilizes the vmid xmexample.nbd - configuration script that uses NBD filesystems -xmexample.vmx - a configuration script for creating a vmx domain with +xmexample.hvm - a configuration script for creating a hvm domain with 'xm create' xmexample.vti - a configuration script for creating a domain on vti diff --git a/tools/examples/xmexample.vmx b/tools/examples/xmexample.hvm index cdd7863912..a1b893b0d5 100644 --- a/tools/examples/xmexample.vmx +++ b/tools/examples/xmexample.hvm @@ -15,25 +15,25 @@ else: #---------------------------------------------------------------------------- # Kernel image file. -kernel = "/usr/lib/xen/boot/vmxloader" +kernel = "/usr/lib/xen/boot/hvmloader" -# The domain build function. VMX domain uses 'vmx'. -builder='vmx' +# The domain build function. HVM domain uses 'hvm'. +builder='hvm' # Initial memory allocation (in megabytes) for the new domain. memory = 128 # A name for your domain. All domains must have different names. -name = "ExampleVMXDomain" +name = "ExampleHVMDomain" #----------------------------------------------------------------------------- # the number of cpus guest platform has, default=1 #vcpus=1 -# enable/disalbe vmx guest ACPI, default=0 (disabled) +# enable/disable HVM guest ACPI, default=0 (disabled) #acpi=0 -# enable/disalbe vmx guest APIC, default=0 (disabled) +# enable/disable HVM guest APIC, default=0 (disabled) #apic=0 # List of which CPUS this domain is allowed to use, default Xen picks @@ -46,8 +46,6 @@ name = "ExampleVMXDomain" #vif = [ 'type=ioemu, mac=00:16:3e:00:00:11, bridge=xenbr0' ] # type=ioemu specify the NIC is an ioemu device not netfront vif = [ 'type=ioemu, bridge=xenbr0' ] -# for multiple NICs in device model, 3 in this example -#vif = [ 'type=ioemu, bridge=xenbr0', 'type=ioemu', 'type=ioemu'] #---------------------------------------------------------------------------- # Define the disk devices you want the domain to have access to, and diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile index 86918f5443..d0c738a41d 100644 --- a/tools/firmware/Makefile +++ b/tools/firmware/Makefile @@ -1,9 +1,9 @@ XEN_ROOT = ../.. include $(XEN_ROOT)/tools/Rules.mk -# vmxloader is a 32-bit protected mode binary. +# hvmloader is a 32-bit protected mode binary. # It belongs in /usr/lib, not /usr/lib64. -TARGET := vmxassist/vmxloader +TARGET := hvmloader/hvmloader INSTALL_DIR := $(DESTDIR)/usr/lib/xen/boot SUBDIRS := @@ -11,6 +11,7 @@ SUBDIRS += rombios SUBDIRS += vgabios SUBDIRS += acpi SUBDIRS += vmxassist +SUBDIRS += hvmloader .PHONY: all install clean diff --git a/tools/firmware/README b/tools/firmware/README index 0339fa679f..be796000f6 100644 --- a/tools/firmware/README +++ b/tools/firmware/README @@ -1,11 +1,11 @@ -Domain FirmWare support +Domain firmware support ----------------------- One of the key advantages of full virtualization hardware support (such -as Intel's VT or AMD's Pacifica) is the ability to run unmodified guest -operating systems. However, since most OSes rely on BIOS support during -their early bringup, we need to provide a surrogate ROMBIOS and VGABIOS -firmware layer. +as Intel's VT or AMD's SVM extensions) is the ability to run unmodified +guest operating systems. However, since most OSes rely on BIOS support +during their early bringup, we need to provide a surrogate ROMBIOS and +VGABIOS firmware layer. What's more, we need to support real-mode which is required by the firmware and bootstrap loaders. Real-mode support is especially diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile new file mode 100644 index 0000000000..c23698e775 --- /dev/null +++ b/tools/firmware/hvmloader/Makefile @@ -0,0 +1,56 @@ +# +# Makefile +# +# Leendert van Doorn, leendert@watson.ibm.com +# Copyright (c) 2005, International Business Machines Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307 USA. +# + +XEN_ROOT = ../../.. +include $(XEN_ROOT)/tools/Rules.mk + +# The HVM loader is started in 32-bit mode at the address below: +LOADADDR = 0x100000 + +DEFINES =-DDEBUG +XENINC =-I$(XEN_ROOT)/tools/libxc + +OBJECTS = hvmloader.o acpi_madt.o + +CC = gcc +OBJCOPY = objcopy +CFLAGS = $(DEFINES) -I. $(XENINC) -Wall -fno-builtin -O2 -msoft-float +CFLAGS += -m32 -march=i686 +LDFLAGS = -m32 -nostdlib -Wl,-N -Wl,-Ttext -Wl,$(LOADADDR) + +all: hvmloader + +hvmloader: roms.h hvmloader.c acpi_madt.c + $(CC) $(CFLAGS) -c hvmloader.c acpi_madt.c + $(CC) $(LDFLAGS) -o hvmloader.tmp hvmloader.o acpi_madt.o + $(OBJCOPY) hvmloader.tmp hvmloader + rm -f hvmloader.tmp + +roms.h: ../rombios/BIOS-bochs-latest ../vgabios/VGABIOS-lgpl-latest.bin ../vgabios/VGABIOS-lgpl-latest.cirrus.bin ../vmxassist/vmxassist.bin + ./mkhex rombios ../rombios/BIOS-bochs-latest > roms.h + ./mkhex vgabios_stdvga ../vgabios/VGABIOS-lgpl-latest.bin >> roms.h + ./mkhex vgabios_cirrusvga ../vgabios/VGABIOS-lgpl-latest.cirrus.bin >> roms.h + ./mkhex vmxassist ../vmxassist/vmxassist.bin >> roms.h + ./mkhex acpi ../acpi/acpi.bin >> roms.h + +clean: + rm -f roms.h acpi.h + rm -f hvmloader hvmloader.tmp hvmloader.o $(OBJECTS) + diff --git a/tools/firmware/vmxassist/acpi_madt.c b/tools/firmware/hvmloader/acpi_madt.c index 59e47b71c7..2e6d8d79e2 100644 --- a/tools/firmware/vmxassist/acpi_madt.c +++ b/tools/firmware/hvmloader/acpi_madt.c @@ -85,6 +85,7 @@ get_acpi_enabled(void) return (t ? t->acpi_enabled : 0); /* default no acpi */ } + static void * acpi_madt_get_madt(unsigned char *acpi_start) { diff --git a/tools/firmware/vmxassist/vmxloader.c b/tools/firmware/hvmloader/hvmloader.c index 2a20715bfc..9700dfbb08 100644 --- a/tools/firmware/vmxassist/vmxloader.c +++ b/tools/firmware/hvmloader/hvmloader.c @@ -1,5 +1,5 @@ /* - * vmxloader.c: ROM/VMXAssist image loader. + * hvmloader.c: HVM ROMBIOS/VGABIOS/ACPI/VMXAssist image loader. * * A quicky so that we can boot rom images as if they were a Linux kernel. * This code will copy the rom images (ROMBIOS/VGABIOS/VM86) into their @@ -21,13 +21,16 @@ * this program; if not, write to the Free Software Foundation, Inc., 59 Temple * Place - Suite 330, Boston, MA 02111-1307 USA. */ -#include "machine.h" #include "roms.h" +#include "../acpi/acpi2_0.h" /* for ACPI_PHYSICAL_ADDRESS */ -#include "acpi.h" -#include "../acpi/acpi2_0.h" // for ACPI_PHYSICAL_ADDRESS -int acpi_madt_update(unsigned char* acpi_start); -int get_acpi_enabled(void); +/* memory map */ +#define VGABIOS_PHYSICAL_ADDRESS 0x000C0000 +#define VMXASSIST_PHYSICAL_ADDRESS 0x000D0000 +#define ROMBIOS_PHYSICAL_ADDRESS 0x000F0000 + +/* invoke SVM's paged realmode support */ +#define SVM_VMMCALL_RESET_TO_REALMODE 0x00000001 /* * C runtime start off @@ -66,6 +69,30 @@ asm( "stack_top: \n" ); +extern int get_acpi_enabled(void); +extern int acpi_madt_update(unsigned char* acpi_start); + +static inline void +outw(unsigned short addr, unsigned short val) +{ + __asm__ __volatile__ ("outw %%ax, %%dx" :: "d"(addr), "a"(val)); +} + +static inline void +outb(unsigned short addr, unsigned char val) +{ + __asm__ __volatile__ ("outb %%al, %%dx" :: "d"(addr), "a"(val)); +} + +static inline unsigned char +inb(unsigned short addr) +{ + unsigned char val; + + __asm__ __volatile__ ("inb %w1,%0" : "=a" (val) : "Nd" (addr)); + return val; +} + void * memcpy(void *dest, const void *src, unsigned n) { @@ -103,38 +130,82 @@ cirrus_check(void) return inb(0x3C5) == 0x12; } +int +vmmcall(int edi, int esi, int edx, int ecx, int ebx) +{ + int eax; + + __asm__ __volatile__( + ".byte 0x0F,0x01,0xD9" + : "=a" (eax) + : "a"(0x58454E00), /* XEN\0 key */ + "b"(ebx), "c"(ecx), "d"(edx), "D"(edi), "S"(esi) + ); + return eax; +} + +int +check_amd(void) +{ + char id[12]; + + __asm__ __volatile__( + "cpuid" + : "=b" (*(int *)(&id[0])), + "=c" (*(int *)(&id[8])), + "=d" (*(int *)(&id[4])) + : "a" (0) + ); + return __builtin_memcmp(id, "AuthenticAMD", 12) == 0; +} + int main(void) { - puts("VMXAssist Loader\n"); + puts("HVM Loader\n"); + puts("Loading ROMBIOS ...\n"); - memcpy((void *)0xF0000, rombios, sizeof(rombios)); + memcpy((void *)ROMBIOS_PHYSICAL_ADDRESS, rombios, sizeof(rombios)); if (cirrus_check()) { puts("Loading Cirrus VGABIOS ...\n"); - memcpy((void *)0xC0000, + memcpy((void *)VGABIOS_PHYSICAL_ADDRESS, vgabios_cirrusvga, sizeof(vgabios_cirrusvga)); } else { puts("Loading Standard VGABIOS ...\n"); - memcpy((void *)0xC0000, + memcpy((void *)VGABIOS_PHYSICAL_ADDRESS, vgabios_stdvga, sizeof(vgabios_stdvga)); } if (get_acpi_enabled() != 0) { puts("Loading ACPI ...\n"); - acpi_madt_update((unsigned char*)acpi); + acpi_madt_update((unsigned char *) acpi); if (ACPI_PHYSICAL_ADDRESS+sizeof(acpi) <= 0xF0000) { - /* make sure acpi table does not overlap rombios + /* + * Make sure acpi table does not overlap rombios * currently acpi less than 8K will be OK. */ - memcpy((void *)ACPI_PHYSICAL_ADDRESS, acpi, sizeof(acpi)); + memcpy((void *)ACPI_PHYSICAL_ADDRESS, acpi, + sizeof(acpi)); } } - puts("Loading VMXAssist ...\n"); - memcpy((void *)TEXTADDR, vmxassist, sizeof(vmxassist)); + if (check_amd()) { + /* AMD implies this is SVM */ + puts("SVM go ...\n"); + vmmcall(SVM_VMMCALL_RESET_TO_REALMODE, 0, 0, 0, 0); + } else { + puts("Loading VMXAssist ...\n"); + memcpy((void *)VMXASSIST_PHYSICAL_ADDRESS, + vmxassist, sizeof(vmxassist)); - puts("Go ...\n"); - asm volatile ( "jmp *%%eax" : : "a" (TEXTADDR), "d" (0) ); + puts("VMX go ...\n"); + __asm__ __volatile__( + "jmp *%%eax" + : : "a" (VMXASSIST_PHYSICAL_ADDRESS), "d" (0) + ); + } + puts("Failed to invoke ROMBIOS\n"); return 0; } + diff --git a/tools/firmware/vmxassist/mkhex b/tools/firmware/hvmloader/mkhex index 7389d70483..7389d70483 100755..100644 --- a/tools/firmware/vmxassist/mkhex +++ b/tools/firmware/hvmloader/mkhex diff --git a/tools/firmware/rombios/rombios.c b/tools/firmware/rombios/rombios.c index 857e94523a..397b9d8204 100644 --- a/tools/firmware/rombios/rombios.c +++ b/tools/firmware/rombios/rombios.c @@ -26,8 +26,8 @@ // ROM BIOS for use with Bochs/Plex x86 emulation environment -#define VMXASSIST -#undef VMXTEST +#define HVMASSIST +#undef HVMTEST // Xen full virtualization does not handle unaligned IO with page crossing. // Disable 32-bit PIO as a workaround. @@ -177,8 +177,8 @@ #define BASE_MEM_IN_K (640 - EBDA_SIZE) // Define the application NAME -#ifdef VMXASSIST -# define BX_APPNAME "VMXAssist" +#ifdef HVMASSIST +# define BX_APPNAME "HVMAssist" #elif PLEX86 # define BX_APPNAME "Plex86" #else @@ -1430,7 +1430,7 @@ ASM_START ASM_END } -#ifdef VMXASSIST +#ifdef HVMASSIST void copy_e820_table() { @@ -1440,7 +1440,7 @@ copy_e820_table() write_word(0xe000, 0x8, nr_entries); memcpyb(0xe000, 0x10, 0x9000, 0x2d0, nr_entries * 0x14); } -#endif /* VMXASSIST */ +#endif /* HVMASSIST */ #if BX_DEBUG_SERIAL /* serial debug port*/ @@ -1520,7 +1520,7 @@ send(action, c) if (c == '\n') uart_tx_byte(BX_DEBUG_PORT, '\r'); uart_tx_byte(BX_DEBUG_PORT, c); #endif -#ifdef VMXASSIST +#ifdef HVMASSIST outb(0xE9, c); #endif #if BX_VIRTUAL_PORTS @@ -4089,7 +4089,7 @@ ASM_END case 0x20: // coded by osmaker aka K.J. if(regs.u.r32.edx == 0x534D4150) /* SMAP */ { -#ifdef VMXASSIST +#ifdef HVMASSIST if ((regs.u.r16.bx / 0x14) * 0x14 == regs.u.r16.bx) { Bit16u e820_table_size = read_word(0xe000, 0x8) * 0x14; @@ -9595,7 +9595,7 @@ post_default_ints: ;; int 1C already points at dummy_iret_handler (above) mov al, #0x34 ; timer0: binary count, 16bit count, mode 2 out 0x43, al -#ifdef VMXASSIST +#ifdef HVMASSIST mov al, #0x0b ; #0xe90b = 20 Hz (temporary, until we fix xen/vmx support) out 0x40, al ; lsb mov al, #0xe9 @@ -9702,22 +9702,10 @@ post_default_ints: mov al, #0x11 ; send initialisation commands out 0x20, al out 0xa0, al -#ifdef VMXASSIST - ;; The vm86 emulator expects interrupts to be mapped beyond the reserved - ;; vectors (0 through 31). Since rombios fully controls the hardware, we - ;; map it the way the emulator needs it and expect that it will do the - ;; proper 8086 interrupt translation (that is, master pic base is at 0x8 - ;; and slave pic base is at 0x70). - mov al, #0x20 - out 0x21, al - mov al, #0x28 - out 0xa1, al -#else mov al, #0x08 out 0x21, al mov al, #0x70 out 0xa1, al -#endif mov al, #0x04 out 0x21, al mov al, #0x02 @@ -9734,7 +9722,7 @@ post_default_ints: #endif out 0xa1, AL ;slave pic: unmask IRQ 12, 13, 14 -#ifdef VMXASSIST +#ifdef HVMASSIST call _copy_e820_table #endif @@ -10368,13 +10356,13 @@ dummy_iret_handler: HALT(__LINE__) iret -#ifdef VMXTEST +#ifdef HVMTEST .org 0xffe0 jmp 0xf000:post; #endif .org 0xfff0 ; Power-up Entry Point -#ifdef VMXTEST +#ifdef HVMTEST jmp 0xd000:0x0003; #else jmp 0xf000:post diff --git a/tools/firmware/rombios/rombios.diffs b/tools/firmware/rombios/rombios.diffs deleted file mode 100644 index 8ec23ef9de..0000000000 --- a/tools/firmware/rombios/rombios.diffs +++ /dev/null @@ -1,206 +0,0 @@ ---- /home/leendert/cvs/bochs/bios/rombios.c 2005-05-23 12:18:11.000000000 -0400 -+++ rombios.c 2005-06-01 23:46:45.000000000 -0400 -@@ -26,6 +26,7 @@ - - // ROM BIOS for use with Bochs/Plex x86 emulation environment - -+#define VMXASSIST - - // ROM BIOS compatability entry points: - // =================================== -@@ -170,7 +171,9 @@ - #define BASE_MEM_IN_K (640 - EBDA_SIZE) - - // Define the application NAME --#ifdef PLEX86 -+#ifdef VMXASSIST -+# define BX_APPNAME "VMXAssist" -+#elif PLEX86 - # define BX_APPNAME "Plex86" - #else - # define BX_APPNAME "Bochs" -@@ -314,7 +317,6 @@ - ASM_END - } - --#if 0 - // memcpy of count bytes - void - memcpyb(dseg,doffset,sseg,soffset,count) -@@ -362,6 +364,7 @@ - ASM_END - } - -+#if 0 - // memcpy of count dword - void - memcpyd(dseg,doffset,sseg,soffset,count) -@@ -858,6 +861,7 @@ - static void write_byte(); - static void write_word(); - static void bios_printf(); -+static void copy_e820_table(); - - static Bit8u inhibit_mouse_int_and_events(); - static void enable_mouse_int_and_events(); -@@ -1420,6 +1424,16 @@ - ASM_END - } - -+#ifdef VMXASSIST -+void -+copy_e820_table() -+{ -+ Bit8u nr_entries = read_byte(0x9000, 0x1e8); -+ write_word(0xe000, 0x8, nr_entries); -+ memcpyb(0xe000, 0x10, 0x9000, 0x2d0, nr_entries * 0x14); -+} -+#endif /* VMXASSIST */ -+ - #if BX_DEBUG_SERIAL - /* serial debug port*/ - #define BX_DEBUG_PORT 0x03f8 -@@ -1498,6 +1512,9 @@ - if (c == '\n') uart_tx_byte(BX_DEBUG_PORT, '\r'); - uart_tx_byte(BX_DEBUG_PORT, c); - #endif -+#ifdef VMXASSIST -+ outb(0xE9, c); -+#endif - #if BX_VIRTUAL_PORTS - if (action & BIOS_PRINTF_DEBUG) outb(DEBUG_PORT, c); - if (action & BIOS_PRINTF_INFO) outb(INFO_PORT, c); -@@ -4053,6 +4070,66 @@ - case 0x20: // coded by osmaker aka K.J. - if(regs.u.r32.edx == 0x534D4150) - { -+#ifdef VMXASSIST -+ if ((regs.u.r16.bx / 0x14)* 0x14 == regs.u.r16.bx) { -+ Bit16u e820_table_size = read_word(0xe000, 0x8) * 0x14; -+ -+ if (regs.u.r16.bx + 0x14 <= e820_table_size) { -+ memcpyb(ES, regs.u.r16.di, -+ 0xe000, 0x10 + regs.u.r16.bx, 0x14); -+ } -+ regs.u.r32.ebx += 0x14; -+ if ((regs.u.r32.ebx + 0x14 - 1) > e820_table_size) -+ regs.u.r32.ebx = 0; -+ regs.u.r32.eax = 0x534D4150; -+ regs.u.r32.ecx = 0x14; -+ CLEAR_CF(); -+ return; -+ } else if (regs.u.r16.bx == 1) { -+ extended_memory_size = inb_cmos(0x35); -+ extended_memory_size <<= 8; -+ extended_memory_size |= inb_cmos(0x34); -+ extended_memory_size *= 64; -+ if (extended_memory_size > 0x3bc000) // greater than EFF00000??? -+ { -+ extended_memory_size = 0x3bc000; // everything after this is reserved memory until we get to 0x100000000 -+ } -+ extended_memory_size *= 1024; -+ extended_memory_size += 15728640; // make up for the 16mb of memory that is chopped off -+ -+ if (extended_memory_size <= 15728640) -+ { -+ extended_memory_size = inb_cmos(0x31); -+ extended_memory_size <<= 8; -+ extended_memory_size |= inb_cmos(0x30); -+ extended_memory_size *= 1024; -+ } -+ -+ write_word(ES, regs.u.r16.di, 0x0000); -+ write_word(ES, regs.u.r16.di+2, 0x0010); -+ write_word(ES, regs.u.r16.di+4, 0x0000); -+ write_word(ES, regs.u.r16.di+6, 0x0000); -+ -+ write_word(ES, regs.u.r16.di+8, extended_memory_size); -+ extended_memory_size >>= 16; -+ write_word(ES, regs.u.r16.di+10, extended_memory_size); -+ extended_memory_size >>= 16; -+ write_word(ES, regs.u.r16.di+12, extended_memory_size); -+ extended_memory_size >>= 16; -+ write_word(ES, regs.u.r16.di+14, extended_memory_size); -+ -+ write_word(ES, regs.u.r16.di+16, 0x1); -+ write_word(ES, regs.u.r16.di+18, 0x0); -+ -+ regs.u.r32.ebx = 0; -+ regs.u.r32.eax = 0x534D4150; -+ regs.u.r32.ecx = 0x14; -+ CLEAR_CF(); -+ return; -+ } else { /* AX=E820, DX=534D4150, BX unrecognized */ -+ goto int15_unimplemented; -+ } -+#else - switch(regs.u.r16.bx) - { - case 0: -@@ -4070,6 +4147,7 @@ - write_word(ES, regs.u.r16.di+18, 0x0); - - regs.u.r32.ebx = 1; -+ - regs.u.r32.eax = 0x534D4150; - regs.u.r32.ecx = 0x14; - CLEAR_CF(); -@@ -4121,6 +4199,7 @@ - goto int15_unimplemented; - break; - } -+#endif - } else { - // if DX != 0x534D4150) - goto int15_unimplemented; -@@ -9497,9 +9576,16 @@ - ;; int 1C already points at dummy_iret_handler (above) - mov al, #0x34 ; timer0: binary count, 16bit count, mode 2 - out 0x43, al -+#ifdef VMXASSIST -+ mov al, #0x0b ; #0xe90b = 20 Hz (temporary, until we fix xen/vmx support) -+ out 0x40, al ; lsb -+ mov al, #0xe9 -+ out 0x40, al ; msb -+#else - mov al, #0x00 ; maximum count of 0000H = 18.2Hz - out 0x40, al - out 0x40, al -+#endif - - ;; Keyboard - SET_INT_VECTOR(0x09, #0xF000, #int09_handler) -@@ -9597,10 +9683,22 @@ - mov al, #0x11 ; send initialisation commands - out 0x20, al - out 0xa0, al -+#ifdef VMXASSIST -+ ;; The vm86 emulator expects interrupts to be mapped beyond the reserved -+ ;; vectors (0 through 31). Since rombios fully controls the hardware, we -+ ;; map it the way the emulator needs it and expect that it will do the -+ ;; proper 8086 interrupt translation (that is, master pic base is at 0x8 -+ ;; and slave pic base is at 0x70). -+ mov al, #0x20 -+ out 0x21, al -+ mov al, #0x28 -+ out 0xa1, al -+#else - mov al, #0x08 - out 0x21, al - mov al, #0x70 - out 0xa1, al -+#endif - mov al, #0x04 - out 0x21, al - mov al, #0x02 -@@ -9617,6 +9715,10 @@ - #endif - out 0xa1, AL ;slave pic: unmask IRQ 12, 13, 14 - -+#ifdef VMXASSIST -+ call _copy_e820_table -+#endif -+ - call pcibios_init - - call rom_scan diff --git a/tools/firmware/vmxassist/Makefile b/tools/firmware/vmxassist/Makefile index e64473716b..4f84410132 100644 --- a/tools/firmware/vmxassist/Makefile +++ b/tools/firmware/vmxassist/Makefile @@ -37,13 +37,7 @@ LDFLAGS = -m elf_i386 OBJECTS = head.o trap.o vm86.o setup.o util.o -all: vmxloader - -vmxloader: roms.h vmxloader.c acpi.h acpi_madt.c - $(CC) $(CFLAGS) $(DEFINES) -c vmxloader.c -c acpi_madt.c - $(CC) -o vmxloader.tmp -m32 -nostdlib -Wl,-N -Wl,-Ttext -Wl,0x100000 vmxloader.o acpi_madt.o - objcopy vmxloader.tmp vmxloader - rm -f vmxloader.tmp +all: vmxassist.bin vmxassist.bin: vmxassist.ld $(OBJECTS) $(CPP) $(DEFINES) vmxassist.ld > vmxassist.tmp @@ -68,15 +62,6 @@ setup.o: machine.h setup.c util.o: machine.h util.c $(CC) $(CFLAGS) -c util.c -roms.h: ../rombios/BIOS-bochs-latest ../vgabios/VGABIOS-lgpl-latest.bin ../vgabios/VGABIOS-lgpl-latest.cirrus.bin vmxassist.bin - ./mkhex rombios ../rombios/BIOS-bochs-latest > roms.h - ./mkhex vgabios_stdvga ../vgabios/VGABIOS-lgpl-latest.bin >> roms.h - ./mkhex vgabios_cirrusvga ../vgabios/VGABIOS-lgpl-latest.cirrus.bin >> roms.h - ./mkhex vmxassist vmxassist.bin >> roms.h - -acpi.h: ../acpi/acpi.bin - ./mkhex acpi ../acpi/acpi.bin > acpi.h - offsets.h: gen ./gen > offsets.h @@ -84,7 +69,7 @@ gen: gen.c $(HOSTCC) $(HOSTCFLAGS) -I. $(XENINC) -o gen gen.c clean: - rm -f vmxassist vmxassist.tmp vmxassist.bin vmxassist.run vmxassist.sym head.s roms.h acpi.h - rm -f vmxloader vmxloader.tmp vmxloader.o $(OBJECTS) + rm -f vmxassist vmxassist.tmp vmxassist.bin vmxassist.run vmxassist.sym head.s + rm -f $(OBJECTS) rm -f gen gen.o offsets.h diff --git a/tools/firmware/vmxassist/head.S b/tools/firmware/vmxassist/head.S index 1410a730f0..129f69274f 100644 --- a/tools/firmware/vmxassist/head.S +++ b/tools/firmware/vmxassist/head.S @@ -111,6 +111,9 @@ _start: cli /* save register parameters to C land */ +#ifdef TEST + xorl %edx, %edx +#endif movl %edx, booting_cpu movl %ebx, booting_vector diff --git a/tools/firmware/vmxassist/setup.c b/tools/firmware/vmxassist/setup.c index dc253afec0..c4fcbb6846 100644 --- a/tools/firmware/vmxassist/setup.c +++ b/tools/firmware/vmxassist/setup.c @@ -194,6 +194,12 @@ setup_pic(void) } void +setiomap(int port) +{ + tss.iomap[port >> 3] |= 1 << (port & 7); +} + +void enter_real_mode(struct regs *regs) { /* mask off TSS busy bit */ @@ -217,6 +223,13 @@ enter_real_mode(struct regs *regs) } regs->uesp = 0; regs->uss = 0; + + /* intercept accesses to the PIC */ + setiomap(PIC_MASTER+PIC_CMD); + setiomap(PIC_MASTER+PIC_IMR); + setiomap(PIC_SLAVE+PIC_CMD); + setiomap(PIC_SLAVE+PIC_IMR); + printf("Starting emulated 16-bit real-mode: ip=%04x:%04x\n", regs->cs, regs->eip); diff --git a/tools/firmware/vmxassist/vm86.c b/tools/firmware/vmxassist/vm86.c index c9a5311405..eb3ee3992c 100644 --- a/tools/firmware/vmxassist/vm86.c +++ b/tools/firmware/vmxassist/vm86.c @@ -738,6 +738,83 @@ interrupt(struct regs *regs, int n) regs->cs = read16(address(regs, 0, n * 4 + 2)); } +/* + * Most port I/O operations are passed unmodified. We do have to be + * careful and make sure the emulated program isn't remapping the + * interrupt vectors. The following simple state machine catches + * these attempts and rewrites them. + */ +int +outbyte(struct regs *regs, unsigned prefix, unsigned opc) +{ + static char icw2[2] = { 0 }; + int al, port; + + switch (opc) { + case 0xE6: /* outb port, al */ + port = fetch8(regs); + break; + case 0xEE: /* outb (%dx), al */ + port = MASK16(regs->edx); + break; + default: + return 0; + } + + al = regs->eax & 0xFF; + + switch (port) { + case PIC_MASTER + PIC_CMD: + if (al & (1 << 4)) /* A0=0,D4=1 -> ICW1 */ + icw2[0] = 1; + break; + case PIC_MASTER + PIC_IMR: + if (icw2[0]) { + icw2[0] = 0; + printf("Remapping master: ICW2 0x%x -> 0x%x\n", + al, NR_EXCEPTION_HANDLER); + al = NR_EXCEPTION_HANDLER; + } + break; + + case PIC_SLAVE + PIC_CMD: + if (al & (1 << 4)) /* A0=0,D4=1 -> ICW1 */ + icw2[1] = 1; + break; + case PIC_SLAVE + PIC_IMR: + if (icw2[1]) { + icw2[1] = 0; + printf("Remapping slave: ICW2 0x%x -> 0x%x\n", + al, NR_EXCEPTION_HANDLER+8); + al = NR_EXCEPTION_HANDLER+8; + } + break; + } + + outb(port, al); + return 1; +} + +int +inbyte(struct regs *regs, unsigned prefix, unsigned opc) +{ + int port; + + switch (opc) { + case 0xE4: /* inb al, port */ + port = fetch8(regs); + break; + case 0xEC: /* inb al, (%dx) */ + port = MASK16(regs->edx); + break; + default: + return 0; + } + + regs->eax = (regs->eax & ~0xFF) | inb(port); + return 1; +} + enum { OPC_INVALID, OPC_EMULATED }; /* @@ -885,6 +962,16 @@ opcode(struct regs *regs) } return OPC_EMULATED; + case 0xE4: /* inb al, port */ + if (!inbyte(regs, prefix, opc)) + goto invalid; + return OPC_EMULATED; + + case 0xE6: /* outb port, al */ + if (!outbyte(regs, prefix, opc)) + goto invalid; + return OPC_EMULATED; + case 0xEA: /* jmpl */ if ((mode == VM86_REAL_TO_PROTECTED) || (mode == VM86_PROTECTED_TO_REAL)) { @@ -903,6 +990,16 @@ opcode(struct regs *regs) } goto invalid; + case 0xEC: /* inb al, (%dx) */ + if (!inbyte(regs, prefix, opc)) + goto invalid; + return OPC_EMULATED; + + case 0xEE: /* outb (%dx), al */ + if (!outbyte(regs, prefix, opc)) + goto invalid; + return OPC_EMULATED; + case 0xF0: /* lock */ TRACE((regs, regs->eip - eip, "lock")); continue; diff --git a/tools/firmware/vmxassist/vmxassist.ld b/tools/firmware/vmxassist/vmxassist.ld index c9807c63f6..5bcc491075 100644 --- a/tools/firmware/vmxassist/vmxassist.ld +++ b/tools/firmware/vmxassist/vmxassist.ld @@ -2,7 +2,6 @@ * vmxassist.ld */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") -/*OUTPUT_ARCH(i386)*/ ENTRY(_start) SECTIONS diff --git a/tools/ioemu/exec-all.h b/tools/ioemu/exec-all.h index 0e5ab710d6..97d591bcf6 100644 --- a/tools/ioemu/exec-all.h +++ b/tools/ioemu/exec-all.h @@ -584,5 +584,5 @@ static inline target_ulong get_phys_addr_code(CPUState *env, target_ulong addr) //#define DEBUG_UNUSED_IOPORT //#define DEBUG_IOPORT -#define TARGET_VMX +#define TARGET_HVM diff --git a/tools/ioemu/hw/i8254.c b/tools/ioemu/hw/i8254.c index 226db96962..1d98bd72a5 100644 --- a/tools/ioemu/hw/i8254.c +++ b/tools/ioemu/hw/i8254.c @@ -50,7 +50,7 @@ typedef struct PITChannelState { int64_t next_transition_time; QEMUTimer *irq_timer; int irq; - int vmx_channel; /* Is this accelerated by VMX ? */ + int hvm_channel; /* Is this accelerated by HVM ? */ } PITChannelState; struct PITState { @@ -61,8 +61,8 @@ static PITState pit_state; static void pit_irq_timer_update(PITChannelState *s, int64_t current_time); -/* currently operate which channel for vmx use */ -int vmx_channel = -1; +/* currently operate which channel for hvm use */ +int hvm_channel = -1; extern FILE *logfile; static int pit_get_count(PITChannelState *s) { @@ -215,7 +215,7 @@ int pit_get_gate(PITState *pit, int channel) return s->gate; } -void pit_reset_vmx_vectors() +void pit_reset_hvm_vectors() { extern shared_iopage_t *shared_page; ioreq_t *req; @@ -225,18 +225,18 @@ void pit_reset_vmx_vectors() irq = 0; for(i = 0; i < 3; i++) { - if (pit_state.channels[i].vmx_channel) + if (pit_state.channels[i].hvm_channel) break; } if (i == 3) return; - /* Assumes just one VMX accelerated channel */ - vmx_channel = i; - s = &pit_state.channels[vmx_channel]; + /* Assumes just one HVM accelerated channel */ + hvm_channel = i; + s = &pit_state.channels[hvm_channel]; fprintf(logfile, - "VMX_PIT:guest init pit channel %d!\n", vmx_channel); + "HVM_PIT:guest init pit channel %d!\n", hvm_channel); req = &shared_page->vcpu_iodata[0].vp_ioreq; req->state = STATE_IORESP_HOOK; @@ -247,9 +247,9 @@ void pit_reset_vmx_vectors() */ req->u.data = s->count; req->u.data |= (irq << 16); - req->u.data |= (vmx_channel << 24); + req->u.data |= (hvm_channel << 24); req->u.data |= ((s->rw_mode) << 26); - fprintf(logfile, "VMX_PIT:pass info 0x%llx to HV!\n", req->u.data); + fprintf(logfile, "HVM_PIT:pass info 0x%llx to HV!\n", req->u.data); } static inline void pit_load_count(PITChannelState *s, int val) @@ -261,9 +261,9 @@ static inline void pit_load_count(PITChannelState *s, int val) /* guest init this pit channel for periodic mode. we do not update related * timer so the channel never send intr from device model*/ - if (vmx_channel != -1 && s->mode == 2) { - pit_reset_vmx_vectors(); - vmx_channel = -1; + if (hvm_channel != -1 && s->mode == 2) { + pit_reset_hvm_vectors(); + hvm_channel = -1; } /* pit_irq_timer_update(s, s->count_load_time);*/ @@ -323,8 +323,8 @@ static void pit_ioport_write(void *opaque, uint32_t addr, uint32_t val) } } else { s = &pit->channels[addr]; - s->vmx_channel = 1; - vmx_channel = addr; + s->hvm_channel = 1; + hvm_channel = addr; switch(s->write_state) { default: case RW_STATE_LSB: diff --git a/tools/ioemu/hw/i8259.c b/tools/ioemu/hw/i8259.c index 6385bca28f..4964076041 100644 --- a/tools/ioemu/hw/i8259.c +++ b/tools/ioemu/hw/i8259.c @@ -31,7 +31,7 @@ //#define DEBUG_IRQ_LATENCY //#define DEBUG_IRQ_COUNT -extern void pit_reset_vmx_vectors(); +extern void pit_reset_hvm_vectors(); typedef struct PicState { uint8_t last_irr; /* edge detection */ @@ -368,7 +368,7 @@ static void pic_ioport_write(void *opaque, uint32_t addr, uint32_t val) case 1: s->irq_base = val & 0xf8; s->init_state = 2; - pit_reset_vmx_vectors(); + pit_reset_hvm_vectors(); break; case 2: if (s->init4) { diff --git a/tools/ioemu/monitor.c b/tools/ioemu/monitor.c index 643313197d..3280dc0169 100644 --- a/tools/ioemu/monitor.c +++ b/tools/ioemu/monitor.c @@ -225,10 +225,10 @@ static void do_info_history (void) } } -extern void destroy_vmx_domain(void); +extern void destroy_hvm_domain(void); static void do_quit(void) { - destroy_vmx_domain(); + destroy_hvm_domain(); exit(0); } @@ -506,8 +506,8 @@ static term_cmd_t info_cmds[] = { "", "show i8259 (PIC) state", }, { "pci", "", pci_info, "", "show PCI info", }, - { "vmxiopage", "", sp_info, - "", "show VMX device model shared page info", }, + { "hvmiopage", "", sp_info, + "", "show HVM device model shared page info", }, { NULL, NULL, }, }; @@ -700,7 +700,7 @@ static void monitor_handle_command(const char *cmdline) args[nb_args++] = (void *)has_option; } break; - /* TODO: add more commands we need here to support vmx device model */ + /* TODO: add more commands we need here to support hvm device model */ case '/': case 'i': default: @@ -772,14 +772,14 @@ static void monitor_handle_command1(void *opaque, const char *cmdline) static void monitor_start_input(void) { - readline_start("(VTXen) ", 0, monitor_handle_command1, NULL); + readline_start("(HVMXen) ", 0, monitor_handle_command1, NULL); } void monitor_init(CharDriverState *hd, int show_banner) { monitor_hd = hd; if (show_banner) { - term_printf("VMX device model. type 'q' to exit\n"); + term_printf("HVM device model. type 'q' to exit\n"); } qemu_chr_add_read_handler(hd, term_can_read, term_read, NULL); monitor_start_input(); diff --git a/tools/ioemu/target-i386-dm/helper2.c b/tools/ioemu/target-i386-dm/helper2.c index 4d3088ce3b..94f10df4a3 100644 --- a/tools/ioemu/target-i386-dm/helper2.c +++ b/tools/ioemu/target-i386-dm/helper2.c @@ -20,7 +20,9 @@ /* * Main cpu loop for handling I/O requests coming from a virtual machine + * * Copyright © 2004, Intel Corporation. + * Copyright © 2005, International Business Machines Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU Lesser General Public License, @@ -394,7 +396,7 @@ void cpu_handle_ioreq(CPUState *env) int xc_handle; void -destroy_vmx_domain(void) +destroy_hvm_domain(void) { extern FILE* logfile; char destroy_cmd[32]; @@ -467,11 +469,11 @@ int main_loop(void) (void)ioctl(evtchn_fd, IOCTL_EVTCHN_NOTIFY, ¬ify); } } - destroy_vmx_domain(); + destroy_hvm_domain(); return 0; } -static void qemu_vmx_reset(void *unused) +static void qemu_hvm_reset(void *unused) { char cmd[64]; @@ -489,7 +491,7 @@ CPUState * cpu_init() int rc; cpu_exec_init(); - qemu_register_reset(qemu_vmx_reset, NULL); + qemu_register_reset(qemu_hvm_reset, NULL); env = malloc(sizeof(CPUX86State)); if (!env) return NULL; diff --git a/tools/ioemu/vl.c b/tools/ioemu/vl.c index 736a762d19..aeed28e1e2 100644 --- a/tools/ioemu/vl.c +++ b/tools/ioemu/vl.c @@ -125,7 +125,7 @@ static char network_script[1024]; int pit_min_timer_count = 0; int nb_nics; char bridge[16]; -char domain_name[1024] = { 'V', 'T', 'X', 'E', 'N', '-'}; +char domain_name[1024] = { 'H','V', 'M', 'X', 'E', 'N', '-'}; NetDriverState nd_table[MAX_NICS]; QEMUTimer *gui_timer; QEMUTimer *polling_timer; @@ -826,8 +826,8 @@ static void init_timers(void) { /* get times() syscall frequency */ timer_freq = sysconf(_SC_CLK_TCK); - -#ifndef TARGET_VMX + +#ifndef TARGET_HVM /* timer signal */ sigfillset(&act.sa_mask); act.sa_flags = 0; @@ -869,7 +869,7 @@ static void init_timers(void) pit_min_timer_count = ((uint64_t)itv.it_interval.tv_usec * PIT_FREQ) / 1000000; } -#endif /* TARGET_VMX */ +#endif /* TARGET_HVM */ } #endif } diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile index 44fc9d8160..84d4829ecf 100644 --- a/tools/libxc/Makefile +++ b/tools/libxc/Makefile @@ -45,7 +45,7 @@ else BUILD_SRCS += xc_load_aout9.c BUILD_SRCS += xc_linux_restore.c BUILD_SRCS += xc_linux_save.c -BUILD_SRCS += xc_vmx_build.c +BUILD_SRCS += xc_hvm_build.c endif CFLAGS += -Wall diff --git a/tools/libxc/xc_vmx_build.c b/tools/libxc/xc_hvm_build.c index 222ec17207..086adbb181 100644 --- a/tools/libxc/xc_vmx_build.c +++ b/tools/libxc/xc_hvm_build.c @@ -1,5 +1,5 @@ /****************************************************************************** - * xc_vmx_build.c + * xc_hvm_build.c */ #include <stddef.h> @@ -12,7 +12,7 @@ #include <xen/hvm/hvm_info_table.h> #include <xen/hvm/ioreq.h> -#define VMX_LOADER_ENTR_ADDR 0x00100000 +#define HVM_LOADER_ENTR_ADDR 0x00100000 #define L1_PROT (_PAGE_PRESENT|_PAGE_RW|_PAGE_ACCESSED|_PAGE_USER) #define L2_PROT (_PAGE_PRESENT|_PAGE_RW|_PAGE_ACCESSED|_PAGE_DIRTY|_PAGE_USER) @@ -133,7 +133,7 @@ set_hvm_info_checksum(struct hvm_info_table *t) /* * Use E820 reserved memory 0x9F800 to pass HVM info to vmxloader - * vmxloader will use this info to set BIOS accordingly + * hvmloader will use this info to set BIOS accordingly */ static int set_hvm_info(int xc_handle, uint32_t dom, unsigned long *pfn_list, unsigned int vcpus, @@ -142,6 +142,7 @@ static int set_hvm_info(int xc_handle, uint32_t dom, char *va_map; struct hvm_info_table *va_hvm; + va_map = xc_map_foreign_range( xc_handle, dom, @@ -302,7 +303,7 @@ static int setup_guest(int xc_handle, unsigned long shared_info_frame, unsigned int control_evtchn, unsigned int vcpus, - unsigned int acpi, + unsigned int acpi, unsigned int apic, unsigned int store_evtchn, unsigned long *store_mfn) @@ -357,7 +358,7 @@ static int setup_guest(int xc_handle, vpt_end = vpt_start + (nr_pt_pages * PAGE_SIZE); printf("VIRTUAL MEMORY ARRANGEMENT:\n" - " Loaded VMX loader: %08lx->%08lx\n" + " Loaded HVM loader: %08lx->%08lx\n" " Page tables: %08lx->%08lx\n" " TOTAL: %08lx->%08lx\n", dsi.v_kernstart, dsi.v_kernend, @@ -514,7 +515,7 @@ static int setup_guest(int xc_handle, } if ( set_hvm_info(xc_handle, dom, page_array, vcpus, acpi, apic) ) { - fprintf(stderr, "Couldn't set hvm info for VMX guest.\n"); + fprintf(stderr, "Couldn't set hvm info for HVM guest.\n"); goto error_out; } @@ -595,13 +596,13 @@ static int setup_guest(int xc_handle, return -1; } -int xc_vmx_build(int xc_handle, +int xc_hvm_build(int xc_handle, uint32_t domid, int memsize, const char *image_name, unsigned int control_evtchn, unsigned int vcpus, - unsigned int acpi, + unsigned int acpi, unsigned int apic, unsigned int store_evtchn, unsigned long *store_mfn) @@ -622,8 +623,8 @@ int xc_vmx_build(int xc_handle, if ( !strstr(xen_caps, "hvm") ) { - PERROR("CPU doesn't support VMX Extensions or " - "CPU VMX Extensions are not turned on"); + PERROR("CPU doesn't support HVM extensions or " + "the extensions are not enabled"); goto error_out; } @@ -653,6 +654,7 @@ int xc_vmx_build(int xc_handle, memset(ctxt, 0, sizeof(*ctxt)); + ctxt->flags = VGCF_HVM_GUEST; if ( setup_guest(xc_handle, domid, memsize, image, image_size, nr_pages, ctxt, op.u.getdomaininfo.shared_info_frame, control_evtchn, vcpus, acpi, apic, store_evtchn, store_mfn) < 0) @@ -663,7 +665,6 @@ int xc_vmx_build(int xc_handle, free(image); - ctxt->flags = VGCF_VMX_GUEST; /* FPU is set up to default initial state. */ memset(&ctxt->fpu_ctxt, 0, sizeof(ctxt->fpu_ctxt)); @@ -779,7 +780,7 @@ static int parseelfimage(char *elfbase, dsi->v_kernstart = kernstart; dsi->v_kernend = kernend; - dsi->v_kernentry = VMX_LOADER_ENTR_ADDR; + dsi->v_kernentry = HVM_LOADER_ENTR_ADDR; dsi->v_end = dsi->v_kernend; diff --git a/tools/libxc/xc_ia64_stubs.c b/tools/libxc/xc_ia64_stubs.c index e742df3ba0..2a403cd3b6 100644 --- a/tools/libxc/xc_ia64_stubs.c +++ b/tools/libxc/xc_ia64_stubs.c @@ -621,7 +621,7 @@ static int setup_guest( int xc_handle, return -1; } -int xc_vmx_build(int xc_handle, +int xc_hvm_build(int xc_handle, uint32_t domid, int memsize, const char *image_name, diff --git a/tools/libxc/xc_linux_build.c b/tools/libxc/xc_linux_build.c index eae62d20ce..f90f509f2c 100644 --- a/tools/libxc/xc_linux_build.c +++ b/tools/libxc/xc_linux_build.c @@ -815,7 +815,7 @@ static int setup_guest(int xc_handle, start_info->mod_len = initrd_len; } if ( cmdline != NULL ) - { + { strncpy((char *)start_info->cmd_line, cmdline, MAX_GUEST_CMDLINE); start_info->cmd_line[MAX_GUEST_CMDLINE-1] = '\0'; } diff --git a/tools/libxc/xc_ptrace.c b/tools/libxc/xc_ptrace.c index ac30269cfb..5cea66db82 100644 --- a/tools/libxc/xc_ptrace.c +++ b/tools/libxc/xc_ptrace.c @@ -240,7 +240,7 @@ map_domain_va( } if ( (pde = cr3_virt[cpu][vtopdi(va)]) == 0 ) goto error_out; - if ( (ctxt[cpu].flags & VGCF_VMX_GUEST) && paging_enabled(&ctxt[cpu]) ) + if ( (ctxt[cpu].flags & VGCF_HVM_GUEST) && paging_enabled(&ctxt[cpu]) ) pde = page_array[pde >> PAGE_SHIFT] << PAGE_SHIFT; if ( pde != pde_phys[cpu] ) { @@ -255,7 +255,7 @@ map_domain_va( } if ( (page = pde_virt[cpu][vtopti(va)]) == 0 ) goto error_out; - if ( (ctxt[cpu].flags & VGCF_VMX_GUEST) && paging_enabled(&ctxt[cpu]) ) + if ( (ctxt[cpu].flags & VGCF_HVM_GUEST) && paging_enabled(&ctxt[cpu]) ) page = page_array[page >> PAGE_SHIFT] << PAGE_SHIFT; if ( (page != page_phys[cpu]) || (perm != prev_perm[cpu]) ) { diff --git a/tools/libxc/xc_ptrace_core.c b/tools/libxc/xc_ptrace_core.c index 43463b65a3..3c55b0474b 100644 --- a/tools/libxc/xc_ptrace_core.c +++ b/tools/libxc/xc_ptrace_core.c @@ -126,7 +126,7 @@ map_domain_va(unsigned long domfd, int cpu, void * guest_va) } if ((pde = cr3_virt[cpu][vtopdi(va)]) == 0) /* logical address */ goto error_out; - if (ctxt[cpu].flags & VGCF_VMX_GUEST) + if (ctxt[cpu].flags & VGCF_HVM_GUEST) pde = p2m_array[pde >> PAGE_SHIFT] << PAGE_SHIFT; if (pde != pde_phys[cpu]) { @@ -142,7 +142,7 @@ map_domain_va(unsigned long domfd, int cpu, void * guest_va) } if ((page = pde_virt[cpu][vtopti(va)]) == 0) /* logical address */ goto error_out; - if (ctxt[cpu].flags & VGCF_VMX_GUEST) + if (ctxt[cpu].flags & VGCF_HVM_GUEST) page = p2m_array[page >> PAGE_SHIFT] << PAGE_SHIFT; if (page != page_phys[cpu]) { diff --git a/tools/libxc/xenguest.h b/tools/libxc/xenguest.h index 5cad964f80..4a11b5ec1b 100644 --- a/tools/libxc/xenguest.h +++ b/tools/libxc/xenguest.h @@ -53,7 +53,7 @@ int xc_linux_build(int xc_handle, unsigned int console_evtchn, unsigned long *console_mfn); -int xc_vmx_build(int xc_handle, +int xc_hvm_build(int xc_handle, uint32_t domid, int memsize, const char *image_name, diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/xc/xc.c index f935044b26..d7cc20a274 100644 --- a/tools/python/xen/lowlevel/xc/xc.c +++ b/tools/python/xen/lowlevel/xc/xc.c @@ -355,7 +355,7 @@ static PyObject *pyxc_linux_build(XcObject *self, "console_mfn", console_mfn); } -static PyObject *pyxc_vmx_build(XcObject *self, +static PyObject *pyxc_hvm_build(XcObject *self, PyObject *args, PyObject *kwds) { @@ -369,16 +369,15 @@ static PyObject *pyxc_vmx_build(XcObject *self, unsigned long store_mfn = 0; static char *kwd_list[] = { "dom", "control_evtchn", "store_evtchn", - "memsize", "image", "vcpus", "acpi", "apic", - NULL }; - + "memsize", "image", "vcpus", "acpi", "apic", + NULL }; if ( !PyArg_ParseTupleAndKeywords(args, kwds, "iiiisiii", kwd_list, &dom, &control_evtchn, &store_evtchn, - &memsize, &image, &vcpus, &acpi, &apic) ) + &memsize, &image, &vcpus, &acpi, &apic) ) return NULL; - if ( xc_vmx_build(self->xc_handle, dom, memsize, image, control_evtchn, - vcpus, acpi, apic, store_evtchn, &store_mfn) != 0 ) + if ( xc_hvm_build(self->xc_handle, dom, memsize, image, control_evtchn, + vcpus, acpi, apic, store_evtchn, &store_mfn) != 0 ) return PyErr_SetFromErrno(xc_error); return Py_BuildValue("{s:i}", "store_mfn", store_mfn); @@ -965,12 +964,12 @@ static PyMethodDef pyxc_methods[] = { " vcpus [int, 1]: Number of Virtual CPUS in domain.\n\n" "Returns: [int] 0 on success; -1 on error.\n" }, - { "vmx_build", - (PyCFunction)pyxc_vmx_build, + { "hvm_build", + (PyCFunction)pyxc_hvm_build, METH_VARARGS | METH_KEYWORDS, "\n" - "Build a new VMX guest OS.\n" + "Build a new HVM guest OS.\n" " dom [int]: Identifier of domain to build into.\n" - " image [str]: Name of VMX loader image file.\n" + " image [str]: Name of HVM loader image file.\n" " vcpus [int, 1]: Number of Virtual CPUS in domain.\n\n" "Returns: [int] 0 on success; -1 on error.\n" }, diff --git a/tools/python/xen/xend/image.py b/tools/python/xen/xend/image.py index 338a1006eb..8a73ed90b6 100644 --- a/tools/python/xen/xend/image.py +++ b/tools/python/xen/xend/image.py @@ -143,7 +143,7 @@ class ImageHandler: def getDomainMemory(self, mem): """@return The memory required, in KiB, by the domain to store the - given amount, also in KiB. This is normally just mem, but VMX domains + given amount, also in KiB. This is normally just mem, but HVM domains have overheads to account for.""" return mem @@ -183,21 +183,21 @@ class LinuxImageHandler(ImageHandler): cmdline = self.cmdline, ramdisk = self.ramdisk) -class VmxImageHandler(ImageHandler): +class HVMImageHandler(ImageHandler): - ostype = "vmx" + ostype = "hvm" def configure(self, imageConfig, deviceConfig): ImageHandler.configure(self, imageConfig, deviceConfig) info = xc.xeninfo() - if not 'hvm' in info['xen_caps']: - raise VmError("vmx: not an Intel VT platform, we stop creating!") + if not 'hvm' in info['xen_caps']: + raise VmError("Not an HVM capable platform, we stop creating!") self.dmargs = self.parseDeviceModelArgs(imageConfig, deviceConfig) self.device_model = sxp.child_value(imageConfig, 'device_model') if not self.device_model: - raise VmError("vmx: missing device model") + raise VmError("hvm: missing device model") self.display = sxp.child_value(imageConfig, 'display') self.xauthority = sxp.child_value(imageConfig, 'xauthority') @@ -217,7 +217,7 @@ class VmxImageHandler(ImageHandler): # Create an event channel self.device_channel = xc.evtchn_alloc_unbound(dom=self.vm.getDomid(), remote_dom=0) - log.info("VMX device model port: %d", self.device_channel) + log.info("HVM device model port: %d", self.device_channel) store_evtchn = self.vm.getStorePort() @@ -232,7 +232,7 @@ class VmxImageHandler(ImageHandler): self.register_shutdown_watch() - return xc.vmx_build(dom = self.vm.getDomid(), + return xc.hvm_build(dom = self.vm.getDomid(), image = self.kernel, control_evtchn = self.device_channel, store_evtchn = store_evtchn, @@ -283,7 +283,7 @@ class VmxImageHandler(ImageHandler): continue; vbddev_list = ['hda', 'hdb', 'hdc', 'hdd'] if vbddev not in vbddev_list: - raise VmError("vmx: for qemu vbd type=file&dev=hda~hdd") + raise VmError("hvm: for qemu vbd type=file&dev=hda~hdd") ret.append("-%s" % vbddev) ret.append("%s" % vbdparam) if name == 'vif': @@ -405,8 +405,8 @@ class VmxImageHandler(ImageHandler): def register_shutdown_watch(self): """ add xen store watch on control/shutdown """ self.shutdownWatch = xswatch(self.vm.dompath + "/control/shutdown", \ - self.vmx_shutdown) - log.debug("vmx shutdown watch registered") + self.hvm_shutdown) + log.debug("hvm shutdown watch registered") def unregister_shutdown_watch(self): """Remove the watch on the control/shutdown, if any. Nothrow @@ -416,11 +416,11 @@ class VmxImageHandler(ImageHandler): if self.shutdownWatch: self.shutdownWatch.unwatch() except: - log.exception("Unwatching vmx shutdown watch failed.") + log.exception("Unwatching hvm shutdown watch failed.") self.shutdownWatch = None - log.debug("vmx shutdown watch unregistered") + log.debug("hvm shutdown watch unregistered") - def vmx_shutdown(self, _): + def hvm_shutdown(self, _): """ watch call back on node control/shutdown, if node changed, this function will be called """ @@ -429,7 +429,7 @@ class VmxImageHandler(ImageHandler): vm = xd.domain_lookup( self.vm.getDomid() ) reason = vm.readDom('control/shutdown') - log.debug("vmx_shutdown fired, shutdown reason=%s", reason) + log.debug("hvm_shutdown fired, shutdown reason=%s", reason) for x in shutdown_reasons.keys(): if shutdown_reasons[x] == reason: vm.info['shutdown'] = 1 @@ -444,7 +444,7 @@ image type. imageHandlerClasses = {} -for h in LinuxImageHandler, VmxImageHandler: +for h in LinuxImageHandler, HVMImageHandler: imageHandlerClasses[h.ostype] = h diff --git a/tools/python/xen/xm/create.py b/tools/python/xen/xm/create.py index a6408f82ba..4aeaf34945 100644 --- a/tools/python/xen/xm/create.py +++ b/tools/python/xen/xm/create.py @@ -162,11 +162,11 @@ gopts.var('cpus', val='CPUS', gopts.var('acpi', val='ACPI', fn=set_int, default=0, - use="Disable or enable ACPI of VMX domain.") + use="Disable or enable ACPI of HVM domain.") gopts.var('apic', val='APIC', fn=set_int, default=0, - use="Disable or enable APIC of VMX domain.") + use="Disable or enable APIC of HVM domain.") gopts.var('vcpus', val='VCPUS', fn=set_int, default=1, @@ -441,8 +441,8 @@ def configure_image(vals): if vals.extra: config_image.append(['args', vals.extra]) - if vals.builder == 'vmx': - configure_vmx(config_image, vals) + if vals.builder == 'hvm': + configure_hvm(config_image, vals) return config_image @@ -536,8 +536,8 @@ def configure_vifs(config_devs, vals): config_devs.append(['device', config_vif]) -def configure_vmx(config_image, vals): - """Create the config for VMX devices. +def configure_hvm(config_image, vals): + """Create the config for HVM devices. """ args = [ 'device_model', 'vcpus', 'cdrom', 'boot', 'fda', 'fdb', 'localtime', 'serial', 'stdvga', 'isa', 'nographic', 'audio', diff --git a/tools/python/xen/xm/tests/test_create.py b/tools/python/xen/xm/tests/test_create.py index f04496288d..4cce721ea0 100644 --- a/tools/python/xen/xm/tests/test_create.py +++ b/tools/python/xen/xm/tests/test_create.py @@ -141,15 +141,15 @@ cpu_weight = 0.75 }) - def testVMXConfigFile(self): + def testHVMConfigFile(self): (fd, fname) = tempfile.mkstemp() try: os.write(fd, ''' -kernel = "/usr/lib/xen/boot/vmxloader" -builder='vmx' +kernel = "/usr/lib/xen/boot/hvmloader" +builder='hvm' memory = 128 -name = "ExampleVMXDomain" +name = "ExampleHVMDomain" vcpus=1 vif = [ 'type=ioemu, bridge=xenbr0' ] disk = [ 'file:/var/images/min-el3-i386.img,ioemu:hda,w' ] @@ -163,10 +163,10 @@ ne2000=0 os.close(fd) self.t('-f %s display=fakedisplay' % fname, - { 'kernel' : '/usr/lib/xen/boot/vmxloader', - 'builder' : 'vmx', + { 'kernel' : '/usr/lib/xen/boot/hvmloader', + 'builder' : 'hvm', 'memory' : 128, - 'name' : 'ExampleVMXDomain', + 'name' : 'ExampleHVMDomain', 'vcpus' : 1, 'nics' : -1, 'vif' : ['type=ioemu, bridge=xenbr0'], diff --git a/tools/xm-test/README b/tools/xm-test/README index 481baca211..f65e9a26b5 100644 --- a/tools/xm-test/README +++ b/tools/xm-test/README @@ -60,26 +60,26 @@ BUILDING with HVM Support ========================= If you'd like to build and run this with hardware virtual machine assist -(HVM) support to test fully virtualized disk images on VMX hardware, -please add the --enable-vmx-support option to configure: +(HVM) support to test fully virtualized disk images on VMX/SVM hardware, +please add the --enable-hvm-support option to configure: # ./autogen - # ./configure --enable-vmx-support + # ./configure --enable-hvm-support # make The ramdisk/bin/create_disk_image script, which builds the full virt disk.img, requires Lilo 22.7+ to be installed on the system. Lilo is used to install the bootloader on the disk.img. -If HVM / VMX support is enabled, the ramdisk/bin/create_disk_image script +If HVM support is enabled, the ramdisk/bin/create_disk_image script will be run to create a full virt disk.img in the ramdisk directory. The script, by default, will look in /boot for the first non-Xen kernel it runs across. If you'd like to set xm-test to use a specific kernel, rather than the first one it finds in /boot, you can configure it in -with the "--with-vmx-kernel=KERNEL" option: - +with the "--with-hvm-kernel=KERNEL" option: + # ./autogen -# ./configure --enable-vmx-support --with-vmx-kernel=KERNEL +# ./configure --enable-hvm-support --with-hvm-kernel=KERNEL # make Otherwise, you can always rerun the create script using the -k option @@ -92,14 +92,14 @@ used. If you'd like to specify a different location for the driver or want to tell the script that the driver is built into the kernel, please use the "--with-driver-dir=DRVDIR" configure option. If built into the kernel, please use the key word "builtin" with the option: - + # ./autogen -# ./configure --enable-vmx-support --with-driver-dir=builtin +# ./configure --enable-hvm-support --with-driver-dir=builtin - or - -# ./configure --enable-vmx-support --with-driver-dir=/driver/directory +# ./configure --enable-hvm-support --with-driver-dir=/driver/directory # make - -Xm-test will look for disk.img in the ramdisk directory when run by + +Xm-test will look for disk.img in the ramdisk directory when run by default. diff --git a/tools/xm-test/configure.ac b/tools/xm-test/configure.ac index 8f844c1148..22b2addc8f 100644 --- a/tools/xm-test/configure.ac +++ b/tools/xm-test/configure.ac @@ -15,18 +15,18 @@ TESTLIB=../../lib RD_PATH=../../ramdisk TENV="PYTHONPATH=$PYTHONPATH:$TESTLIB:/usr/lib/python RD_PATH=$RD_PATH" -AC_ARG_ENABLE(vmx-support, - [[ --enable-vmx-support enable hardware virtual machine assist]], +AC_ARG_ENABLE(hvm-support, + [[ --enable-hvm-support enable hardware virtual machine assist]], [ - ENABLE_VMX=True + ENABLE_HVM=True ],[ - ENABLE_VMX=False + ENABLE_HVM=False ]) -if test "x$ENABLE_VMX" = "xTrue"; then +if test "x$ENABLE_HVM" = "xTrue"; then if test "$LILO" = "no"; then AC_MSG_ERROR([lilo not found -lilo version 22.7 or greater must be installed for testing with vmx enabled.]) +lilo version 22.7 or greater must be installed for testing with hvm enabled.]) else pass=`$LILO -V | sed -e "s/LILO version //" | awk -F "." '{if ($1 >=22 && $2 >= 7) print "true"; else print "false"}'` if test "$pass" != "true"; then @@ -35,16 +35,16 @@ lilo version 22.7 or greater must be installed for testing with vmx enabled.]) fi fi -AM_CONDITIONAL(VMX, test x$ENABLE_VMX = xTrue) -AC_SUBST(ENABLE_VMX) +AM_CONDITIONAL(HVM, test x$ENABLE_HVM = xTrue) +AC_SUBST(ENABLE_HVM) -AC_ARG_WITH(vmx-kernel, - [[ --with-vmx-kernel=kernel Use this kernel for vmx disk.img testing]], - VMXKERNEL=$withval, - VMXKERNEL="no") +AC_ARG_WITH(hvm-kernel, + [[ --with-hvm-kernel=kernel Use this kernel for hvm disk.img testing]], + HVMKERNEL=$withval, + HVMKERNEL="no") -dnl substitute @VMXKERNEL@ in all Makefiles -AC_SUBST(VMXKERNEL) +dnl substitute @HVMKERNEL@ in all Makefiles +AC_SUBST(HVMKERNEL) AC_ARG_WITH(driver-dir, [[ --with-driver-dir=drvdir Look in this directory for the pcnet32 driver for the vmx disk.img. drvdir can equal key word "builtin" if driver is built into the kernel]], diff --git a/tools/xm-test/lib/XmTestLib/XenDomain.py b/tools/xm-test/lib/XmTestLib/XenDomain.py index 49e111e68b..80825064a8 100644 --- a/tools/xm-test/lib/XmTestLib/XenDomain.py +++ b/tools/xm-test/lib/XmTestLib/XenDomain.py @@ -70,14 +70,14 @@ ParavirtDefaults = {"memory" : 64, "root" : "/dev/ram0", "ramdisk" : getRdPath() + "/initrd.img" } -VmxDefaults = {"memory" : 64, +HVMDefaults = {"memory" : 64, "vcpus" : 1, "acpi" : 0, "apic" : 0, "disk" : ["file:%s/disk.img,ioemu:%s,w" % (getRdPath(), BLOCK_ROOT_DEV)], - "kernel" : "/usr/lib/xen/boot/vmxloader", - "builder" : "vmx", + "kernel" : "/usr/lib/xen/boot/hvmloader", + "builder" : "hvm", "sdl" : 0, "vnc" : 0, "vncviewer" : 0, @@ -86,8 +86,8 @@ VmxDefaults = {"memory" : 64, "device_model" : getDeviceModel() } -if ENABLE_VMX_SUPPORT: - configDefaults = VmxDefaults +if ENABLE_HVM_SUPPORT: + configDefaults = HVMDefaults else: configDefaults = ParavirtDefaults @@ -247,7 +247,7 @@ class XmTestDomain(XenDomain): def start(self): XenDomain.start(self) - if ENABLE_VMX_SUPPORT: + if ENABLE_HVM_SUPPORT: waitForBoot() def startNow(self): @@ -271,7 +271,7 @@ if __name__ == "__main__": print str(c) - + # c.write("/tmp/foo.conf") diff --git a/tools/xm-test/lib/XmTestLib/config.py.in b/tools/xm-test/lib/XmTestLib/config.py.in index 86e7cf7a2c..dafbc1f909 100644 --- a/tools/xm-test/lib/XmTestLib/config.py.in +++ b/tools/xm-test/lib/XmTestLib/config.py.in @@ -1,4 +1,4 @@ #!/usr/bin/python -ENABLE_VMX_SUPPORT = @ENABLE_VMX@ +ENABLE_HVM_SUPPORT = @ENABLE_HVM@ diff --git a/tools/xm-test/ramdisk/Makefile.am b/tools/xm-test/ramdisk/Makefile.am index 21133f5c4e..ad71da4b14 100644 --- a/tools/xm-test/ramdisk/Makefile.am +++ b/tools/xm-test/ramdisk/Makefile.am @@ -9,12 +9,12 @@ BR_IMG = $(BR_SRC)/rootfs.i386.ext2 BR_ROOT = build_i386/root -VMX_SCRIPT = bin/create_disk_image +HVM_SCRIPT = bin/create_disk_image XMTEST_MAJ_VER = $(shell echo @PACKAGE_VERSION@ | perl -pe 's/(\d+)\.(\d+)\.\d+/\1.\2/') XMTEST_VER_IMG = initrd-$(XMTEST_MAJ_VER).img -if VMX +if HVM all: initrd.img disk.img else all: initrd.img @@ -44,16 +44,16 @@ initrd.img: $(XMTEST_VER_IMG) ln -sf $(XMTEST_VER_IMG) initrd.img disk.img: $(XMTEST_VER_IMG) - chmod a+x $(VMX_SCRIPT) - @if test ! "$(VMXKERNEL)" = "no" -a ! "$(DRVDIR)" = "no"; then \ - $(VMX_SCRIPT) -r $(XMTEST_VER_IMG) -k $(VMXKERNEL) \ + chmod a+x $(HVM_SCRIPT) + @if test ! "$(HVMKERNEL)" = "no" -a ! "$(DRVDIR)" = "no"; then \ + $(HVM_SCRIPT) -r $(XMTEST_VER_IMG) -k $(HVMKERNEL) \ -d $(DRVDIR); \ - elif test "$(VMXKERNEL)" = "no" -a ! "$(DRVDIR)" = "no"; then \ - $(VMX_SCRIPT) -r $(XMTEST_VER_IMG) -d $(DRVDIR); \ - elif test ! "$(VMXKERNEL)" = "no" -a "$(DRVDIR)" = "no"; then \ - $(VMX_SCRIPT) -r $(XMTEST_VER_IMG) -k $(VMXKERNEL); \ + elif test "$(HVMKERNEL)" = "no" -a ! "$(DRVDIR)" = "no"; then \ + $(HVM_SCRIPT) -r $(XMTEST_VER_IMG) -d $(DRVDIR); \ + elif test ! "$(HVMKERNEL)" = "no" -a "$(DRVDIR)" = "no"; then \ + $(HVM_SCRIPT) -r $(XMTEST_VER_IMG) -k $(HVMKERNEL); \ else \ - $(VMX_SCRIPT) -r $(XMTEST_VER_IMG); \ + $(HVM_SCRIPT) -r $(XMTEST_VER_IMG); \ fi existing: diff --git a/tools/xm-test/ramdisk/bin/create_disk_image b/tools/xm-test/ramdisk/bin/create_disk_image index 836e8a5c14..bde4b2dede 100644 --- a/tools/xm-test/ramdisk/bin/create_disk_image +++ b/tools/xm-test/ramdisk/bin/create_disk_image @@ -46,7 +46,7 @@ function die() function usage() { cat << EOU -Command creates a vmx guest disk image for xm-test. +Command creates a hvm guest disk image for xm-test. Usage: $0 [OPTIONS] diff --git a/tools/xm-test/tests/block-create/01_block_attach_device_pos.py b/tools/xm-test/tests/block-create/01_block_attach_device_pos.py index 5c2febdad4..564ffad0bf 100644 --- a/tools/xm-test/tests/block-create/01_block_attach_device_pos.py +++ b/tools/xm-test/tests/block-create/01_block_attach_device_pos.py @@ -9,8 +9,8 @@ import time from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Block-attach not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Block-attach not supported for HVM domains") # Create a domain (default XmTestDomain, with our ramdisk) domain = XmTestDomain() diff --git a/tools/xm-test/tests/block-create/02_block_attach_file_device_pos.py b/tools/xm-test/tests/block-create/02_block_attach_file_device_pos.py index 36d64cc56e..0cfb6de109 100644 --- a/tools/xm-test/tests/block-create/02_block_attach_file_device_pos.py +++ b/tools/xm-test/tests/block-create/02_block_attach_file_device_pos.py @@ -9,8 +9,8 @@ import time from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Block-attach not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Block-attach not supported for HVM domains") # Create a domain (default XmTestDomain, with our ramdisk) domain = XmTestDomain() diff --git a/tools/xm-test/tests/block-create/04_block_attach_device_repeatedly_pos.py b/tools/xm-test/tests/block-create/04_block_attach_device_repeatedly_pos.py index d392c60427..8a5680f10b 100644 --- a/tools/xm-test/tests/block-create/04_block_attach_device_repeatedly_pos.py +++ b/tools/xm-test/tests/block-create/04_block_attach_device_repeatedly_pos.py @@ -9,8 +9,8 @@ import time from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Block-attach not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Block-attach not supported for HVM domains") # Create a domain (default XmTestDomain, with our ramdisk) domain = XmTestDomain() diff --git a/tools/xm-test/tests/block-create/05_block_attach_and_dettach_device_repeatedly_pos.py b/tools/xm-test/tests/block-create/05_block_attach_and_dettach_device_repeatedly_pos.py index 06cc116974..1434ad2176 100644 --- a/tools/xm-test/tests/block-create/05_block_attach_and_dettach_device_repeatedly_pos.py +++ b/tools/xm-test/tests/block-create/05_block_attach_and_dettach_device_repeatedly_pos.py @@ -9,8 +9,8 @@ import time from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Block-attach not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Block-attach not supported for HVM domains") # Create a domain (default XmTestDomain, with our ramdisk) domain = XmTestDomain() diff --git a/tools/xm-test/tests/block-create/06_block_attach_baddomain_neg.py b/tools/xm-test/tests/block-create/06_block_attach_baddomain_neg.py index bd28bc18be..edfeba1643 100644 --- a/tools/xm-test/tests/block-create/06_block_attach_baddomain_neg.py +++ b/tools/xm-test/tests/block-create/06_block_attach_baddomain_neg.py @@ -5,8 +5,8 @@ from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Block-attach not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Block-attach not supported for HVM domains") status, output = traceCommand("xm block-attach NOT-EXIST phy:ram1 sdb1 w") diff --git a/tools/xm-test/tests/block-create/07_block_attach_baddevice_neg.py b/tools/xm-test/tests/block-create/07_block_attach_baddevice_neg.py index 8c08658068..ac179d50a3 100644 --- a/tools/xm-test/tests/block-create/07_block_attach_baddevice_neg.py +++ b/tools/xm-test/tests/block-create/07_block_attach_baddevice_neg.py @@ -9,8 +9,8 @@ import time from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Block-attach not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Block-attach not supported for HVM domains") # Create a domain (default XmTestDomain, with our ramdisk) domain = XmTestDomain() diff --git a/tools/xm-test/tests/block-create/08_block_attach_bad_filedevice_neg.py b/tools/xm-test/tests/block-create/08_block_attach_bad_filedevice_neg.py index e34f5c8ebd..2a908c3295 100644 --- a/tools/xm-test/tests/block-create/08_block_attach_bad_filedevice_neg.py +++ b/tools/xm-test/tests/block-create/08_block_attach_bad_filedevice_neg.py @@ -9,8 +9,8 @@ import time from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Block-attach not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Block-attach not supported for HVM domains") # Create a domain (default XmTestDomain, with our ramdisk) domain = XmTestDomain() diff --git a/tools/xm-test/tests/block-create/09_block_attach_and_dettach_device_check_data_pos.py b/tools/xm-test/tests/block-create/09_block_attach_and_dettach_device_check_data_pos.py index 60b12da70e..4bcfd863f3 100644 --- a/tools/xm-test/tests/block-create/09_block_attach_and_dettach_device_check_data_pos.py +++ b/tools/xm-test/tests/block-create/09_block_attach_and_dettach_device_check_data_pos.py @@ -9,8 +9,8 @@ import time from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Block-attach not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Block-attach not supported for HVM domains") # Create a domain (default XmTestDomain, with our ramdisk) domain = XmTestDomain() diff --git a/tools/xm-test/tests/block-create/10_block_attach_dettach_multiple_devices.py b/tools/xm-test/tests/block-create/10_block_attach_dettach_multiple_devices.py index 42fe9e5ebe..4c3b4d1851 100644 --- a/tools/xm-test/tests/block-create/10_block_attach_dettach_multiple_devices.py +++ b/tools/xm-test/tests/block-create/10_block_attach_dettach_multiple_devices.py @@ -46,8 +46,8 @@ def dettach(devname): return 0, None -if ENABLE_VMX_SUPPORT: - SKIP("Block-attach not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Block-attach not supported for HVM domains") # Create a domain (default XmTestDomain, with our ramdisk) domain = XmTestDomain() diff --git a/tools/xm-test/tests/block-create/11_block_attach_shared_dom0.py b/tools/xm-test/tests/block-create/11_block_attach_shared_dom0.py index f2e5ca7d64..43f55e234c 100644 --- a/tools/xm-test/tests/block-create/11_block_attach_shared_dom0.py +++ b/tools/xm-test/tests/block-create/11_block_attach_shared_dom0.py @@ -5,8 +5,8 @@ from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Block-attach not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Block-attach not supported for HVM domains") # Mount /dev/ram0 diff --git a/tools/xm-test/tests/block-create/12_block_attach_shared_domU.py b/tools/xm-test/tests/block-create/12_block_attach_shared_domU.py index 07cf56c373..362e5039e8 100644 --- a/tools/xm-test/tests/block-create/12_block_attach_shared_domU.py +++ b/tools/xm-test/tests/block-create/12_block_attach_shared_domU.py @@ -5,8 +5,8 @@ from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Block-attach not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Block-attach not supported for HVM domains") config = {"disk":"phy:/dev/ram0,hda1,w"} diff --git a/tools/xm-test/tests/block-destroy/01_block-destroy_btblock_pos.py b/tools/xm-test/tests/block-destroy/01_block-destroy_btblock_pos.py index 8f7086388c..e3f76c1985 100644 --- a/tools/xm-test/tests/block-destroy/01_block-destroy_btblock_pos.py +++ b/tools/xm-test/tests/block-destroy/01_block-destroy_btblock_pos.py @@ -5,8 +5,8 @@ from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Block-detach not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Block-detach not supported for HVM domains") config = {"disk":"phy:/dev/ram0,hda1,w"} domain = XmTestDomain(extraConfig=config) diff --git a/tools/xm-test/tests/block-destroy/02_block-destroy_rtblock_pos.py b/tools/xm-test/tests/block-destroy/02_block-destroy_rtblock_pos.py index 6c87db8198..db918b7634 100644 --- a/tools/xm-test/tests/block-destroy/02_block-destroy_rtblock_pos.py +++ b/tools/xm-test/tests/block-destroy/02_block-destroy_rtblock_pos.py @@ -5,8 +5,8 @@ from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Block-detach not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Block-detach not supported for HVM domains") domain = XmTestDomain() diff --git a/tools/xm-test/tests/block-destroy/04_block-destroy_nonattached_neg.py b/tools/xm-test/tests/block-destroy/04_block-destroy_nonattached_neg.py index 4f1e485800..6fea02864f 100644 --- a/tools/xm-test/tests/block-destroy/04_block-destroy_nonattached_neg.py +++ b/tools/xm-test/tests/block-destroy/04_block-destroy_nonattached_neg.py @@ -7,8 +7,8 @@ from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Block-detach not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Block-detach not supported for HVM domains") domain = XmTestDomain() diff --git a/tools/xm-test/tests/block-destroy/05_block-destroy_byname_pos.py b/tools/xm-test/tests/block-destroy/05_block-destroy_byname_pos.py index 2a0993f2a5..5e2587e35f 100644 --- a/tools/xm-test/tests/block-destroy/05_block-destroy_byname_pos.py +++ b/tools/xm-test/tests/block-destroy/05_block-destroy_byname_pos.py @@ -5,8 +5,8 @@ from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Block-detach not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Block-detach not supported for HVM domains") config = {"disk":"phy:/dev/ram0,hda1,w"} domain = XmTestDomain(extraConfig=config) diff --git a/tools/xm-test/tests/block-destroy/06_block-destroy_check_list_pos.py b/tools/xm-test/tests/block-destroy/06_block-destroy_check_list_pos.py index 7f1c7cd453..01e81122b2 100644 --- a/tools/xm-test/tests/block-destroy/06_block-destroy_check_list_pos.py +++ b/tools/xm-test/tests/block-destroy/06_block-destroy_check_list_pos.py @@ -26,8 +26,8 @@ def checkXmLongList(domain): else: return False -if ENABLE_VMX_SUPPORT: - SKIP("Block-detach not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Block-detach not supported for HVM domains") domain = XmTestDomain() diff --git a/tools/xm-test/tests/block-list/01_block-list_pos.py b/tools/xm-test/tests/block-list/01_block-list_pos.py index 185eb66dc2..d176be82f7 100644 --- a/tools/xm-test/tests/block-list/01_block-list_pos.py +++ b/tools/xm-test/tests/block-list/01_block-list_pos.py @@ -8,8 +8,8 @@ from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Block-list not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Block-list not supported for HVM domains") config = {"disk":"phy:/dev/ram0,hda1,w"} domain = XmTestDomain(extraConfig=config) diff --git a/tools/xm-test/tests/block-list/02_block-list_attachbd_pos.py b/tools/xm-test/tests/block-list/02_block-list_attachbd_pos.py index 27e56e5083..8a8459938e 100644 --- a/tools/xm-test/tests/block-list/02_block-list_attachbd_pos.py +++ b/tools/xm-test/tests/block-list/02_block-list_attachbd_pos.py @@ -8,8 +8,8 @@ from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Block-list not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Block-list not supported for HVM domains") domain = XmTestDomain() diff --git a/tools/xm-test/tests/block-list/03_block-list_anotherbd_pos.py b/tools/xm-test/tests/block-list/03_block-list_anotherbd_pos.py index f873d87025..26e42097a4 100644 --- a/tools/xm-test/tests/block-list/03_block-list_anotherbd_pos.py +++ b/tools/xm-test/tests/block-list/03_block-list_anotherbd_pos.py @@ -8,8 +8,8 @@ from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Block-list not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Block-list not supported for HVM domains") config = {"disk":"phy:/dev/ram0,hda1,w"} domain = XmTestDomain(extraConfig=config) diff --git a/tools/xm-test/tests/block-list/04_block-list_nodb_pos.py b/tools/xm-test/tests/block-list/04_block-list_nodb_pos.py index 7ff1a2ddf7..ae5e4f51ac 100644 --- a/tools/xm-test/tests/block-list/04_block-list_nodb_pos.py +++ b/tools/xm-test/tests/block-list/04_block-list_nodb_pos.py @@ -8,8 +8,8 @@ from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Block-list not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Block-list not supported for HVM domains") domain = XmTestDomain() diff --git a/tools/xm-test/tests/block-list/06_block-list_checkremove_pos.py b/tools/xm-test/tests/block-list/06_block-list_checkremove_pos.py index e342262659..ccdbe5c816 100644 --- a/tools/xm-test/tests/block-list/06_block-list_checkremove_pos.py +++ b/tools/xm-test/tests/block-list/06_block-list_checkremove_pos.py @@ -5,8 +5,8 @@ from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Block-list not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Block-list not supported for HVM domains") domain = XmTestDomain() diff --git a/tools/xm-test/tests/create/14_create_blockroot_pos.py b/tools/xm-test/tests/create/14_create_blockroot_pos.py index c80a92ca8c..ef52ffc48a 100644 --- a/tools/xm-test/tests/create/14_create_blockroot_pos.py +++ b/tools/xm-test/tests/create/14_create_blockroot_pos.py @@ -17,7 +17,7 @@ rdpath = getRdPath() # if verbose: # print "Using %s" % output -if ENABLE_VMX_SUPPORT: +if ENABLE_HVM_SUPPORT: domain = XmTestDomain(name="14_create_blockroot") else: config = {"memory" : "64", diff --git a/tools/xm-test/tests/memmax/01_memmax_badparm_neg.py b/tools/xm-test/tests/memmax/01_memmax_badparm_neg.py index e13fca8415..a2d37ec79a 100644 --- a/tools/xm-test/tests/memmax/01_memmax_badparm_neg.py +++ b/tools/xm-test/tests/memmax/01_memmax_badparm_neg.py @@ -8,8 +8,8 @@ import re from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Mem-max not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Mem-max not supported for HVM domains") status, output = traceCommand("xm mem-max") eyecatcher = "Error:" diff --git a/tools/xm-test/tests/memset/01_memset_basic_pos.py b/tools/xm-test/tests/memset/01_memset_basic_pos.py index 5ed6406e8d..58e65966ac 100644 --- a/tools/xm-test/tests/memset/01_memset_basic_pos.py +++ b/tools/xm-test/tests/memset/01_memset_basic_pos.py @@ -20,8 +20,8 @@ import re import time from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Mem-set not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Mem-set not supported for HVM domains") # Create a domain (default XmTestDomain, with our ramdisk) domain = XmTestDomain() diff --git a/tools/xm-test/tests/memset/02_memset_badparm_neg.py b/tools/xm-test/tests/memset/02_memset_badparm_neg.py index a2f60c86d2..9e8fbafbef 100644 --- a/tools/xm-test/tests/memset/02_memset_badparm_neg.py +++ b/tools/xm-test/tests/memset/02_memset_badparm_neg.py @@ -18,8 +18,8 @@ import re from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Mem-set not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Mem-set not supported for HVM domains") # destroy no parm input - negative test status, output = traceCommand("xm mem-set") diff --git a/tools/xm-test/tests/memset/03_memset_random_pos.py b/tools/xm-test/tests/memset/03_memset_random_pos.py index c4f3c47370..3f382938ff 100644 --- a/tools/xm-test/tests/memset/03_memset_random_pos.py +++ b/tools/xm-test/tests/memset/03_memset_random_pos.py @@ -8,8 +8,8 @@ import re from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Mem-set not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Mem-set not supported for HVM domains") domain = XmTestDomain() diff --git a/tools/xm-test/tests/memset/04_memset_smallmem_pos.py b/tools/xm-test/tests/memset/04_memset_smallmem_pos.py index d06571bd05..fd4c027949 100644 --- a/tools/xm-test/tests/memset/04_memset_smallmem_pos.py +++ b/tools/xm-test/tests/memset/04_memset_smallmem_pos.py @@ -5,8 +5,8 @@ from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Mem-set not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Mem-set not supported for HVM domains") domain = XmTestDomain() diff --git a/tools/xm-test/tests/migrate/01_migrate_localhost_pos.py b/tools/xm-test/tests/migrate/01_migrate_localhost_pos.py index 8f86bdd128..a172efef61 100644 --- a/tools/xm-test/tests/migrate/01_migrate_localhost_pos.py +++ b/tools/xm-test/tests/migrate/01_migrate_localhost_pos.py @@ -17,8 +17,8 @@ import commands from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Migrate currently not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Migrate currently not supported for HVM domains") # Create a domain (default XmTestDomain, with our ramdisk) domain = XmTestDomain() diff --git a/tools/xm-test/tests/network-attach/01_network_attach_pos.py b/tools/xm-test/tests/network-attach/01_network_attach_pos.py index eb692ab876..8d4b635a54 100644 --- a/tools/xm-test/tests/network-attach/01_network_attach_pos.py +++ b/tools/xm-test/tests/network-attach/01_network_attach_pos.py @@ -8,8 +8,8 @@ import sys from XmTestLib import * from network_utils import * -if ENABLE_VMX_SUPPORT: - SKIP("Network-attach not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Network-attach not supported for HVM domains") # Create a domain (default XmTestDomain, with our ramdisk) domain = XmTestDomain() diff --git a/tools/xm-test/tests/network-attach/02_network_attach_detach_pos.py b/tools/xm-test/tests/network-attach/02_network_attach_detach_pos.py index 08563eb239..5b50714b9d 100644 --- a/tools/xm-test/tests/network-attach/02_network_attach_detach_pos.py +++ b/tools/xm-test/tests/network-attach/02_network_attach_detach_pos.py @@ -10,8 +10,8 @@ import time from XmTestLib import * from network_utils import * -if ENABLE_VMX_SUPPORT: - SKIP("Network-attach not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Network-attach not supported for HVM domains") # Create a domain (default XmTestDomain, with our ramdisk) domain = XmTestDomain() diff --git a/tools/xm-test/tests/network-attach/03_network_attach_detach_multiple_pos.py b/tools/xm-test/tests/network-attach/03_network_attach_detach_multiple_pos.py index d169119d2c..76da5891a3 100644 --- a/tools/xm-test/tests/network-attach/03_network_attach_detach_multiple_pos.py +++ b/tools/xm-test/tests/network-attach/03_network_attach_detach_multiple_pos.py @@ -10,8 +10,8 @@ import time from XmTestLib import * from network_utils import * -if ENABLE_VMX_SUPPORT: - SKIP("Network-attach not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Network-attach not supported for HVM domains") # Create a domain (default XmTestDomain, with our ramdisk) domain = XmTestDomain() diff --git a/tools/xm-test/tests/restore/01_restore_basic_pos.py b/tools/xm-test/tests/restore/01_restore_basic_pos.py index 34c93e8cf8..9ea1ca4c53 100644 --- a/tools/xm-test/tests/restore/01_restore_basic_pos.py +++ b/tools/xm-test/tests/restore/01_restore_basic_pos.py @@ -12,8 +12,8 @@ import time from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Restore currently not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Restore currently not supported for HVM domains") domain = XmTestDomain() diff --git a/tools/xm-test/tests/restore/02_restore_badparm_neg.py b/tools/xm-test/tests/restore/02_restore_badparm_neg.py index c66ed79113..e5f2c90df1 100644 --- a/tools/xm-test/tests/restore/02_restore_badparm_neg.py +++ b/tools/xm-test/tests/restore/02_restore_badparm_neg.py @@ -12,8 +12,8 @@ import re from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Restore currently not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Restore currently not supported for HVM domains") status, output = traceCommand("xm restore -x") eyecatcher1 = "Error:" diff --git a/tools/xm-test/tests/restore/03_restore_badfilename_neg.py b/tools/xm-test/tests/restore/03_restore_badfilename_neg.py index ba6e7e2f30..d45c87b08f 100644 --- a/tools/xm-test/tests/restore/03_restore_badfilename_neg.py +++ b/tools/xm-test/tests/restore/03_restore_badfilename_neg.py @@ -12,8 +12,8 @@ import re from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Restore currently not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Restore currently not supported for HVM domains") status, output = traceCommand("xm restore /tmp/NON_EXIST") eyecatcher1 = "Error:" diff --git a/tools/xm-test/tests/restore/04_restore_withdevices_pos.py b/tools/xm-test/tests/restore/04_restore_withdevices_pos.py index 74c6145c03..b3dfe73121 100644 --- a/tools/xm-test/tests/restore/04_restore_withdevices_pos.py +++ b/tools/xm-test/tests/restore/04_restore_withdevices_pos.py @@ -7,8 +7,8 @@ from XmTestLib import * import re -if ENABLE_VMX_SUPPORT: - SKIP("Restore currently not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Restore currently not supported for HVM domains") config = {"disk": ["phy:/dev/ram0,hda1,w", "phy:/dev/ram1,hdb2,w"], "vif": ['', '']} diff --git a/tools/xm-test/tests/save/01_save_basic_pos.py b/tools/xm-test/tests/save/01_save_basic_pos.py index 27e68a5deb..b5a87ad91d 100644 --- a/tools/xm-test/tests/save/01_save_basic_pos.py +++ b/tools/xm-test/tests/save/01_save_basic_pos.py @@ -7,8 +7,8 @@ import time from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Save currently not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Save currently not supported for HVM domains") domain = XmTestDomain() diff --git a/tools/xm-test/tests/save/02_save_badparm_neg.py b/tools/xm-test/tests/save/02_save_badparm_neg.py index c50dbe9013..2393c46381 100644 --- a/tools/xm-test/tests/save/02_save_badparm_neg.py +++ b/tools/xm-test/tests/save/02_save_badparm_neg.py @@ -12,8 +12,8 @@ import re from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Save currently not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Save currently not supported for HVM domains") status, output = traceCommand("xm save -x") eyecatcher1 = "Error:" diff --git a/tools/xm-test/tests/save/03_save_bogusfile_neg.py b/tools/xm-test/tests/save/03_save_bogusfile_neg.py index 0115ee5f3b..2612f74b1b 100644 --- a/tools/xm-test/tests/save/03_save_bogusfile_neg.py +++ b/tools/xm-test/tests/save/03_save_bogusfile_neg.py @@ -10,8 +10,8 @@ import time from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Save currently not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Save currently not supported for HVM domains") domain = XmTestDomain() diff --git a/tools/xm-test/tests/sysrq/01_sysrq_basic_neg.py b/tools/xm-test/tests/sysrq/01_sysrq_basic_neg.py index 9d213e944a..cc42d47265 100644 --- a/tools/xm-test/tests/sysrq/01_sysrq_basic_neg.py +++ b/tools/xm-test/tests/sysrq/01_sysrq_basic_neg.py @@ -9,8 +9,8 @@ import re from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Sysrq not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Sysrq not supported for HVM domains") status, output = traceCommand("xm sysrq does_not_exist s"); diff --git a/tools/xm-test/tests/sysrq/02_sysrq_sync_pos.py b/tools/xm-test/tests/sysrq/02_sysrq_sync_pos.py index 0b805fd7b6..3aea592a0e 100644 --- a/tools/xm-test/tests/sysrq/02_sysrq_sync_pos.py +++ b/tools/xm-test/tests/sysrq/02_sysrq_sync_pos.py @@ -9,8 +9,8 @@ import time from XmTestLib import * -if ENABLE_VMX_SUPPORT: - SKIP("Sysrq not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Sysrq not supported for HVM domains") # Create a domain (default XmTestDomain, with our ramdisk) domain = XmTestDomain() diff --git a/tools/xm-test/tests/sysrq/03_sysrq_withreboot_pos.py b/tools/xm-test/tests/sysrq/03_sysrq_withreboot_pos.py index b69e5617b0..71cc9f1fb4 100644 --- a/tools/xm-test/tests/sysrq/03_sysrq_withreboot_pos.py +++ b/tools/xm-test/tests/sysrq/03_sysrq_withreboot_pos.py @@ -7,8 +7,8 @@ from XmTestLib import * import time -if ENABLE_VMX_SUPPORT: - SKIP("Sysrq not supported for VMX domains") +if ENABLE_HVM_SUPPORT: + SKIP("Sysrq not supported for HVM domains") domain = XmTestDomain() |