mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-08 10:13:56 -06:00
i386/pc: Support cache topology in -machine for PC machine
Allow user to configure l1d, l1i, l2 and l3 cache topologies for PC machine. Additionally, add the document of "-machine smp-cache" in qemu-options.hx. Signed-off-by: Zhao Liu <zhao1.liu@intel.com> Tested-by: Yongwei Ma <yongwei.ma@intel.com> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Link: https://lore.kernel.org/r/20250110145115.1574345-5-zhao1.liu@intel.com Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
5ca9282d25
commit
90df2cac37
2 changed files with 33 additions and 1 deletions
|
@ -42,7 +42,8 @@ DEF("machine", HAS_ARG, QEMU_OPTION_machine, \
|
|||
" aux-ram-share=on|off allocate auxiliary guest RAM as shared (default: off)\n"
|
||||
#endif
|
||||
" memory-backend='backend-id' specifies explicitly provided backend for main RAM (default=none)\n"
|
||||
" cxl-fmw.0.targets.0=firsttarget,cxl-fmw.0.targets.1=secondtarget,cxl-fmw.0.size=size[,cxl-fmw.0.interleave-granularity=granularity]\n",
|
||||
" cxl-fmw.0.targets.0=firsttarget,cxl-fmw.0.targets.1=secondtarget,cxl-fmw.0.size=size[,cxl-fmw.0.interleave-granularity=granularity]\n"
|
||||
" smp-cache.0.cache=cachename,smp-cache.0.topology=topologylevel\n",
|
||||
QEMU_ARCH_ALL)
|
||||
SRST
|
||||
``-machine [type=]name[,prop=value[,...]]``
|
||||
|
@ -172,6 +173,33 @@ SRST
|
|||
::
|
||||
|
||||
-machine cxl-fmw.0.targets.0=cxl.0,cxl-fmw.0.targets.1=cxl.1,cxl-fmw.0.size=128G,cxl-fmw.0.interleave-granularity=512
|
||||
|
||||
``smp-cache.0.cache=cachename,smp-cache.0.topology=topologylevel``
|
||||
Define cache properties for SMP system.
|
||||
|
||||
``cache=cachename`` specifies the cache that the properties will be
|
||||
applied on. This field is the combination of cache level and cache
|
||||
type. It supports ``l1d`` (L1 data cache), ``l1i`` (L1 instruction
|
||||
cache), ``l2`` (L2 unified cache) and ``l3`` (L3 unified cache).
|
||||
|
||||
``topology=topologylevel`` sets the cache topology level. It accepts
|
||||
CPU topology levels including ``core``, ``module``, ``cluster``, ``die``,
|
||||
``socket``, ``book``, ``drawer`` and a special value ``default``. If
|
||||
``default`` is set, then the cache topology will follow the architecture's
|
||||
default cache topology model. If another topology level is set, the cache
|
||||
will be shared at corresponding CPU topology level. For example,
|
||||
``topology=core`` makes the cache shared by all threads within a core.
|
||||
The omitting cache will default to using the ``default`` level.
|
||||
|
||||
The default cache topology model for an i386 PC machine is as follows:
|
||||
``l1d``, ``l1i``, and ``l2`` caches are per ``core``, while the ``l3``
|
||||
cache is per ``die``.
|
||||
|
||||
Example:
|
||||
|
||||
::
|
||||
|
||||
-machine smp-cache.0.cache=l1d,smp-cache.0.topology=core,smp-cache.1.cache=l1i,smp-cache.1.topology=core
|
||||
ERST
|
||||
|
||||
DEF("M", HAS_ARG, QEMU_OPTION_M,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue