Skip individual domains that vanish while gathering libvirt state
## Problem
`gather_pylibvirt_domains_states` wraps its whole loop in one try/except. If a queried domain is destroyed between `list_domains()` and reading its state (a TOCTOU race), libvirt raises `VIR_ERR_NO_DOMAIN` and the exception unwinds the entire loop, so every still-running domain after it is dropped from the result and reported as STOPPED/`pid: null` until the next poll. It also logged a full WARNING traceback for what is a benign, self-correcting race, and masked genuine errors (e.g. a bug in the per-domain factory) behind that same generic warning.
## Solution
Moved the try/except inside the loop so a vanished domain is skipped individually while the rest of the batch is still reported correctly (a missing entry falls back to STOPPED via `get_pylibvirt_domain_state`). The failure is classified using the new `is_no_domain_error` helper from truenas_pylibvirt: the no-domain race is logged at DEBUG, anything else at ERROR with `exc_info` so genuine bugs stay visible and no longer poison sibling domains.
handbook/virtualization: Fix copy&pasto in driver name
The VMSVGA driver is the one that targets VMware guests, not VBoxSVGA.
Before this fix, the sentence would contradict the one before it. I must
have copied the wrong driver name when I made the original change.
Noticed by: Takashi Shimizu
Skip individual domains that vanish while gathering libvirt state
## Problem
`gather_pylibvirt_domains_states` wraps its whole loop in one try/except. If a queried domain is destroyed between `list_domains()` and reading its state (a TOCTOU race), libvirt raises `VIR_ERR_NO_DOMAIN` and the exception unwinds the entire loop, so every still-running domain after it is dropped from the result and reported as STOPPED/`pid: null` until the next poll. It also logged a full WARNING traceback for what is a benign, self-correcting race, and masked genuine errors (e.g. a bug in the per-domain factory) behind that same generic warning.
## Solution
Moved the try/except inside the loop so a vanished domain is skipped individually while the rest of the batch is still reported correctly (a missing entry falls back to STOPPED via `get_pylibvirt_domain_state`). The failure is classified using the new `is_no_domain_error` helper from truenas_pylibvirt: the no-domain race is logged at DEBUG, anything else at ERROR with `exc_info` so genuine bugs stay visible and no longer poison sibling domains.
[clang][x86] Add constexpr support for VNNI intrinsics (#190549)
Fixes #161340.
It adds constexpr support for VNNI
intrinsics by modifying their header files, their TableGen definitions,
how they're interpreted in InterpBuiltin.cpp and ExprConstant.cpp, and
adds unit tests in the headers' corresponding unit test files.
uname(1): Add '-b' flag to show the kernel's build-ID
The kernel's build-ID has been exposed via the "kern.build_id" sysctl
MIB. Add a '-b' flag to uname(1) to report it.
Obtained-from: FreeBSD (https://reviews.freebsd.org/D20511)
kern.pre.mk: Introduce ${ELDFLAGS} to help customize linker flags
Similar to the case in kmod.mk, introduce the ${ELDFLAGS} variable to
collect the linker flags and makes it easier to customize them.
While there, clean up a bit.
platform: Remove obsolete '.exception_ranges' from linker scripts
As the comment says, it was generate by the Sun/Oracle C++ compiler,
so does not apply to us. Just remove it as FreeBSD did.
See also: FreeBSD
kernel: Expose the build-ID via "kern.build_id" sysctl
Update the linker scripts to expose the start and end of the
linker-generated build-ID, and add the "kern.build_id" sysctl handler to
fetch the information.
A subsequent commit will update uname(1) to report it as well.
Obtained-from: FreeBSD (https://reviews.freebsd.org/D20326)