~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/translations/zh_TW/arch/arm64/amu.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 .. SPDX-License-Identifier: GPL-2.0
  2 
  3 .. include:: ../../disclaimer-zh_TW.rst
  4 
  5 :Original: :ref:`Documentation/arch/arm64/amu.rst <amu_index>`
  6 
  7 Translator: Bailu Lin <bailu.lin@vivo.com>
  8             Hu Haowen <2023002089@link.tyut.edu.cn>
  9 
 10 ==================================
 11 AArch64 Linux 中擴展的活動監控單元
 12 ==================================
 13 
 14 作者: Ionela Voinescu <ionela.voinescu@arm.com>
 15 
 16 日期: 2019-09-10
 17 
 18 本文檔簡要描述了 AArch64 Linux 支持的活動監控單元的規範。
 19 
 20 
 21 架構總述
 22 --------
 23 
 24 活動監控是 ARMv8.4 CPU 架構引入的一個可選擴展特性。
 25 
 26 活動監控單元(在每個 CPU 中實現)爲系統管理提供了性能計數器。既可以通
 27 過系統寄存器的方式訪問計數器,同時也支持外部內存映射的方式訪問計數器。
 28 
 29 AMUv1 架構實現了一個由4個固定的64位事件計數器組成的計數器組。
 30 
 31   - CPU 週期計數器:同 CPU 的頻率增長
 32   - 常量計數器:同固定的系統時鐘頻率增長
 33   - 淘汰指令計數器: 同每次架構指令執行增長
 34   - 內存停頓週期計數器:計算由在時鐘域內的最後一級緩存中未命中而引起
 35     的指令調度停頓週期數
 36 
 37 當處於 WFI 或者 WFE 狀態時,計數器不會增長。
 38 
 39 AMU 架構提供了一個高達16位的事件計數器空間,未來新的 AMU 版本中可能
 40 用它來實現新增的事件計數器。
 41 
 42 另外,AMUv1 實現了一個多達16個64位輔助事件計數器的計數器組。
 43 
 44 冷復位時所有的計數器會清零。
 45 
 46 
 47 基本支持
 48 --------
 49 
 50 內核可以安全地運行在支持 AMU 和不支持 AMU 的 CPU 組合中。
 51 因此,當配置 CONFIG_ARM64_AMU_EXTN 後我們無條件使能後續
 52 (secondary or hotplugged) CPU 檢測和使用這個特性。
 53 
 54 當在 CPU 上檢測到該特性時,我們會標記爲特性可用但是不能保證計數器的功能,
 55 僅表明有擴展屬性。
 56 
 57 固件(代碼運行在高異常級別,例如 arm-tf )需支持以下功能:
 58 
 59  - 提供低異常級別(EL2 和 EL1)訪問 AMU 寄存器的能力。
 60  - 使能計數器。如果未使能,它的值應爲 0。
 61  - 在從電源關閉狀態啓動 CPU 前或後保存或者恢復計數器。
 62 
 63 當使用使能了該特性的內核啓動但固件損壞時,訪問計數器寄存器可能會遭遇
 64 panic 或者死鎖。即使未發現這些症狀,計數器寄存器返回的數據結果並不一
 65 定能反映真實情況。通常,計數器會返回 0,表明他們未被使能。
 66 
 67 如果固件沒有提供適當的支持最好關閉 CONFIG_ARM64_AMU_EXTN。
 68 值得注意的是,出於安全原因,不要繞過 AMUSERRENR_EL0 設置而捕獲從
 69 EL0(用戶空間) 訪問 EL1(內核空間)。 因此,固件應該確保訪問 AMU寄存器
 70 不會困在 EL2或EL3。
 71 
 72 AMUv1 的固定計數器可以通過如下系統寄存器訪問:
 73 
 74  - SYS_AMEVCNTR0_CORE_EL0
 75  - SYS_AMEVCNTR0_CONST_EL0
 76  - SYS_AMEVCNTR0_INST_RET_EL0
 77  - SYS_AMEVCNTR0_MEM_STALL_EL0
 78 
 79 特定輔助計數器可以通過 SYS_AMEVCNTR1_EL0(n) 訪問,其中n介於0到15。
 80 
 81 詳細信息定義在目錄:arch/arm64/include/asm/sysreg.h。
 82 
 83 
 84 用戶空間訪問
 85 ------------
 86 
 87 由於以下原因,當前禁止從用戶空間訪問 AMU 的寄存器:
 88 
 89   - 安全因數:可能會暴露處於安全模式執行的代碼信息。
 90   - 意願:AMU 是用於系統管理的。
 91 
 92 同樣,該功能對用戶空間不可見。
 93 
 94 
 95 虛擬化
 96 ------
 97 
 98 由於以下原因,當前禁止從 KVM 客戶端的用戶空間(EL0)和內核空間(EL1)
 99 訪問 AMU 的寄存器:
100 
101   - 安全因數:可能會暴露給其他客戶端或主機端執行的代碼信息。
102 
103 任何試圖訪問 AMU 寄存器的行爲都會觸發一個註冊在客戶端的未定義異常。
104 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php