This is the next iteration of the external IPT monitoring series, reworked
massively from v6 to fix a whole slew of bugs with the XENMEM_acquire_resource
interface. It also includes some additional bugfixes to make traced VM's work
when forked.
A branch with all prerequisites is available at:
https://xenbits.xen.org/gitweb/?p=people/andrewcoop/xen.git;a=shortlog;h=refs/heads/xen-ipt
This version has undergone basic testing from Michał, Tamas and myself, and
seems to work for the intended usecases.
Andrew Cooper (1):
xen+tools: Introduce XEN_SYSCTL_PHYSCAP_vmtrace
Michał Leszczyński (7):
xen/domain: Add vmtrace_frames domain creation parameter
tools/[lib]xl: Add vmtrace_buf_size parameter
xen/memory: Add a vmtrace_buf resource type
x86/vmx: Add Intel Processor Trace support
xen/domctl: Add XEN_DOMCTL_vmtrace_op
tools/libxc: Add xc_vmtrace_* functions
tools/misc: Add xen-vmtrace tool
Tamas K Lengyel (2):
xen/vmtrace: support for VM forks
x86/vm_event: Carry Processor Trace buffer offset in vm_event
docs/man/xl.cfg.5.pod.in | 9 ++
tools/golang/xenlight/helpers.gen.go | 4 +
tools/golang/xenlight/types.gen.go | 2 +
tools/include/libxl.h | 14 ++
tools/include/xenctrl.h | 73 +++++++++++
tools/libs/ctrl/Makefile | 1 +
tools/libs/ctrl/xc_vmtrace.c | 128 ++++++++++++++++++
tools/libs/light/libxl.c | 2 +
tools/libs/light/libxl_cpuid.c | 1 +
tools/libs/light/libxl_create.c | 2 +
tools/libs/light/libxl_types.idl | 5 +
tools/misc/.gitignore | 1 +
tools/misc/Makefile | 4 +
tools/misc/xen-cpuid.c | 2 +-
tools/misc/xen-vmtrace.c | 154 ++++++++++++++++++++++
tools/xl/xl_info.c | 5 +-
tools/xl/xl_parse.c | 4 +
xen/arch/x86/domain.c | 23 ++++
xen/arch/x86/domctl.c | 55 ++++++++
xen/arch/x86/hvm/vmx/vmcs.c | 15 ++-
xen/arch/x86/hvm/vmx/vmx.c | 196 +++++++++++++++++++++++++++-
xen/arch/x86/mm/mem_sharing.c | 3 +
xen/arch/x86/vm_event.c | 3 +
xen/common/domain.c | 58 ++++++++
xen/common/memory.c | 27 ++++
xen/common/sysctl.c | 2 +
xen/include/asm-x86/cpufeature.h | 1 +
xen/include/asm-x86/hvm/hvm.h | 72 ++++++++++
xen/include/asm-x86/hvm/vmx/vmcs.h | 4 +
xen/include/asm-x86/msr.h | 32 +++++
xen/include/public/arch-x86/cpufeatureset.h | 1 +
xen/include/public/domctl.h | 36 +++++
xen/include/public/memory.h | 1 +
xen/include/public/sysctl.h | 1 +
xen/include/public/vm_event.h | 6 +
xen/include/xen/domain.h | 2 +
xen/include/xen/sched.h | 7 +
xen/xsm/flask/hooks.c | 1 +
38 files changed, 952 insertions(+), 5 deletions(-)
create mode 100644 tools/libs/ctrl/xc_vmtrace.c
create mode 100644 tools/misc/xen-vmtrace.c
--
2.11.0