[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 07/11] hmat acpi: Build Memory Side Cache Inf
From: |
Tao Xu |
Subject: |
Re: [Qemu-devel] [PATCH v4 07/11] hmat acpi: Build Memory Side Cache Information Structure(s) in ACPI HMAT |
Date: |
Mon, 10 Jun 2019 21:39:12 +0800 |
User-agent: |
Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 |
On 6/7/2019 12:45 AM, Igor Mammedov wrote:
On Thu, 6 Jun 2019 11:00:33 +0800
Tao Xu <address@hidden> wrote:
...
But the kernel HMAT can read othe Memory Side Cache Information except
SMBIOS entries and the host HMAT tables also haven’t SMBIOS Handles it
also shows Number of SMBIOS handles (n) as 0. So I am wondering if it is
better to setting "SMBIOS handles (n)" as 0, remove TODO and comment the
reason why set it 0?
My understanding is that SMBIOS handles are used to associate side cache
descriptions with RAM pointed by SMBIOS handles, so that OS would be
able to figure out what RAM modules are cached by what cache.
Hence I suspect that side cache table is useless in the best case without
valid references to SMBIOS handles.
(I might be totally mistaken but the matter requires clarification before
we commit to it)
I am sorry for not providing a detailed description for Memory Side
Cache use case. I will add more detailed description in next version of
patch.
As the commit message and /Documentation/admin-guide/mm/numaperf.rst of
Kernel HMAT(listed blow), Memory Side Cache Structure is used to provide
the cache information about System memory for the software to use. Then
the software can maximize the performance because it can choose the best
node to use.
Memory Side Cache Information Structure and System Locality Latency and
Bandwidth Information Structure can both provide more information than
numa distance for software to see. So back to the SMBIOS, in spec,
SMBIOS handles point to the memory side cache physical devices, but they
are also information and not contribute to the performance of the
described memory. The field "Proximity Domain for the Memory" can show
the described memory.
I am wondering if this explanation is clear? Thank you.
"System memory may be constructed in a hierarchy of elements with
various performance characteristics in order to provide large address
space of slower performing memory cached by a smaller higher performing
memory."
"An application does not need to know about caching attributes in order
to use the system. Software may optionally query the memory cache
attributes in order to maximize the performance out of such a setup.
If the system provides a way for the kernel to discover this
information, for example with ACPI HMAT (Heterogeneous Memory Attribute
Table), the kernel will append these attributes to the NUMA node memory
target."
"Each cache level's directory provides its attributes. For example, the
following shows a single cache level and the attributes available for
software to query::
# tree sys/devices/system/node/node0/memory_side_cache/
/sys/devices/system/node/node0/memory_side_cache/
|-- index1
| |-- indexing
| |-- line_size
| |-- size
| `-- write_policy
"