1*59cb18f3SChristos Longros.\" 2*59cb18f3SChristos Longros.\" Copyright (c) 2026 Christos Longros <chris.longros@gmail.com> 3*59cb18f3SChristos Longros.\" 4*59cb18f3SChristos Longros.\" SPDX-License-Identifier: BSD-2-Clause 5*59cb18f3SChristos Longros.\" 6*59cb18f3SChristos Longros.Dd March 21, 2026 7*59cb18f3SChristos Longros.Dt VMGENC 4 8*59cb18f3SChristos Longros.Os 9*59cb18f3SChristos Longros.Sh NAME 10*59cb18f3SChristos Longros.Nm vmgenc 11*59cb18f3SChristos Longros.Nd ACPI virtual machine generation ID counter 12*59cb18f3SChristos Longros.Sh SYNOPSIS 13*59cb18f3SChristos Longros.Cd device vmgenc 14*59cb18f3SChristos Longros.Pp 15*59cb18f3SChristos LongrosIn 16*59cb18f3SChristos Longros.Xr loader.conf 5 : 17*59cb18f3SChristos Longros.Cd vmgenc_load="YES" 18*59cb18f3SChristos Longros.Sh DESCRIPTION 19*59cb18f3SChristos LongrosThe 20*59cb18f3SChristos Longros.Nm 21*59cb18f3SChristos Longrosdriver provides support for the Virtual Machine Generation ID, 22*59cb18f3SChristos Longrosa 128-bit unique identifier exposed by the hypervisor via ACPI. 23*59cb18f3SChristos LongrosThe hypervisor changes this identifier whenever the virtual machine 24*59cb18f3SChristos Longrosis cloned, restored from a snapshot, or otherwise duplicated. 25*59cb18f3SChristos Longros.Pp 26*59cb18f3SChristos LongrosWhen a generation ID change is detected, the 27*59cb18f3SChristos Longros.Nm 28*59cb18f3SChristos Longrosdriver feeds the new identifier into the kernel entropy pool via 29*59cb18f3SChristos Longros.Xr random 4 , 30*59cb18f3SChristos Longrosensuring that duplicated virtual machines do not share 31*59cb18f3SChristos Longroscryptographic state. 32*59cb18f3SChristos LongrosThe driver also sends a 33*59cb18f3SChristos Longros.Xr devctl 4 34*59cb18f3SChristos Longrosevent and an internal kernel notification so that other subsystems 35*59cb18f3SChristos Longroscan respond to the duplication. 36*59cb18f3SChristos Longros.Pp 37*59cb18f3SChristos LongrosThe Virtual Machine Generation ID specification is supported by 38*59cb18f3SChristos LongrosQEMU, VMware ESXi, Microsoft Hyper-V, and Xen. 39*59cb18f3SChristos Longros.Sh SYSCTL VARIABLES 40*59cb18f3SChristos LongrosThe following variable is available: 41*59cb18f3SChristos Longros.Bl -tag -width indent 42*59cb18f3SChristos Longros.It Va dev.vmgenc.%d.guid 43*59cb18f3SChristos LongrosThe current cached VM generation counter as a 128-bit value. 44*59cb18f3SChristos LongrosThis value is updated each time the hypervisor signals a 45*59cb18f3SChristos Longrosgeneration change. 46*59cb18f3SChristos Longros.El 47*59cb18f3SChristos Longros.Sh SEE ALSO 48*59cb18f3SChristos Longros.Xr acpi 4 , 49*59cb18f3SChristos Longros.Xr random 4 50*59cb18f3SChristos Longros.Sh HISTORY 51*59cb18f3SChristos LongrosThe 52*59cb18f3SChristos Longros.Nm 53*59cb18f3SChristos Longrosdriver first appeared in 54*59cb18f3SChristos Longros.Fx 13.0 . 55*59cb18f3SChristos Longros.Sh AUTHORS 56*59cb18f3SChristos LongrosThe 57*59cb18f3SChristos Longros.Nm 58*59cb18f3SChristos Longrosdriver was written by 59*59cb18f3SChristos Longros.An Conrad Meyer Aq Mt cem@FreeBSD.org . 60*59cb18f3SChristos Longros.Pp 61*59cb18f3SChristos LongrosThis manual page was written by 62*59cb18f3SChristos Longros.An Christos Longros Aq Mt chris.longros@gmail.com . 63