About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / virtual / paravirt_ops.txt


Based on kernel version 4.16.1. Page generated on 2018-04-09 11:53 EST.

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


About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog