diff options
author | Luke Nowakowski-Krijger <lnowakow@eng.ucsd.edu> | 2019-07-10 08:30:52 -0700 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2019-07-11 15:11:10 +0200 |
commit | 8373bc4f1b7072a020860896b404bff0a54c7583 (patch) | |
tree | 2b09738a297f5314e6cbdf828be8b27839c9d9db /Documentation/virtual/paravirt_ops.rst | |
parent | d7a08882a0a4b4e176691331ee3f492996579534 (diff) | |
download | lwn-8373bc4f1b7072a020860896b404bff0a54c7583.tar.gz lwn-8373bc4f1b7072a020860896b404bff0a54c7583.zip |
Documentation: virtual: Convert paravirt_ops.txt to .rst
Convert paravirt_opts.txt to .rst format to be able to be parsed by
sphinx.
Made some minor spacing and formatting corrections to make defintions
much more clear and easy to read. Added default kernel license to the
document.
Signed-off-by: Luke Nowakowski-Krijger <lnowakow@eng.ucsd.edu>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'Documentation/virtual/paravirt_ops.rst')
-rw-r--r-- | Documentation/virtual/paravirt_ops.rst | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/Documentation/virtual/paravirt_ops.rst b/Documentation/virtual/paravirt_ops.rst new file mode 100644 index 000000000000..6b789d27cead --- /dev/null +++ b/Documentation/virtual/paravirt_ops.rst @@ -0,0 +1,35 @@ +.. SPDX-License-Identifier: GPL-2.0 + +============ +Paravirt_ops +============ + +Linux provides support for different hypervisor virtualization technologies. +Historically different binary kernels would be required in order to support +different hypervisors, this restriction was removed with pv_ops. +Linux pv_ops is a virtualization API which enables support for different +hypervisors. It allows each hypervisor to override critical operations and +allows a single kernel binary to run on all supported execution environments +including native machine -- without any hypervisors. + +pv_ops provides a set of function pointers which represent operations +corresponding to low level critical instructions and high level +functionalities in various areas. pv-ops allows for optimizations at run +time by enabling binary patching of the low-ops critical operations +at boot time. + +pv_ops operations are classified into three categories: + +- simple indirect call + These operations correspond to high level functionality where it is + known that the overhead of indirect call isn't very important. + +- indirect call which allows optimization with binary patch + Usually these operations correspond to low level critical instructions. They + are called frequently and are performance critical. The overhead is + very important. + +- a set of macros for hand written assembly code + Hand written assembly codes (.S files) also need paravirtualization + because they include sensitive instructions or some of code paths in + them are very performance critical. |