跳过导航链接
退出打印视图
| Oracle VM Server for SPARC 2.0 管理指南

搜索范围:

- 本文档
- 整个文档库

### 通过映射 CPU 和内存地址来确定出错位置

本节介绍如何能够将 Oracle Solaris 故障管理体系结构 (Fault Management Architecture, FMA) 报告的信息与标记为出现故障的逻辑域资源相关联。

FMA 以物理 CPU 编号形式报告 CPU 错误，以物理内存地址形式报告内存错误。

如果您想要确定发生错误的逻辑域，以及该域中相应的虚拟 CPU 编号或实际内存地址，则必须执行映射。

#### CPU 映射

可以使用以下过程确定域以及该域中的虚拟 CPU 编号（与给定物理 CPU 编号对应）。

# 确定 CPU 编号

1. 生成所有域的可解析长列表。

       primary# ldm list -l -p

2. 在列表的 `VCPU` 部分中查找 `pid` 字段等于物理 CPU 编号的条目。
   - 如果找到了这样的条目，则 CPU 所在的域就是其下方列出此条目的域，该域中的虚拟 CPU 编号由此条目的 `vid` 字段指定。
   - 如果未找到这样的条目，则 CPU 不在任何域中。

#### 内存映射

可以按以下方式确定域以及该域中的实际内存地址（与给定物理内存地址 (PA) 对应）。

# 确定实际内存地址

1. 生成所有域的可解析长列表。

       primary# ldm list -l -p

2. 在列表的 `MEMORY` 部分查找满足以下条件的行：PA 落在 pa 到 (pa + size - 1) 之间（包括 pa），即，pa <= PA < (pa + size - 1)。

   此处 pa 和 size 指的是该行中对应字段的值。

   - 如果找到了这样的条目，则 PA 所在的域就是其下方列出此条目的域，该域中的相应实际地址由 ra + (PA - pa) 指定。
   - 如果未找到这样的条目，则 PA 不在任何域中。

#### CPU 和内存映射示例

假设您具有如示例 12-1 中所示的逻辑域配置，并想要确定与物理 CPU 编号 `5` 对应的域和虚拟 CPU，以及与物理地址 `0x7e816000` 对应的域和实际地址。

在列表中浏览 `VCPU` 条目以查找 `pid` 字段等于 `5` 的条目，可以发现以下条目位于逻辑域 `ldg1` 之下。

    |vid=1|pid=5|util=29|strand=100

因此，物理 CPU 编号 `5` 位于域 `ldg1` 中，在该域中对应的虚拟 CPU 编号为 `1`。

在列表中浏览 `MEMORY` 条目，可以发现以下条目位于域 `ldg2` 之下。

    ra=0x8000000|pa=0x78000000|size=1073741824

其中 0x78000000 <= 0x7e816000 <= (0x78000000 + 1073741824 - 1)；即，pa <= PA <= (pa + size - 1)。因此，PA 位于域 `ldg2` 中，相应的实际地址为 0x8000000 + (0x7e816000 - 0x78000000) = 0xe816000。

示例 12-1 Logical Domains 配置的可解析长列表

    primary# ldm list -l -p
    VERSION 1.0
    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
    ...

版权所有 © 2007, 2010, Oracle 和/或其附属公司。 保留所有权利。 法律声明 |