diff options
Diffstat (limited to 'Documentation/virtual/kvm')
-rw-r--r-- | Documentation/virtual/kvm/api.txt | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt index 6671fdc0afb1..a5607c571cb3 100644 --- a/Documentation/virtual/kvm/api.txt +++ b/Documentation/virtual/kvm/api.txt | |||
@@ -2071,6 +2071,60 @@ KVM_S390_INT_EXTERNAL_CALL (vcpu) - sigp external call; source cpu in parm | |||
2071 | 2071 | ||
2072 | Note that the vcpu ioctl is asynchronous to vcpu execution. | 2072 | Note that the vcpu ioctl is asynchronous to vcpu execution. |
2073 | 2073 | ||
2074 | 4.78 KVM_PPC_GET_HTAB_FD | ||
2075 | |||
2076 | Capability: KVM_CAP_PPC_HTAB_FD | ||
2077 | Architectures: powerpc | ||
2078 | Type: vm ioctl | ||
2079 | Parameters: Pointer to struct kvm_get_htab_fd (in) | ||
2080 | Returns: file descriptor number (>= 0) on success, -1 on error | ||
2081 | |||
2082 | This returns a file descriptor that can be used either to read out the | ||
2083 | entries in the guest's hashed page table (HPT), or to write entries to | ||
2084 | initialize the HPT. The returned fd can only be written to if the | ||
2085 | KVM_GET_HTAB_WRITE bit is set in the flags field of the argument, and | ||
2086 | can only be read if that bit is clear. The argument struct looks like | ||
2087 | this: | ||
2088 | |||
2089 | /* For KVM_PPC_GET_HTAB_FD */ | ||
2090 | struct kvm_get_htab_fd { | ||
2091 | __u64 flags; | ||
2092 | __u64 start_index; | ||
2093 | __u64 reserved[2]; | ||
2094 | }; | ||
2095 | |||
2096 | /* Values for kvm_get_htab_fd.flags */ | ||
2097 | #define KVM_GET_HTAB_BOLTED_ONLY ((__u64)0x1) | ||
2098 | #define KVM_GET_HTAB_WRITE ((__u64)0x2) | ||
2099 | |||
2100 | The `start_index' field gives the index in the HPT of the entry at | ||
2101 | which to start reading. It is ignored when writing. | ||
2102 | |||
2103 | Reads on the fd will initially supply information about all | ||
2104 | "interesting" HPT entries. Interesting entries are those with the | ||
2105 | bolted bit set, if the KVM_GET_HTAB_BOLTED_ONLY bit is set, otherwise | ||
2106 | all entries. When the end of the HPT is reached, the read() will | ||
2107 | return. If read() is called again on the fd, it will start again from | ||
2108 | the beginning of the HPT, but will only return HPT entries that have | ||
2109 | changed since they were last read. | ||
2110 | |||
2111 | Data read or written is structured as a header (8 bytes) followed by a | ||
2112 | series of valid HPT entries (16 bytes) each. The header indicates how | ||
2113 | many valid HPT entries there are and how many invalid entries follow | ||
2114 | the valid entries. The invalid entries are not represented explicitly | ||
2115 | in the stream. The header format is: | ||
2116 | |||
2117 | struct kvm_get_htab_header { | ||
2118 | __u32 index; | ||
2119 | __u16 n_valid; | ||
2120 | __u16 n_invalid; | ||
2121 | }; | ||
2122 | |||
2123 | Writes to the fd create HPT entries starting at the index given in the | ||
2124 | header; first `n_valid' valid entries with contents from the data | ||
2125 | written, then `n_invalid' invalid entries, invalidating any previously | ||
2126 | valid entries found. | ||
2127 | |||
2074 | 2128 | ||
2075 | 5. The kvm_run structure | 2129 | 5. The kvm_run structure |
2076 | ------------------------ | 2130 | ------------------------ |