|
@@ -13,7 +13,7 @@ of a virtual machine. The ioctls belong to three classes
|
|
|
|
|
|
|
|
- VM ioctls: These query and set attributes that affect an entire virtual
|
|
- VM ioctls: These query and set attributes that affect an entire virtual
|
|
|
machine, for example memory layout. In addition a VM ioctl is used to
|
|
machine, for example memory layout. In addition a VM ioctl is used to
|
|
|
- create virtual cpus (vcpus).
|
|
|
|
|
|
|
+ create virtual cpus (vcpus) and devices.
|
|
|
|
|
|
|
|
Only run VM ioctls from the same process (address space) that was used
|
|
Only run VM ioctls from the same process (address space) that was used
|
|
|
to create the VM.
|
|
to create the VM.
|
|
@@ -24,6 +24,11 @@ of a virtual machine. The ioctls belong to three classes
|
|
|
Only run vcpu ioctls from the same thread that was used to create the
|
|
Only run vcpu ioctls from the same thread that was used to create the
|
|
|
vcpu.
|
|
vcpu.
|
|
|
|
|
|
|
|
|
|
+ - device ioctls: These query and set attributes that control the operation
|
|
|
|
|
+ of a single device.
|
|
|
|
|
+
|
|
|
|
|
+ device ioctls must be issued from the same process (address space) that
|
|
|
|
|
+ was used to create the VM.
|
|
|
|
|
|
|
|
2. File descriptors
|
|
2. File descriptors
|
|
|
-------------------
|
|
-------------------
|
|
@@ -32,10 +37,11 @@ The kvm API is centered around file descriptors. An initial
|
|
|
open("/dev/kvm") obtains a handle to the kvm subsystem; this handle
|
|
open("/dev/kvm") obtains a handle to the kvm subsystem; this handle
|
|
|
can be used to issue system ioctls. A KVM_CREATE_VM ioctl on this
|
|
can be used to issue system ioctls. A KVM_CREATE_VM ioctl on this
|
|
|
handle will create a VM file descriptor which can be used to issue VM
|
|
handle will create a VM file descriptor which can be used to issue VM
|
|
|
-ioctls. A KVM_CREATE_VCPU ioctl on a VM fd will create a virtual cpu
|
|
|
|
|
-and return a file descriptor pointing to it. Finally, ioctls on a vcpu
|
|
|
|
|
-fd can be used to control the vcpu, including the important task of
|
|
|
|
|
-actually running guest code.
|
|
|
|
|
|
|
+ioctls. A KVM_CREATE_VCPU or KVM_CREATE_DEVICE ioctl on a VM fd will
|
|
|
|
|
+create a virtual cpu or device and return a file descriptor pointing to
|
|
|
|
|
+the new resource. Finally, ioctls on a vcpu or device fd can be used
|
|
|
|
|
+to control the vcpu or device. For vcpus, this includes the important
|
|
|
|
|
+task of actually running guest code.
|
|
|
|
|
|
|
|
In general file descriptors can be migrated among processes by means
|
|
In general file descriptors can be migrated among processes by means
|
|
|
of fork() and the SCM_RIGHTS facility of unix domain socket. These
|
|
of fork() and the SCM_RIGHTS facility of unix domain socket. These
|