# Knowledge base

## Usage

Secure usage

  Secure usage of the libvirt APIs

Backing chain management

  Explanation of how disk backing chain specification impacts libvirt's behaviour and basic troubleshooting steps of disk problems.

Virtiofs

  Share a filesystem between the guest and the host

Security with QEMU passthrough

  Examination of the security protections used for QEMU and how they need configuring to allow use of QEMU passthrough with host files/devices.

TLS certificates

  Generate and deploy x509 certificates for TLS.

RPM deployment

  Explanation of the different RPM packages and illustration of which to pick for installation

Domain state capture

  Comparison between different methods of capturing domain state

Disk locking

  Ensuring exclusive guest access to disks with virtlockd or Sanlock

Protected virtualization on s390

  Running secure s390 guests with IBM Secure Execution

Launch security

  Securely launching VMs with AMD SEV

Live full disk backup

  A walkthrough of how to take effective live full disk backups.

Merging disk image chains

  Ways to reduce or consolidate disk image chains.

KVM real time

  Run real time workloads in guests on a KVM hypervisor

PCI hotplug

  Effective usage of PCI hotplug

PCI topology

  Addressing schemes for PCI devices

Memory devices

  Memory devices and their use

Snapshots

  Details about snapshotting a VM

Secure Boot

  Enable and disable the Secure Boot feature

Connection fail after installation

  Explanation of a common issue users stumble upon after installation

## Debugging

Debug logs

  Configuration of logging and tips on how to file a good bug report.

Systemtap

  Explanation of how to use systemtap for libvirt tracing.

Capturing core dumps for QEMU

  How to configure libvirt to enable capture of core dumps from QEMU virtual machines

## Internals

Incremental backup internals

  Incremental backup implementation details relevant for users

VM migration internals

  VM migration implementation details, complementing the info in migration

API call flow overview

  Overview of how an API call is handled by the libvirt library and passed over RPC to the daemon.

Spawning commands

  Spawning commands from libvirt driver code

Event loop and worker pool

  Libvirt's event loop and worker pool mode

Lock managers

  Use lock managers to protect disk content

RPC protocol & APIs

  RPC protocol information and API / dispatch guide

QEMU driver threading

  Basics of locking and threaded access to qemu driver primitives.

QEMU migration internals

  Description of migration phases in the v2 and v3 migration protocol.

QEMU monitor event handling

  Brief outline how events emitted by qemu on the monitor are handlded.