~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/virt/paravirt_ops.rst

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/virt/paravirt_ops.rst (Architecture alpha) and /Documentation/virt/paravirt_ops.rst (Architecture sparc)


  1 .. SPDX-License-Identifier: GPL-2.0                 1 .. SPDX-License-Identifier: GPL-2.0
  2                                                     2 
  3 ============                                        3 ============
  4 Paravirt_ops                                        4 Paravirt_ops
  5 ============                                        5 ============
  6                                                     6 
  7 Linux provides support for different hyperviso      7 Linux provides support for different hypervisor virtualization technologies.
  8 Historically, different binary kernels would b      8 Historically, different binary kernels would be required in order to support
  9 different hypervisors; this restriction was re      9 different hypervisors; this restriction was removed with pv_ops.
 10 Linux pv_ops is a virtualization API which ena     10 Linux pv_ops is a virtualization API which enables support for different
 11 hypervisors. It allows each hypervisor to over     11 hypervisors. It allows each hypervisor to override critical operations and
 12 allows a single kernel binary to run on all su     12 allows a single kernel binary to run on all supported execution environments
 13 including native machine -- without any hyperv     13 including native machine -- without any hypervisors.
 14                                                    14 
 15 pv_ops provides a set of function pointers whi     15 pv_ops provides a set of function pointers which represent operations
 16 corresponding to low-level critical instructio     16 corresponding to low-level critical instructions and high-level
 17 functionalities in various areas. pv_ops allow     17 functionalities in various areas. pv_ops allows for optimizations at run
 18 time by enabling binary patching of the low-le     18 time by enabling binary patching of the low-level critical operations
 19 at boot time.                                      19 at boot time.
 20                                                    20 
 21 pv_ops operations are classified into three ca     21 pv_ops operations are classified into three categories:
 22                                                    22 
 23 - simple indirect call                             23 - simple indirect call
 24    These operations correspond to high-level f     24    These operations correspond to high-level functionality where it is
 25    known that the overhead of indirect call is     25    known that the overhead of indirect call isn't very important.
 26                                                    26 
 27 - indirect call which allows optimization with     27 - indirect call which allows optimization with binary patch
 28    Usually these operations correspond to low-     28    Usually these operations correspond to low-level critical instructions. They
 29    are called frequently and are performance c     29    are called frequently and are performance critical. The overhead is
 30    very important.                                 30    very important.
 31                                                    31 
 32 - a set of macros for hand written assembly co     32 - a set of macros for hand written assembly code
 33    Hand written assembly codes (.S files) also     33    Hand written assembly codes (.S files) also need paravirtualization
 34    because they include sensitive instructions     34    because they include sensitive instructions or some code paths in
 35    them are very performance critical.             35    them are very performance critical.
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php