login
Login
/
Register
Search
Search this site:
Forums
News
Blogs
Features
Site
Home
»
Mailing list archives
»
linux-kernel
»
2008
»
April
»
17
Re: [PATCH 13/45] KVM: s390: API documentation
view
thread
Previous message: [
thread
] [
date
] [
author
]
Next message: [
thread
] [
date
] [
author
]
[view in full thread]
From: Randy Dunlap
Subject:
Re: [PATCH 13/45] KVM: s390: API documentation
Date: Thursday, April 17, 2008 - 8:11 am
On Thu, 17 Apr 2008 12:10:18 +0300 Avi Kivity wrote:
quoted text
> From: Carsten Otte <cotte@de.ibm.com> > > This patch adds Documentation/s390/kvm.txt, which describes specifics of kvm's > user interface that are unique to s390 architecture. > > Signed-off-by: Carsten Otte <cotte@de.ibm.com> > Signed-off-by: Avi Kivity <avi@qumranet.com> > --- > Documentation/s390/kvm.txt | 125 ++++++++++++++++++++++++++++++++++++++++++++ > 1 files changed, 125 insertions(+), 0 deletions(-) > create mode 100644 Documentation/s390/kvm.txt > > diff --git a/Documentation/s390/kvm.txt b/Documentation/s390/kvm.txt > new file mode 100644 > index 0000000..6f5ceb0 > --- /dev/null > +++ b/Documentation/s390/kvm.txt > @@ -0,0 +1,125 @@ > +*** BIG FAT WARNING *** > +The kvm module is currently in EXPERIMENTAL state for s390. This means that > +the interface to the module is not yet considered to remain stable. Thus, be > +prepared that we keep breaking your userspace application and guest > +compatibility over and over again until we feel happy with the result. Make sure > +your guest kernel, your host kernel, and your userspace launcher are in a > +consistent state. > + > +This Documentation describes the unique ioctl calls to /dev/kvm, the resulting > +kvm-vm file descriptors, and the kvm-vcpu file descriptors that differ from x86. > + > +1. ioctl calls to /dev/kvm > +KVM does support the following ioctls on s390 that are common with other > +architectures and do behave the same: > +KVM_GET_API_VERSION > +KVM_CREATE_VM (*) see note > +KVM_CHECK_EXTENSION > +KVM_GET_VCPU_MMAP_SIZE > + > +Notes: > +* KVM_CREATE_VM may fail on s390, if the calling process has multiple > +threads and has not called KVM_S390_ENABLE_SIE before. > + > +In addition, on s390 the following architecture specific ioctls are supported: > +ioctl: KVM_S390_ENABLE_SIE > +args: none > +see also: include/linux/kvm.h > +This call causes the kernel to switch on PGSTE in the user page table. This > +operation is needed in order to run a virtual machine, and it requires the > +calling process to be single-threaded. Note that the first call to KVM_CREATE_VM > +will implicitly try to switch on PGSTE if the user process has not called > +KVM_S390_ENABLE_SIE before. User processes that want to launch multiple threads > +before creating a virtual machine have to call KVM_S390_ENABLE_SIE, or will > +observe an error calling KVM_CREATE_VM. Switching on PGSTE is a one-time > +operation, is not reversible, and will persist over the entire lifetime of > +the calling process. It does not have any user-visible effect other than a small > +performance penalty. > + > +2. ioctl calls to the kvm-vm file descriptor > +KVM does support the following ioctls on s390 that are common with other > +architectures and do behave the same: > +KVM_CREATE_VCPU > +KVM_SET_USER_MEMORY_REGION (*) see note > +KVM_GET_DIRTY_LOG (**) see note > + > +Notes: > +* kvm does only allow exactly one memory slot on s390, which has to start > + at guest absolute address zero and at a user address that is aligned on any > + page boundary. This hardware "limitation" allows us to have a few unique > + optimizations. The memory slot doesn't have to be filled > + with memory actually, it may contain sparse holes. That said, with different > + user memory layout this does still allow a large flexibility when > + doing the guest memory setup. > +** KVM_GET_DIRTY_LOG doesn't work properly yet. The user will receive an empty > +log. This ioctl call is only needed for guest migration, and we intend to > +implement this one in the future. > + > +In addition, on s390 the following architecture specific ioctls for the kvm-vm > +file descriptor are supported: > +ioctl: KVM_S390_INTERRUPT > +args: struct kvm_s390_interrupt * > +see also: include/linux/kvm.h > +This ioctl is used to submit a floating interrupt for a virtual machine. > +Floating interrupts may be delivered to any virtual cpu in the configuration. > +Only some interrupt types defined in include/linux/kvm.h make sense when > +submitted as floating interrupts. The following interrupts are not considered > +to be useful as floating interrupts, and a call to inject them will result in > +-EINVAL error code: program interrupts and interprocessor signals. Valid > +floating interrupts are: > +KVM_S390_INT_VIRTIO > +KVM_S390_INT_SERVICE > + > +3. ioctl calls to the kvm-vcpu file descriptor > +KVM does support the following ioctls on s390 that are common with other > +architectures and do behave the same: > +KVM_RUN > +KVM_GET_REGS > +KVM_SET_REGS > +KVM_GET_SREGS > +KVM_SET_SREGS > +KVM_GET_FPU > +KVM_SET_FPU > + > +In addition, on s390 the following architecture specific ioctls for the > +kvm-vcpu file descriptor are supported: > +ioctl: KVM_S390_INTERRUPT > +args: struct kvm_s390_interrupt * > +see also: include/linux/kvm.h > +This ioctl is used to submit an interrupt for a specific virtual cpu. > +Only some interrupt types defined in include/linux/kvm.h make sense when > +submitted for a specific cpu. The following interrupts are not considered > +to be useful, and a call to inject them will result in -EINVAL error code: > +service processor calls and virtio interrupts. Valid interrupt types are: > +KVM_S390_PROGRAM_INT > +KVM_S390_SIGP_STOP > +KVM_S390_RESTART > +KVM_S390_SIGP_SET_PREFIX > +KVM_S390_INT_EMERGENCY > + > +ioctl: KVM_S390_STORE_STATUS > +args: unsigned long > +see also: include/linux/kvm.h > +This ioctl stores the state of the cpu at the guest real address given as > +argument, unless one of the following values defined in include/linux/kvm.h > +is given as arguement: > +KVM_S390_STORE_STATUS_NOADDR - the CPU stores its status to the save area in
~~~
quoted text
> +absolute lowcore as defined by the principles of operation > +KVM_S390_STORE_STATUS_PREFIXED - the CPU stores its status to the save area in
~~~ Please use "CPU" consistently throughout the file (i.e., not "cpu").
quoted text
> +its prefix page just like the dump tool that comes with zipl. This is useful > +to create a system dump for use with lkcdutils or crash. > + > +ioctl: KVM_S390_SET_INITIAL_PSW > +args: struct kvm_s390_psw * > +see also: include/linux/kvm.h > +This ioctl can be used to set the processor status word (psw) of a stopped cpu > +prior to running it with KVM_RUN. Note that this call is not required to modify > +the psw during sie intercepts that fall back to userspace because struct kvm_run > +does contain the psw, and this value is evaluated during reentry of KVM_RUN > +after the intercept exit was recognized. > + > +ioctl: KVM_S390_INITIAL_RESET > +args: none > +see also: include/linux/kvm.h > +This ioctl can be used to perform an initial cpu reset as defined by the > +principles of operation. The target cpu has to be in stopped state. > --
--- ~Randy --
unsubscribe notice
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to
majordomo@vger.kernel.org
More majordomo info at
http://vger.kernel.org/majordomo-info.html
Please read the FAQ at
http://www.tux.org/lkml/
Previous message: [
thread
] [
date
] [
author
]
Next message: [
thread
] [
date
] [
author
]
Messages in current thread:
[PATCH 00/45] KVM updates for the 2.6.26 merge window (par ...
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 01/45] s390: fixup for kvm
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 02/45] s390: KVM preparation: provide hook to enabl ...
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 03/45] s390: KVM preparation: host memory managemen ...
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 04/45] s390: KVM preparation: address of the 64bit ...
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 05/45] s390: KVM preparation: split sysinfo definti ...
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 06/45] KVM: s390: arch backend for the kvm kernel m ...
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 07/45] KVM: s390: sie intercept handling
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 08/45] KVM: s390: interrupt subsystem, cpu timer, w ...
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 09/45] KVM: s390: intercepts for privileged instruc ...
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 10/45] KVM: s390: interprocessor communication via sigp
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 11/45] KVM: s390: intercepts for diagnose instructions
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 12/45] KVM: s390: add kvm to kconfig on s390
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 13/45] KVM: s390: API documentation
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 14/45] KVM: s390: update maintainers
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 15/45] s390: KVM guest: detect when running on kvm
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 16/45] s390: KVM guest: virtio device support, and ...
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 17/45] KVM: VMX: Enable MSR Bitmap feature
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 18/45] KVM: MMU: unify slots_lock usage
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 19/45] KVM: MMU: allow the vm to shrink the kvm mmu ...
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 20/45] KVM: Free apic access page on vm destruction
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 21/45] KVM: function declaration parameter name cleanup
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 22/45] KVM: add vm refcounting
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 23/45] KVM: MMU: Only mark_page_accessed() if the p ...
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 24/45] KVM: MMU: prepopulate guest pages after writ ...
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 25/45] KVM: s390: Fix incorrect return value
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 26/45] KVM: s390: rename stfl to kvm_stfl
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 27/45] KVM: s390: Improve pgste accesses
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 28/45] ia64: Add API for allocating Dynamic TR resource
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 29/45] ia64: Implement smp_call_function_mask for ia64
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 30/45] KVM: ia64: Prepare some structure and routin ...
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 31/45] KVM: ia64: Add header files for kvm/ia64
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 32/45] KVM: ia64: Add kvm arch-specific core code f ...
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 33/45] KVM: ia64: Add header files for kvm/ia64
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 34/45] KVM: ia64: VMM module interfaces
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 35/45] KVM: ia64: Add TLB virtulization support
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 36/45] KVM: ia64: Add interruption vector table for vmm
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 37/45] KVM: ia64: Add mmio decoder for kvm/ia64
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 38/45] KVM: ia64: Add trampoline for guest/host mod ...
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 39/45] KVM: ia64: Add processor virtulization support
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 40/45] KVM: ia64: Add optimization for some virtuli ...
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 41/45] KVM: ia64: Generate offset values for assemb ...
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 42/45] KVM: ia64: Add guest interruption injection ...
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 43/45] KVM: ia64: Add kvm sal/pal virtulization support
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 44/45] KVM: ia64: Enable kvm build for ia64
, Avi Kivity
, (Thu Apr 17, 2:10 am)
[PATCH 45/45] KVM: ia64: Add a guide about how to create k ...
, Avi Kivity
, (Thu Apr 17, 2:10 am)
Re: [PATCH 13/45] KVM: s390: API documentation
, Randy Dunlap
, (Thu Apr 17, 8:11 am)
Re: [PATCH 45/45] KVM: ia64: Add a guide about how to crea ...
, Randy Dunlap
, (Thu Apr 17, 8:15 am)
Re: [PATCH 13/45] KVM: s390: API documentation
, Carsten Otte
, (Thu Apr 17, 8:42 am)
Navigation
Mailing list archives
Recent posts
Popular discussions
linux-kernel
:
Mel Gorman
Re: [PATCH 1/4] vmstat: remove zone->lock from walk_zones_in_node
Guenter Roeck
Re: [lm-sensors] Location for thermal drivers
David Woodhouse
Re: RFC: Moving firmware blobs out of the kernel.
Siddha, Suresh B
Re: [PATCH 2.6.21 review I] [11/25] x86: default to physical mode on hotplug CPU k...
Peter Zijlstra
Re: [patch 4/6] mm: merge populate and nopage into fault (fixes nonlinear)
git-commits-head
:
Linux Kernel Mailing List
[MIPS] Fix potential latency problem due to non-atomic cpu_wait.
Linux Kernel Mailing List
USB: rename USB_SPEED_VARIABLE to USB_SPEED_WIRELESS
Linux Kernel Mailing List
lib/vsprintf.c: fix bug omitting minus sign of numbers (module_param)
Linux Kernel Mailing List
[Bluetooth] Initiate authentication during connection establishment
Linux Kernel Mailing List
[POWERPC] 4xx: Add ppc40x_defconfig
linux-netdev
:
MERCEDES
Your mail id has won 950,000.00 in the MERCEDES Benz Online Promo.for claims send:
David Miller
Re: [PATCH] xen/netfront: do not mark packets of length < MSS as GSO
David Miller
Re: skb_segment() questions
Shan Wei
[RFC PATCH net-next 2/5]IPv6:netfilter: Send an ICMPv6 "Fragment Reassembly Timeou...
Stanislaw Gruszka
[PATCH 1/4] bnx2x: use smp_mb() to keep ordering of read write operations
git
:
Nicolas Sebrecht
git-svn died of signal 11 (was "3 failures on test t9100 (svn)")
Junio C Hamano
Re: [PATCH 2/2] Add url.<base>.pushInsteadOf: URL rewriting for push only
Martin Langhoff
Re: [PATCH] GIT commit statistics.
Alexandre Julliard
[PATCH] gitweb: Put back shortlog instead of graphiclog in the project list.
Josh Triplett
[PATCH 2/2] Add url.<base>.pushInsteadOf: URL rewriting for push only
openbsd-misc
:
Taisto Qvist XX
Re: AMD GEODE LX-800 just works with kernel from install42.iso and kernelpanics wi...
Nico Meijer
Re: gOS Develop Kit with VIA pc-1 Processor Platform VIA C7-D
Andreas Bihlmaier
Re: jetway board sensors (Fintek F71805F)
admin
Drive a 2009 car from R799p/m
Antti Harri
Re: how to create a sha256 hash
Colocation donated by:
Syndicate