Example of CPU and Memory Mapping
Example 18-4 Determining the Configuration of Domains
The following command produces a long parseable list of logical domains configurations.
primary# ldm list -l -p
VERSION 1.6
DOMAIN|name=primary|state=active|flags=normal,control,vio-service|
cons=SP|ncpu=4|mem=1073741824|util=0.6|uptime=64801|
softstate=Solaris running
VCPU
|vid=0|pid=0|util=0.9|strand=100
|vid=1|pid=1|util=0.5|strand=100
|vid=2|pid=2|util=0.6|strand=100
|vid=3|pid=3|util=0.6|strand=100
MEMORY
|ra=0x8000000|pa=0x8000000|size=1073741824
IO
|dev=pci@780|alias=bus_a
|dev=pci@7c0|alias=bus_b
...
DOMAIN|name=ldg1|state=active|flags=normal|cons=5000|
ncpu=2|mem=805306368|util=29|uptime=903|
softstate=Solaris running
VCPU
|vid=0|pid=4|util=29|strand=100
|vid=1|pid=5|util=29|strand=100
MEMORY
|ra=0x8000000|pa=0x48000000|size=805306368
...
DOMAIN|name=ldg2|state=active|flags=normal|cons=5001|
ncpu=3|mem=1073741824|util=35|uptime=775|
softstate=Solaris running
VCPU
|vid=0|pid=6|util=35|strand=100
|vid=1|pid=7|util=34|strand=100
|vid=2|pid=8|util=35|strand=100
MEMORY
|ra=0x8000000|pa=0x78000000|size=1073741824
...
Example 18-5 Determining the Virtual CPU That Corresponds to a Physical CPU Number
The logical domain configuration is shown in Example 18-4. This example describes how to determine the domain and the virtual CPU corresponding to physical CPU number 5
, and the domain and the real address corresponding to physical address 0x7e816000
.
Looking through the VCPU
entries in the list for the one with the pid
field equal to 5
, you can find the following entry in the stanza for logical domain ldg1
.
|vid=1|pid=5|util=29|strand=100
Hence, the physical CPU number 5
is in domain ldg1
and within the domain it has virtual CPU number 1
.
Looking through the MEMORY
entries in the list, you can find the following entry in the stanza for domain ldg2
.
ra=0x8000000|pa=0x78000000|size=1073741824
Where 0x78000000 <= 0x7e816000 <= (0x78000000 + 1073741824 - 1); that is, pa <= PA <= (pa + size - 1). Hence, the PA is in domain ldg2
and the corresponding real address is 0x8000000 + (0x7e816000 - 0x78000000) = 0xe816000.