]>
xenbits.xensource.com Git - people/royger/xen-test-framework.git/log
summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Andrew Cooper [Tue, 8 Dec 2015 12:37:04 +0000 (12:37 +0000)]
XTF Selftests
Provide a sanity test of the environment and infrastructure provided by the
test framework itself. These are all expected to pass.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Tue, 15 Dec 2015 09:33:45 +0000 (09:33 +0000)]
Modify entry points to be able to return from exceptions
Trap and Interrupt exceptions will now return, while Fault and Abort
exceptions are still fatal.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Mon, 14 Dec 2015 09:00:02 +0000 (09:00 +0000)]
Represent exception frames in C
Introduce struct cpu_regs, and make the entry points create the expected
layout.
As part of this, split the very x86 bits of asm_macros.h into a new header
file.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Fri, 11 Dec 2015 17:12:01 +0000 (17:12 +0000)]
PV exception entry points
Infrastructure to register the virtual IDT with Xen and get execution back
into C when an exception occurs. The existing 32 and 64bit entry points are
mostly reused, with small adjustments for PV guests.
Most of this change is importing and implementing Xen ABI bits for PV guests.
Exceptions are currently fatal.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Fri, 11 Dec 2015 15:50:25 +0000 (15:50 +0000)]
HVM exception entry points
Infrastructure to set up the IDT and get execution back into C when an
exception occurs.
Exceptions are currently fatal.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Fri, 11 Dec 2015 15:35:12 +0000 (15:35 +0000)]
Refactor architectural trap setup
The setup of entry points is very different between PV and HVM guests.
Introduce two new traps.c to accommodate, a stub arch_init_traps(), and a stub
do_trap() as the C entry point for traps.
Adjust the single arch_crash_hard() into the relevant arch traps.c to reduce
the #ifdef'ary
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Fri, 11 Sep 2015 13:21:24 +0000 (14:21 +0100)]
x86 architectural infrastructure for exception handling
Unlike the GDT which PV guests might have a legitimate interest in, a PV guest
genuinely has no interest in an x86 architectural IDT.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Thu, 10 Dec 2015 16:03:57 +0000 (16:03 +0000)]
Move build system into build/
In hindsight, config/ was not the best choice of names.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Thu, 10 Dec 2015 15:04:03 +0000 (15:04 +0000)]
Import and declare all hypercall entry points
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Thu, 10 Dec 2015 16:45:04 +0000 (16:45 +0000)]
Reduce the quantity of token concatenation with hypercall declarations
Allows better indexing from tools such as cscope
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Thu, 10 Dec 2015 14:03:30 +0000 (14:03 +0000)]
Avoid a constantly rebooting domain when triple faults occur
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Wed, 9 Dec 2015 10:44:16 +0000 (10:44 +0000)]
Fix booting the HVM tests on hardware without hap support
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Mon, 7 Dec 2015 21:43:38 +0000 (21:43 +0000)]
Introduce __noinline and __always_inline annotations
Additionally, switch to uniformly use of the double-underscore variants of
attribute names.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Mon, 7 Dec 2015 21:34:34 +0000 (21:34 +0000)]
Pull all definitions from stddef.h, including bits like offsetof()
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Mon, 7 Dec 2015 17:38:26 +0000 (17:38 +0000)]
Add to clean/distclean rules
Remove generated configuration files, and delete cscope files in any
directory.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Mon, 7 Dec 2015 14:37:28 +0000 (14:37 +0000)]
Adjust linker script to avoid having a PT_LOAD header all the way from zero
Previously, the generated binaries had a single PT_LOAD header all the
way from 0 to the end of the generated code.
When building, the domain builder maps the entire region and
zeroes/copies the data as appropriate. This causes a failure to build
when the header overlaps with unmapped addresses such as the HVM legacy
VGA range.
Link all binaries to load and run at 1MB to avoid the legacy VGA hole in
HVM guests.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Sun, 6 Dec 2015 18:30:46 +0000 (18:30 +0000)]
Create hvm64 test binaries as elf32, take 2
Experimentally, gcc/binutils from Debian Jessie (4.9.2/2.25) and CentOS
7.1 (4.8.3/2.23) don't make valid binaries when linking x86-64 object
files as elf32-x86-64.
Issues include corrupt DWARF debugging information (as confirmed by
gdb/readelf), and erroneously merged strings in .rodata (as confirmed by
strings).
Instead, link all binaries in their natural width, and objcopy hvm64
binaries to elf32-x86-64 after the fact.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Thu, 3 Dec 2015 16:01:53 +0000 (16:01 +0000)]
Provide memset() and memcmp()
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Thu, 3 Dec 2015 15:56:40 +0000 (15:56 +0000)]
Undo previous change to link.lds.S
1MB != 0x10000, and while this shouldn't actually matter, it causes the
domain builder to choke for HVM guests.
Revert for now, until the domain builders' behaviour is understood.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Sat, 24 Oct 2015 10:17:17 +0000 (11:17 +0100)]
Introduce macros for basic number manipulation
And sprinkle them through the existing code.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Wed, 2 Dec 2015 10:22:39 +0000 (10:22 +0000)]
Avoid failing to build if the last directory lacks a Makefile
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Sun, 29 Nov 2015 19:46:47 +0000 (19:46 +0000)]
Automatically include config.h for all per-arch translation units
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Thu, 12 Nov 2015 14:56:01 +0000 (14:56 +0000)]
Create hvm64 test binaries as elf32
New improvements to the HVM domain building logic actually sanity check the
binary for being 32bit, as all HVM domains start in 32bit mode.
Previously, elf64 binaries were erroneously accepted.
In addition, drop the big/little endian bits. x86 is unlikely to ever have a
big endian variant.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Fri, 30 Oct 2015 14:49:37 +0000 (14:49 +0000)]
Expose the GDT to C code
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Fri, 30 Oct 2015 14:00:40 +0000 (14:00 +0000)]
Fix per-arch .S generation rule to properly pass $AFLAGS
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Fri, 23 Oct 2015 14:48:01 +0000 (15:48 +0100)]
Modify default xl cfg files to name the VM identically to the kernel used
Suggested-by: Anshul Makkar <anshul.makkar@citrix.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Thu, 22 Oct 2015 10:43:35 +0000 (11:43 +0100)]
Generate xl configuration files for tests
For now just the default configuration, which gets slightly customised
for each generated environment.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Thu, 22 Oct 2015 09:53:41 +0000 (10:53 +0100)]
Only recurse into directories with a Makefile
Git will leave directories around by default when switching branches,
which causes unnecessary build failures.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Thu, 22 Oct 2015 09:42:48 +0000 (10:42 +0100)]
Disable LTO for now
It clearly isn't wired up correctly at the moment, and causes build
issues on Debian Jessie.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Wed, 30 Sep 2015 14:54:24 +0000 (15:54 +0100)]
Default CC to gcc
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Sun, 30 Aug 2015 22:27:10 +0000 (23:27 +0100)]
Short summary of execution environment
Andrew Cooper [Fri, 14 Aug 2015 17:31:04 +0000 (18:31 +0100)]
Interface for test reports
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Wed, 29 Apr 2015 16:31:43 +0000 (17:31 +0100)]
HVM 32 and 64bit environment
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Mon, 4 May 2015 16:54:04 +0000 (17:54 +0100)]
HVM basic setup
* Hypercalls
* PV and Qemu console
* Memory management
* Pagetables
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Mon, 4 May 2015 16:52:45 +0000 (17:52 +0100)]
LDT/GDT infrastructure
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Mon, 4 May 2015 16:51:48 +0000 (17:51 +0100)]
x86 architectural MSR/CR constants and instruction wrappers
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Wed, 29 Apr 2015 16:50:56 +0000 (17:50 +0100)]
Xen ABI bits for HVM guests
- HVMOP_get_param
- HVM PV Console parameters
- Xen CPUID leaves
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Tue, 24 Mar 2015 18:27:25 +0000 (19:27 +0100)]
Introduce and use a boot stack (one page)
HVM guests don't have one provided by the domain builder.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Sat, 2 May 2015 10:52:29 +0000 (11:52 +0100)]
Introduce panic() and use it to cover some exceptional cases
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Sun, 12 Apr 2015 01:55:01 +0000 (02:55 +0100)]
Use vsnprintf() to provide full formatting capabilities to the console
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Mon, 23 Mar 2015 16:40:21 +0000 (17:40 +0100)]
Integer subset of vsnprintf(), including 64bit types in 32bit build
Also a test binary which compares this implementation to the local libc's
implementation.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Sun, 12 Apr 2015 00:28:38 +0000 (01:28 +0100)]
Implement strnlen()
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Sun, 12 Apr 2015 17:39:41 +0000 (18:39 +0100)]
Provide 64bit division in 32bit environments
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Fri, 20 Mar 2015 23:30:35 +0000 (00:30 +0100)]
PV Console driver. Synchronous output only
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Sun, 22 Mar 2015 14:54:05 +0000 (15:54 +0100)]
Ordering primitives, suitable for a shared ring
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Fri, 20 Mar 2015 21:28:24 +0000 (22:28 +0100)]
Basic memory management for PV guests, sufficient to obtain the console ring virtual address
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Thu, 19 Mar 2015 21:13:51 +0000 (22:13 +0100)]
Hypercall infrastructure needed for writing to a PV console
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Sun, 29 Mar 2015 18:17:05 +0000 (19:17 +0100)]
Write to the hypervisor console
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Sat, 23 May 2015 22:23:42 +0000 (23:23 +0100)]
Basic console and printk() infrastructure
printk() can currently only deal with a plain string, and the output goes
nowhere.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Wed, 18 Mar 2015 12:44:38 +0000 (13:44 +0100)]
Architecture specific setup, obtaining the PV start_info page
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Tue, 17 Mar 2015 23:38:31 +0000 (00:38 +0100)]
Basic hypercall infrastructure. Tests now shut down as opposed to spinning in a loop
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Tue, 17 Mar 2015 23:15:02 +0000 (00:15 +0100)]
Basic build system and pv32/64 stubs. They currently spin in a loop
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Wed, 29 Apr 2015 16:10:35 +0000 (17:10 +0100)]
Doxygen configuration
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Sun, 29 Mar 2015 17:34:36 +0000 (18:34 +0100)]
Some introductory text files
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Andrew Cooper [Tue, 4 Nov 2014 20:48:27 +0000 (20:48 +0000)]
Initial commit
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>