|
@@ -176,7 +176,8 @@ DEF("numa", HAS_ARG, QEMU_OPTION_numa,
|
|
"-numa node[,memdev=id][,cpus=firstcpu[-lastcpu]][,nodeid=node][,initiator=node]\n"
|
|
"-numa node[,memdev=id][,cpus=firstcpu[-lastcpu]][,nodeid=node][,initiator=node]\n"
|
|
"-numa dist,src=source,dst=destination,val=distance\n"
|
|
"-numa dist,src=source,dst=destination,val=distance\n"
|
|
"-numa cpu,node-id=node[,socket-id=x][,core-id=y][,thread-id=z]\n"
|
|
"-numa cpu,node-id=node[,socket-id=x][,core-id=y][,thread-id=z]\n"
|
|
- "-numa hmat-lb,initiator=node,target=node,hierarchy=memory|first-level|second-level|third-level,data-type=access-latency|read-latency|write-latency[,latency=lat][,bandwidth=bw]\n",
|
|
|
|
|
|
+ "-numa hmat-lb,initiator=node,target=node,hierarchy=memory|first-level|second-level|third-level,data-type=access-latency|read-latency|write-latency[,latency=lat][,bandwidth=bw]\n"
|
|
|
|
+ "-numa hmat-cache,node-id=node,size=size,level=level[,associativity=none|direct|complex][,policy=none|write-back|write-through][,line=size]\n",
|
|
QEMU_ARCH_ALL)
|
|
QEMU_ARCH_ALL)
|
|
STEXI
|
|
STEXI
|
|
@item -numa node[,mem=@var{size}][,cpus=@var{firstcpu}[-@var{lastcpu}]][,nodeid=@var{node}][,initiator=@var{initiator}]
|
|
@item -numa node[,mem=@var{size}][,cpus=@var{firstcpu}[-@var{lastcpu}]][,nodeid=@var{node}][,initiator=@var{initiator}]
|
|
@@ -184,6 +185,7 @@ STEXI
|
|
@itemx -numa dist,src=@var{source},dst=@var{destination},val=@var{distance}
|
|
@itemx -numa dist,src=@var{source},dst=@var{destination},val=@var{distance}
|
|
@itemx -numa cpu,node-id=@var{node}[,socket-id=@var{x}][,core-id=@var{y}][,thread-id=@var{z}]
|
|
@itemx -numa cpu,node-id=@var{node}[,socket-id=@var{x}][,core-id=@var{y}][,thread-id=@var{z}]
|
|
@itemx -numa hmat-lb,initiator=@var{node},target=@var{node},hierarchy=@var{hierarchy},data-type=@var{tpye}[,latency=@var{lat}][,bandwidth=@var{bw}]
|
|
@itemx -numa hmat-lb,initiator=@var{node},target=@var{node},hierarchy=@var{hierarchy},data-type=@var{tpye}[,latency=@var{lat}][,bandwidth=@var{bw}]
|
|
|
|
+@itemx -numa hmat-cache,node-id=@var{node},size=@var{size},level=@var{level}[,associativity=@var{str}][,policy=@var{str}][,line=@var{size}]
|
|
@findex -numa
|
|
@findex -numa
|
|
Define a NUMA node and assign RAM and VCPUs to it.
|
|
Define a NUMA node and assign RAM and VCPUs to it.
|
|
Set the NUMA distance from a source node to a destination node.
|
|
Set the NUMA distance from a source node to a destination node.
|
|
@@ -287,11 +289,20 @@ NUM byte per second (or MB/s, GB/s or TB/s depending on used suffix).
|
|
Note that if latency or bandwidth value is 0, means the corresponding latency or
|
|
Note that if latency or bandwidth value is 0, means the corresponding latency or
|
|
bandwidth information is not provided.
|
|
bandwidth information is not provided.
|
|
|
|
|
|
|
|
+In @samp{hmat-cache} option, @var{node-id} is the NUMA-id of the memory belongs.
|
|
|
|
+@var{size} is the size of memory side cache in bytes. @var{level} is the cache
|
|
|
|
+level described in this structure, note that the cache level 0 should not be used
|
|
|
|
+with @samp{hmat-cache} option. @var{associativity} is the cache associativity,
|
|
|
|
+the possible value is 'none/direct(direct-mapped)/complex(complex cache indexing)'.
|
|
|
|
+@var{policy} is the write policy. @var{line} is the cache Line size in bytes.
|
|
|
|
+
|
|
For example, the following options describe 2 NUMA nodes. Node 0 has 2 cpus and
|
|
For example, the following options describe 2 NUMA nodes. Node 0 has 2 cpus and
|
|
a ram, node 1 has only a ram. The processors in node 0 access memory in node
|
|
a ram, node 1 has only a ram. The processors in node 0 access memory in node
|
|
0 with access-latency 5 nanoseconds, access-bandwidth is 200 MB/s;
|
|
0 with access-latency 5 nanoseconds, access-bandwidth is 200 MB/s;
|
|
The processors in NUMA node 0 access memory in NUMA node 1 with access-latency 10
|
|
The processors in NUMA node 0 access memory in NUMA node 1 with access-latency 10
|
|
nanoseconds, access-bandwidth is 100 MB/s.
|
|
nanoseconds, access-bandwidth is 100 MB/s.
|
|
|
|
+And for memory side cache information, NUMA node 0 and 1 both have 1 level memory
|
|
|
|
+cache, size is 10KB, policy is write-back, the cache Line size is 8 bytes:
|
|
@example
|
|
@example
|
|
-machine hmat=on \
|
|
-machine hmat=on \
|
|
-m 2G \
|
|
-m 2G \
|
|
@@ -305,7 +316,9 @@ nanoseconds, access-bandwidth is 100 MB/s.
|
|
-numa hmat-lb,initiator=0,target=0,hierarchy=memory,data-type=access-latency,latency=5 \
|
|
-numa hmat-lb,initiator=0,target=0,hierarchy=memory,data-type=access-latency,latency=5 \
|
|
-numa hmat-lb,initiator=0,target=0,hierarchy=memory,data-type=access-bandwidth,bandwidth=200M \
|
|
-numa hmat-lb,initiator=0,target=0,hierarchy=memory,data-type=access-bandwidth,bandwidth=200M \
|
|
-numa hmat-lb,initiator=0,target=1,hierarchy=memory,data-type=access-latency,latency=10 \
|
|
-numa hmat-lb,initiator=0,target=1,hierarchy=memory,data-type=access-latency,latency=10 \
|
|
--numa hmat-lb,initiator=0,target=1,hierarchy=memory,data-type=access-bandwidth,bandwidth=100M
|
|
|
|
|
|
+-numa hmat-lb,initiator=0,target=1,hierarchy=memory,data-type=access-bandwidth,bandwidth=100M \
|
|
|
|
+-numa hmat-cache,node-id=0,size=10K,level=1,associativity=direct,policy=write-back,line=8 \
|
|
|
|
+-numa hmat-cache,node-id=1,size=10K,level=1,associativity=direct,policy=write-back,line=8
|
|
@end example
|
|
@end example
|
|
|
|
|
|
ETEXI
|
|
ETEXI
|