brintos

brintos / linux-shallow public Read only

0
0
Text · 1.5 KiB · 62d867e Raw
36 lines · plain
1.. SPDX-License-Identifier: GPL-2.02 3============4Paravirt_ops5============6 7Linux provides support for different hypervisor virtualization technologies.8Historically, different binary kernels would be required in order to support9different hypervisors; this restriction was removed with pv_ops.10Linux pv_ops is a virtualization API which enables support for different11hypervisors. It allows each hypervisor to override critical operations and12allows a single kernel binary to run on all supported execution environments13including native machine -- without any hypervisors.14 15pv_ops provides a set of function pointers which represent operations16corresponding to low-level critical instructions and high-level17functionalities in various areas. pv_ops allows for optimizations at run18time by enabling binary patching of the low-level critical operations19at boot time.20 21pv_ops operations are classified into three categories:22 23- simple indirect call24   These operations correspond to high-level functionality where it is25   known that the overhead of indirect call isn't very important.26 27- indirect call which allows optimization with binary patch28   Usually these operations correspond to low-level critical instructions. They29   are called frequently and are performance critical. The overhead is30   very important.31 32- a set of macros for hand written assembly code33   Hand written assembly codes (.S files) also need paravirtualization34   because they include sensitive instructions or some code paths in35   them are very performance critical.36