0001 .. SPDX-License-Identifier: GPL-2.0
0002
0003 .. include:: ../disclaimer-zh_TW.rst
0004
0005 :Original: :ref:`Documentation/arm64/perf.rst <perf_index>`
0006
0007 Translator: Bailu Lin <bailu.lin@vivo.com>
0008 Hu Haowen <src.res@email.cn>
0009
0010 =============
0011 Perf 事件屬性
0012 =============
0013
0014 :作者: Andrew Murray <andrew.murray@arm.com>
0015 :日期: 2019-03-06
0016
0017 exclude_user
0018 ------------
0019
0020 該屬性排除用戶空間。
0021
0022 用戶空間始終運行在 EL0,因此該屬性將排除 EL0。
0023
0024
0025 exclude_kernel
0026 --------------
0027
0028 該屬性排除內核空間。
0029
0030 打開 VHE 時內核運行在 EL2,不打開 VHE 時內核運行在 EL1。客戶機
0031 內核總是運行在 EL1。
0032
0033 對於宿主機,該屬性排除 EL1 和 VHE 上的 EL2。
0034
0035 對於客戶機,該屬性排除 EL1。請注意客戶機從來不會運行在 EL2。
0036
0037
0038 exclude_hv
0039 ----------
0040
0041 該屬性排除虛擬機監控器。
0042
0043 對於 VHE 宿主機該屬性將被忽略,此時我們認爲宿主機內核是虛擬機監
0044 控器。
0045
0046 對於 non-VHE 宿主機該屬性將排除 EL2,因爲虛擬機監控器運行在 EL2
0047 的任何代碼主要用於客戶機和宿主機的切換。
0048
0049 對於客戶機該屬性無效。請注意客戶機從來不會運行在 EL2。
0050
0051
0052 exclude_host / exclude_guest
0053 ----------------------------
0054
0055 這些屬性分別排除了 KVM 宿主機和客戶機。
0056
0057 KVM 宿主機可能運行在 EL0(用戶空間),EL1(non-VHE 內核)和
0058 EL2(VHE 內核 或 non-VHE 虛擬機監控器)。
0059
0060 KVM 客戶機可能運行在 EL0(用戶空間)和 EL1(內核)。
0061
0062 由於宿主機和客戶機之間重疊的異常級別,我們不能僅僅依靠 PMU 的硬體異
0063 常過濾機制-因此我們必須啓用/禁用對於客戶機進入和退出的計數。而這在
0064 VHE 和 non-VHE 系統上表現不同。
0065
0066 對於 non-VHE 系統的 exclude_host 屬性排除 EL2 - 在進入和退出客戶
0067 機時,我們會根據 exclude_host 和 exclude_guest 屬性在適當的情況下
0068 禁用/啓用該事件。
0069
0070 對於 VHE 系統的 exclude_guest 屬性排除 EL1,而對其中的 exclude_host
0071 屬性同時排除 EL0,EL2。在進入和退出客戶機時,我們會適當地根據
0072 exclude_host 和 exclude_guest 屬性包括/排除 EL0。
0073
0074 以上聲明也適用於在 not-VHE 客戶機使用這些屬性時,但是請注意客戶機從
0075 來不會運行在 EL2。
0076
0077
0078 準確性
0079 ------
0080
0081 在 non-VHE 宿主機上,我們在 EL2 進入/退出宿主機/客戶機的切換時啓用/
0082 關閉計數器 -但是在啓用/禁用計數器和進入/退出客戶機之間存在一段延時。
0083 對於 exclude_host, 我們可以通過過濾 EL2 消除在客戶機進入/退出邊界
0084 上用於計數客戶機事件的宿主機事件計數器。但是當使用 !exclude_hv 時,
0085 在客戶機進入/退出有一個小的停電窗口無法捕獲到宿主機的事件。
0086
0087 在 VHE 系統沒有停電窗口。
0088