Revision e26f1bea3b833fb2c16fb5f0a949da1efa219de3 authored by Linus Torvalds on 28 July 2017, 19:31:49 UTC, committed by Linus Torvalds on 28 July 2017, 19:31:49 UTC
Pull crypto fixes from Herbert Xu:

 - remove broken dt bindings in inside-secure

 - fix authencesn crash when used with digest_null

 - fix cavium/nitrox firmware path

 - fix SHA3 failure in brcm

 - fix Kconfig dependency for brcm

* 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
  crypto: authencesn - Fix digest_null crash
  crypto: brcm - remove BCM_PDC_MBOX dependency in Kconfig
  Documentation/bindings: crypto: remove the dma-mask property
  crypto: inside-secure - do not parse the dma mask from dt
  crypto: cavium/nitrox - Change in firmware path.
  crypto: brcm - Fix SHA3-512 algorithm failure
2 parent s 0a2a133 + 41cdf7a
Raw File
paravirt_ops.txt
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.
back to top