mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 23:33:54 -06:00
numa: Extend CLI to provide memory side cache information
Add -numa hmat-cache option to provide Memory Side Cache Information. These memory attributes help to build Memory Side Cache Information Structure(s) in ACPI Heterogeneous Memory Attribute Table (HMAT). Before using hmat-cache option, enable HMAT with -machine hmat=on. Acked-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Liu Jingqi <jingqi.liu@intel.com> Signed-off-by: Tao Xu <tao3.xu@intel.com> Message-Id: <20191213011929.2520-4-tao3.xu@intel.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com>
This commit is contained in:
parent
9b12dfa03a
commit
c412a48d4d
4 changed files with 179 additions and 4 deletions
|
@ -428,10 +428,12 @@
|
|||
#
|
||||
# @hmat-lb: memory latency and bandwidth information (Since: 5.0)
|
||||
#
|
||||
# @hmat-cache: memory side cache information (Since: 5.0)
|
||||
#
|
||||
# Since: 2.1
|
||||
##
|
||||
{ 'enum': 'NumaOptionsType',
|
||||
'data': [ 'node', 'dist', 'cpu', 'hmat-lb' ] }
|
||||
'data': [ 'node', 'dist', 'cpu', 'hmat-lb', 'hmat-cache' ] }
|
||||
|
||||
##
|
||||
# @NumaOptions:
|
||||
|
@ -447,7 +449,8 @@
|
|||
'node': 'NumaNodeOptions',
|
||||
'dist': 'NumaDistOptions',
|
||||
'cpu': 'NumaCpuOptions',
|
||||
'hmat-lb': 'NumaHmatLBOptions' }}
|
||||
'hmat-lb': 'NumaHmatLBOptions',
|
||||
'hmat-cache': 'NumaHmatCacheOptions' }}
|
||||
|
||||
##
|
||||
# @NumaNodeOptions:
|
||||
|
@ -646,6 +649,80 @@
|
|||
'*latency': 'uint64',
|
||||
'*bandwidth': 'size' }}
|
||||
|
||||
##
|
||||
# @HmatCacheAssociativity:
|
||||
#
|
||||
# Cache associativity in the Memory Side Cache Information Structure
|
||||
# of HMAT
|
||||
#
|
||||
# For more information of @HmatCacheAssociativity, see chapter
|
||||
# 5.2.27.5: Table 5-147 of ACPI 6.3 spec.
|
||||
#
|
||||
# @none: None (no memory side cache in this proximity domain,
|
||||
# or cache associativity unknown)
|
||||
#
|
||||
# @direct: Direct Mapped
|
||||
#
|
||||
# @complex: Complex Cache Indexing (implementation specific)
|
||||
#
|
||||
# Since: 5.0
|
||||
##
|
||||
{ 'enum': 'HmatCacheAssociativity',
|
||||
'data': [ 'none', 'direct', 'complex' ] }
|
||||
|
||||
##
|
||||
# @HmatCacheWritePolicy:
|
||||
#
|
||||
# Cache write policy in the Memory Side Cache Information Structure
|
||||
# of HMAT
|
||||
#
|
||||
# For more information of @HmatCacheWritePolicy, see chapter
|
||||
# 5.2.27.5: Table 5-147: Field "Cache Attributes" of ACPI 6.3 spec.
|
||||
#
|
||||
# @none: None (no memory side cache in this proximity domain,
|
||||
# or cache write policy unknown)
|
||||
#
|
||||
# @write-back: Write Back (WB)
|
||||
#
|
||||
# @write-through: Write Through (WT)
|
||||
#
|
||||
# Since: 5.0
|
||||
##
|
||||
{ 'enum': 'HmatCacheWritePolicy',
|
||||
'data': [ 'none', 'write-back', 'write-through' ] }
|
||||
|
||||
##
|
||||
# @NumaHmatCacheOptions:
|
||||
#
|
||||
# Set the memory side cache information for a given memory domain.
|
||||
#
|
||||
# For more information of @NumaHmatCacheOptions, see chapter
|
||||
# 5.2.27.5: Table 5-147: Field "Cache Attributes" of ACPI 6.3 spec.
|
||||
#
|
||||
# @node-id: the memory proximity domain to which the memory belongs.
|
||||
#
|
||||
# @size: the size of memory side cache in bytes.
|
||||
#
|
||||
# @level: the cache level described in this structure.
|
||||
#
|
||||
# @associativity: the cache associativity,
|
||||
# none/direct-mapped/complex(complex cache indexing).
|
||||
#
|
||||
# @policy: the write policy, none/write-back/write-through.
|
||||
#
|
||||
# @line: the cache Line size in bytes.
|
||||
#
|
||||
# Since: 5.0
|
||||
##
|
||||
{ 'struct': 'NumaHmatCacheOptions',
|
||||
'data': {
|
||||
'node-id': 'uint32',
|
||||
'size': 'size',
|
||||
'level': 'uint8',
|
||||
'associativity': 'HmatCacheAssociativity',
|
||||
'policy': 'HmatCacheWritePolicy',
|
||||
'line': 'uint16' }}
|
||||
|
||||
##
|
||||
# @HostMemPolicy:
|
||||
#
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue