On Wed, Dec 15, 2010 at 06:09:29PM +0200, Avi Kivity wrote:
> This patchset adds an API test framework. Rather than driving kvm from qemu,
> we now have a way of calling the kvm API directly and observing the results.
> We can switch to guest mode and back at will and see any micro effects such
> as the result of executing particular instructions.
>
> A first test is added, for commit edde99ce0 ("KVM: Write protect memory
> after slot swap"). This would be pretty hard to test for using the current
> qemu-driven tests, but detects 5 million failures in about two minutes on
> my machine.
>
> As an experiment, the framework is coded in C++.
>
> Avi Kivity (14):
> Makefile: add support for C++
> Improve autodepend includes
> v2: new
> Add exception class for kernel errors (errno)
> v2: new
> Add try_main() for running a program under an exception handler
> v2: new
> Introduce a C++ wrapper for the kvm APIs
> v2: throw std::exception exceptions, not ints, for libc failures
> better msr list management
> Add support for calling a function in guest mode
> v2: use tr1::function instead of boost::function
> Add sample test using the api test harness
> api: add support for KVM_SET_USER_MEMORY_REGION flags field
> v2: new
> api: support KVM_GET_DIRTY_LOG ioctl
> v2: new
> api: add memory map management
> v2: new
> Build tests with debug information
> v2: new
> api: Add support for creating an identity map with a hole
> v2: new
> Introduce libapi.a to avoid long Makefile recipes
> v2: new
> Add dirty log test
> v2: new
>
> Makefile | 8 +-
> api/api-sample.cc | 30 ++++++++
> api/dirty-log.cc | 78 ++++++++++++++++++++
> api/exception.cc | 33 ++++++++
> api/exception.hh | 19 +++++
> api/identity.cc | 95 ++++++++++++++++++++++++
> api/identity.hh | 43 +++++++++++
> api/kvmxx.cc | 194
> +++++++++++++++++++++++++++++++++++++++++++++++++
> api/kvmxx.hh | 85 +++++++++++++++++++++
> api/memmap.cc | 76 +++++++++++++++++++
> api/memmap.hh | 43 +++++++++++
> config-x86-common.mak | 15 ++++-
> 12 files changed, 715 insertions(+), 4 deletions(-)
> create mode 100644 api/api-sample.cc
> create mode 100644 api/dirty-log.cc
> create mode 100644 api/exception.cc
> create mode 100644 api/exception.hh
> create mode 100644 api/identity.cc
> create mode 100644 api/identity.hh
> create mode 100644 api/kvmxx.cc
> create mode 100644 api/kvmxx.hh
> create mode 100644 api/memmap.cc
> create mode 100644 api/memmap.hh
Applied, thanks.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html