mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 08:43:55 -06:00
virtio, pci, pc: fixes, features
Bugfixes all over the place. HMAT support. New flags for vhost-user-blk utility. Auto-tuning of seg max for virtio storage. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> -----BEGIN PGP SIGNATURE----- iQFDBAABCAAtFiEEXQn9CHHI+FuUyooNKB8NuNKNVGkFAl4TaMEPHG1zdEByZWRo YXQuY29tAAoJECgfDbjSjVRpvzgH/2LyDAzCa9h93ikSJjmyUk5FUaqve38daEb3 S3JYjwKxQx7u1ydooKhvBQnBCZ2i3S+k62gfYyKB+nBv8xvjs0Eg5D1YJ5E8hciy lf5OFGWWtX2iPDjZwQwT13kiJe0o3JRGxJJ6XqTEG+1EYOp7cky/FEv4PD030b9m I2wROZ/Am+onB9YJX8c0Vv1CG+AryuJNXnvwQzTXEjj4U7bEYUyJwVZaCRyAdWQ3 uYXIZN9VwjVX6BFvy9ZAJbEsUVJvOM1/aQaDqcrLz+VlzRT7bRkKHi2G3vakrm1I r5OpgyLo84132awCncbSykKDH5o8WaxLaJBjGmuBfasMz9wPzAg= =uL1o -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging virtio, pci, pc: fixes, features Bugfixes all over the place. HMAT support. New flags for vhost-user-blk utility. Auto-tuning of seg max for virtio storage. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> # gpg: Signature made Mon 06 Jan 2020 17:05:05 GMT # gpg: using RSA key 5D09FD0871C8F85B94CA8A0D281F0DB8D28D5469 # gpg: issuer "mst@redhat.com" # gpg: Good signature from "Michael S. Tsirkin <mst@kernel.org>" [full] # gpg: aka "Michael S. Tsirkin <mst@redhat.com>" [full] # Primary key fingerprint: 0270 606B 6F3C DF3D 0B17 0970 C350 3912 AFBE 8E67 # Subkey fingerprint: 5D09 FD08 71C8 F85B 94CA 8A0D 281F 0DB8 D28D 5469 * remotes/mst/tags/for_upstream: (32 commits) intel_iommu: add present bit check for pasid table entries intel_iommu: a fix to vtd_find_as_from_bus_num() virtio-net: delete also control queue when TX/RX deleted virtio: reset region cache when on queue deletion virtio-mmio: update queue size on guest write tests: add virtio-scsi and virtio-blk seg_max_adjust test virtio: make seg_max virtqueue size dependent hw: fix using 4.2 compat in 5.0 machine types for i440fx/q35 vhost-user-scsi: reset the device if supported vhost-user: add VHOST_USER_RESET_DEVICE to reset devices hw/pci/pci_host: Let pci_data_[read/write] use unsigned 'size' argument hw/pci/pci_host: Remove redundant PCI_DPRINTF() virtio-mmio: Clear v2 transport state on soft reset ACPI: add expected files for HMAT tests (acpihmat) tests/bios-tables-test: add test cases for ACPI HMAT tests/numa: Add case for QMP build HMAT hmat acpi: Build Memory Side Cache Information Structure(s) hmat acpi: Build System Locality Latency and Bandwidth Information Structure(s) hmat acpi: Build Memory Proximity Domain Attributes Structure(s) numa: Extend CLI to provide memory side cache information ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
973d306dd6
45 changed files with 1796 additions and 133 deletions
|
@ -426,10 +426,14 @@
|
|||
#
|
||||
# @cpu: property based CPU(s) to node mapping (Since: 2.10)
|
||||
#
|
||||
# @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' ] }
|
||||
'data': [ 'node', 'dist', 'cpu', 'hmat-lb', 'hmat-cache' ] }
|
||||
|
||||
##
|
||||
# @NumaOptions:
|
||||
|
@ -444,7 +448,9 @@
|
|||
'data': {
|
||||
'node': 'NumaNodeOptions',
|
||||
'dist': 'NumaDistOptions',
|
||||
'cpu': 'NumaCpuOptions' }}
|
||||
'cpu': 'NumaCpuOptions',
|
||||
'hmat-lb': 'NumaHmatLBOptions',
|
||||
'hmat-cache': 'NumaHmatCacheOptions' }}
|
||||
|
||||
##
|
||||
# @NumaNodeOptions:
|
||||
|
@ -463,6 +469,13 @@
|
|||
# @memdev: memory backend object. If specified for one node,
|
||||
# it must be specified for all nodes.
|
||||
#
|
||||
# @initiator: defined in ACPI 6.3 Chapter 5.2.27.3 Table 5-145,
|
||||
# points to the nodeid which has the memory controller
|
||||
# responsible for this NUMA node. This field provides
|
||||
# additional information as to the initiator node that
|
||||
# is closest (as in directly attached) to this node, and
|
||||
# therefore has the best performance (since 5.0)
|
||||
#
|
||||
# Since: 2.1
|
||||
##
|
||||
{ 'struct': 'NumaNodeOptions',
|
||||
|
@ -470,7 +483,8 @@
|
|||
'*nodeid': 'uint16',
|
||||
'*cpus': ['uint16'],
|
||||
'*mem': 'size',
|
||||
'*memdev': 'str' }}
|
||||
'*memdev': 'str',
|
||||
'*initiator': 'uint16' }}
|
||||
|
||||
##
|
||||
# @NumaDistOptions:
|
||||
|
@ -549,6 +563,166 @@
|
|||
'base': 'CpuInstanceProperties',
|
||||
'data' : {} }
|
||||
|
||||
##
|
||||
# @HmatLBMemoryHierarchy:
|
||||
#
|
||||
# The memory hierarchy in the System Locality Latency and Bandwidth
|
||||
# Information Structure of HMAT (Heterogeneous Memory Attribute Table)
|
||||
#
|
||||
# For more information about @HmatLBMemoryHierarchy, see chapter
|
||||
# 5.2.27.4: Table 5-146: Field "Flags" of ACPI 6.3 spec.
|
||||
#
|
||||
# @memory: the structure represents the memory performance
|
||||
#
|
||||
# @first-level: first level of memory side cache
|
||||
#
|
||||
# @second-level: second level of memory side cache
|
||||
#
|
||||
# @third-level: third level of memory side cache
|
||||
#
|
||||
# Since: 5.0
|
||||
##
|
||||
{ 'enum': 'HmatLBMemoryHierarchy',
|
||||
'data': [ 'memory', 'first-level', 'second-level', 'third-level' ] }
|
||||
|
||||
##
|
||||
# @HmatLBDataType:
|
||||
#
|
||||
# Data type in the System Locality Latency and Bandwidth
|
||||
# Information Structure of HMAT (Heterogeneous Memory Attribute Table)
|
||||
#
|
||||
# For more information about @HmatLBDataType, see chapter
|
||||
# 5.2.27.4: Table 5-146: Field "Data Type" of ACPI 6.3 spec.
|
||||
#
|
||||
# @access-latency: access latency (nanoseconds)
|
||||
#
|
||||
# @read-latency: read latency (nanoseconds)
|
||||
#
|
||||
# @write-latency: write latency (nanoseconds)
|
||||
#
|
||||
# @access-bandwidth: access bandwidth (Bytes per second)
|
||||
#
|
||||
# @read-bandwidth: read bandwidth (Bytes per second)
|
||||
#
|
||||
# @write-bandwidth: write bandwidth (Bytes per second)
|
||||
#
|
||||
# Since: 5.0
|
||||
##
|
||||
{ 'enum': 'HmatLBDataType',
|
||||
'data': [ 'access-latency', 'read-latency', 'write-latency',
|
||||
'access-bandwidth', 'read-bandwidth', 'write-bandwidth' ] }
|
||||
|
||||
##
|
||||
# @NumaHmatLBOptions:
|
||||
#
|
||||
# Set the system locality latency and bandwidth information
|
||||
# between Initiator and Target proximity Domains.
|
||||
#
|
||||
# For more information about @NumaHmatLBOptions, see chapter
|
||||
# 5.2.27.4: Table 5-146 of ACPI 6.3 spec.
|
||||
#
|
||||
# @initiator: the Initiator Proximity Domain.
|
||||
#
|
||||
# @target: the Target Proximity Domain.
|
||||
#
|
||||
# @hierarchy: the Memory Hierarchy. Indicates the performance
|
||||
# of memory or side cache.
|
||||
#
|
||||
# @data-type: presents the type of data, access/read/write
|
||||
# latency or hit latency.
|
||||
#
|
||||
# @latency: the value of latency from @initiator to @target
|
||||
# proximity domain, the latency unit is "ns(nanosecond)".
|
||||
#
|
||||
# @bandwidth: the value of bandwidth between @initiator and @target
|
||||
# proximity domain, the bandwidth unit is
|
||||
# "Bytes per second".
|
||||
#
|
||||
# Since: 5.0
|
||||
##
|
||||
{ 'struct': 'NumaHmatLBOptions',
|
||||
'data': {
|
||||
'initiator': 'uint16',
|
||||
'target': 'uint16',
|
||||
'hierarchy': 'HmatLBMemoryHierarchy',
|
||||
'data-type': 'HmatLBDataType',
|
||||
'*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