1e4624435SJonathan Corbet.. SPDX-License-Identifier: GPL-2.0 2e4624435SJonathan Corbet 3e4624435SJonathan Corbet.. include:: ../../disclaimer-zh_TW.rst 4e4624435SJonathan Corbet 5e4624435SJonathan Corbet:Original: :ref:`Documentation/arch/arm64/perf.rst <perf_index>` 6e4624435SJonathan Corbet 7e4624435SJonathan CorbetTranslator: Bailu Lin <bailu.lin@vivo.com> 8*44a54e25SHu Haowen Hu Haowen <src.res.211@gmail.com> 9e4624435SJonathan Corbet 10e4624435SJonathan Corbet============= 11e4624435SJonathan CorbetPerf 事件屬性 12e4624435SJonathan Corbet============= 13e4624435SJonathan Corbet 14e4624435SJonathan Corbet:作者: Andrew Murray <andrew.murray@arm.com> 15e4624435SJonathan Corbet:日期: 2019-03-06 16e4624435SJonathan Corbet 17e4624435SJonathan Corbetexclude_user 18e4624435SJonathan Corbet------------ 19e4624435SJonathan Corbet 20e4624435SJonathan Corbet該屬性排除用戶空間。 21e4624435SJonathan Corbet 22e4624435SJonathan Corbet用戶空間始終運行在 EL0,因此該屬性將排除 EL0。 23e4624435SJonathan Corbet 24e4624435SJonathan Corbet 25e4624435SJonathan Corbetexclude_kernel 26e4624435SJonathan Corbet-------------- 27e4624435SJonathan Corbet 28e4624435SJonathan Corbet該屬性排除內核空間。 29e4624435SJonathan Corbet 30e4624435SJonathan Corbet打開 VHE 時內核運行在 EL2,不打開 VHE 時內核運行在 EL1。客戶機 31e4624435SJonathan Corbet內核總是運行在 EL1。 32e4624435SJonathan Corbet 33e4624435SJonathan Corbet對於宿主機,該屬性排除 EL1 和 VHE 上的 EL2。 34e4624435SJonathan Corbet 35e4624435SJonathan Corbet對於客戶機,該屬性排除 EL1。請注意客戶機從來不會運行在 EL2。 36e4624435SJonathan Corbet 37e4624435SJonathan Corbet 38e4624435SJonathan Corbetexclude_hv 39e4624435SJonathan Corbet---------- 40e4624435SJonathan Corbet 41e4624435SJonathan Corbet該屬性排除虛擬機監控器。 42e4624435SJonathan Corbet 43e4624435SJonathan Corbet對於 VHE 宿主機該屬性將被忽略,此時我們認爲宿主機內核是虛擬機監 44e4624435SJonathan Corbet控器。 45e4624435SJonathan Corbet 46e4624435SJonathan Corbet對於 non-VHE 宿主機該屬性將排除 EL2,因爲虛擬機監控器運行在 EL2 47e4624435SJonathan Corbet的任何代碼主要用於客戶機和宿主機的切換。 48e4624435SJonathan Corbet 49e4624435SJonathan Corbet對於客戶機該屬性無效。請注意客戶機從來不會運行在 EL2。 50e4624435SJonathan Corbet 51e4624435SJonathan Corbet 52e4624435SJonathan Corbetexclude_host / exclude_guest 53e4624435SJonathan Corbet---------------------------- 54e4624435SJonathan Corbet 55e4624435SJonathan Corbet這些屬性分別排除了 KVM 宿主機和客戶機。 56e4624435SJonathan Corbet 57e4624435SJonathan CorbetKVM 宿主機可能運行在 EL0(用戶空間),EL1(non-VHE 內核)和 58e4624435SJonathan CorbetEL2(VHE 內核 或 non-VHE 虛擬機監控器)。 59e4624435SJonathan Corbet 60e4624435SJonathan CorbetKVM 客戶機可能運行在 EL0(用戶空間)和 EL1(內核)。 61e4624435SJonathan Corbet 62e4624435SJonathan Corbet由於宿主機和客戶機之間重疊的異常級別,我們不能僅僅依靠 PMU 的硬體異 63e4624435SJonathan Corbet常過濾機制-因此我們必須啓用/禁用對於客戶機進入和退出的計數。而這在 64e4624435SJonathan CorbetVHE 和 non-VHE 系統上表現不同。 65e4624435SJonathan Corbet 66e4624435SJonathan Corbet對於 non-VHE 系統的 exclude_host 屬性排除 EL2 - 在進入和退出客戶 67e4624435SJonathan Corbet機時,我們會根據 exclude_host 和 exclude_guest 屬性在適當的情況下 68e4624435SJonathan Corbet禁用/啓用該事件。 69e4624435SJonathan Corbet 70e4624435SJonathan Corbet對於 VHE 系統的 exclude_guest 屬性排除 EL1,而對其中的 exclude_host 71e4624435SJonathan Corbet屬性同時排除 EL0,EL2。在進入和退出客戶機時,我們會適當地根據 72e4624435SJonathan Corbetexclude_host 和 exclude_guest 屬性包括/排除 EL0。 73e4624435SJonathan Corbet 74e4624435SJonathan Corbet以上聲明也適用於在 not-VHE 客戶機使用這些屬性時,但是請注意客戶機從 75e4624435SJonathan Corbet來不會運行在 EL2。 76e4624435SJonathan Corbet 77e4624435SJonathan Corbet 78e4624435SJonathan Corbet準確性 79e4624435SJonathan Corbet------ 80e4624435SJonathan Corbet 81e4624435SJonathan Corbet在 non-VHE 宿主機上,我們在 EL2 進入/退出宿主機/客戶機的切換時啓用/ 82e4624435SJonathan Corbet關閉計數器 -但是在啓用/禁用計數器和進入/退出客戶機之間存在一段延時。 83e4624435SJonathan Corbet對於 exclude_host, 我們可以通過過濾 EL2 消除在客戶機進入/退出邊界 84e4624435SJonathan Corbet上用於計數客戶機事件的宿主機事件計數器。但是當使用 !exclude_hv 時, 85e4624435SJonathan Corbet在客戶機進入/退出有一個小的停電窗口無法捕獲到宿主機的事件。 86e4624435SJonathan Corbet 87e4624435SJonathan Corbet在 VHE 系統沒有停電窗口。 88e4624435SJonathan Corbet 89