Re: [PATCH v3 1/1] docs : add doc on cpu model and features

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Aug 27, 2025 at 16:25:06 +0200, Hector Cao wrote:
> Add documentation on the way libvirt displays the Host CPU
> model and capabilities (features). There is an implicit
> expectation from users to get the CPU model name matching the
> CPU model they are running on, however, this does not happen
> most of the time. As a consequence, having a documentation
> is useful both for users to align their expectation and for
> us to point to a place where the situation is clearly explained.
> 
> Signed-off-by: Hector Cao <hector.cao@xxxxxxxxxxxxx>
> ---
>  docs/formatcaps.rst | 44 ++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 44 insertions(+)
> 
> diff --git a/docs/formatcaps.rst b/docs/formatcaps.rst
> index 7e525487e7..3cf83b7c6a 100644
> --- a/docs/formatcaps.rst
> +++ b/docs/formatcaps.rst
> @@ -97,6 +97,50 @@ The ``<host/>`` element consists of the following child elements:
>     parse this element. In contrast with the former elements, this is repeated
>     for each security model the libvirt daemon currently supports.
>  
> +Host CPU model and features
> +^^^^^^^^^^^^^^^^^^^^^^^^^^^
> +
> +As described previously in this section, libvirt exposes to
> +users the list of Host CPU features. Libvirt has a special way to
> +expose this list: Instead of providing the full (and thereby often
> +very long) set of features, libvirt specifies a CPU model as
> +baseline and additional features on top of it (as can be seen in
> +`Examples`_ where the baseline is ``Skylake-Client-noTSX-IBRS``).
> +
> +The ideal case would be that the baseline CPU model definition matches
> +exactly the CPU present in the system, and no additional feature is
> +needed to express the capabilities of the CPU. For example, if you are
> +running on a Server CPU you bought as ``Icelake`` type, the returned
> +CPU model name could be ``Icelake-Server``. However, this ideal
> +situation rarely happens, for two main reasons:
> +
> +- Manufacturers do not ship a single type of CPU under a given name,
> +  there are various different SKUs with different features under the
> +  same name. Yet it is not practical to have a database listing all of
> +  those variants.
> +
> +- Some features might be in the hardware but unavailable for various
> +  reasons (BIOS and kernel configuration, disabled for security,
> +  ...). One typical example where this situation happens is related to
> +  the `TSX mitigation <https://docs.kernel.org/arch/x86/tsx_async_abort.html>`__.
> +  As a mitigation to the TAA side channel attack, the Linux kernel disables
> +  by default TSX and its 2 features, ``rtm`` and ``hle``. Since many Linux
> +  distributions keep this safer default behavior, these 2 features appear
> +  as missing.
> +
> +Because for backward compatibility reasons, host capabilities cannot
> +list features that would need to be removed from the baseline model to
> +describe the host CPU, libvirt has to often use a rather old CPU
> +model, for example, ``Broadwell`` rather than ``Icelake``. Therefore,
> +users *shouldnot* expect the reported CPU model name to have any

s/shouldnot/should not/
...

Reviewed-by: Jiri Denemark <jdenemar@xxxxxxxxxx>

And pushed, thanks.




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux