forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kern…
…el/git/arm64/linux Pull arm64 updates from Will Deacon: "Highlights include a major rework of our kPTI page-table rewriting code (which makes it both more maintainable and considerably faster in the cases where it is required) as well as significant changes to our early boot code to reduce the need for data cache maintenance and greatly simplify the KASLR relocation dance. Summary: - Remove unused generic cpuidle support (replaced by PSCI version) - Fix documentation describing the kernel virtual address space - Handling of some new CPU errata in Arm implementations - Rework of our exception table code in preparation for handling machine checks (i.e. RAS errors) more gracefully - Switch over to the generic implementation of ioremap() - Fix lockdep tracking in NMI context - Instrument our memory barrier macros for KCSAN - Rework of the kPTI G->nG page-table repainting so that the MMU remains enabled and the boot time is no longer slowed to a crawl for systems which require the late remapping - Enable support for direct swapping of 2MiB transparent huge-pages on systems without MTE - Fix handling of MTE tags with allocating new pages with HW KASAN - Expose the SMIDR register to userspace via sysfs - Continued rework of the stack unwinder, particularly improving the behaviour under KASAN - More repainting of our system register definitions to match the architectural terminology - Improvements to the layout of the vDSO objects - Support for allocating additional bits of HWCAP2 and exposing FEAT_EBF16 to userspace on CPUs that support it - Considerable rework and optimisation of our early boot code to reduce the need for cache maintenance and avoid jumping in and out of the kernel when handling relocation under KASLR - Support for disabling SVE and SME support on the kernel command-line - Support for the Hisilicon HNS3 PMU - Miscellanous cleanups, trivial updates and minor fixes" * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (136 commits) arm64: Delay initialisation of cpuinfo_arm64::reg_{zcr,smcr} arm64: fix KASAN_INLINE arm64/hwcap: Support FEAT_EBF16 arm64/cpufeature: Store elf_hwcaps as a bitmap rather than unsigned long arm64/hwcap: Document allocation of upper bits of AT_HWCAP arm64: enable THP_SWAP for arm64 arm64/mm: use GENMASK_ULL for TTBR_BADDR_MASK_52 arm64: errata: Remove AES hwcap for COMPAT tasks arm64: numa: Don't check node against MAX_NUMNODES drivers/perf: arm_spe: Fix consistency of SYS_PMSCR_EL1.CX perf: RISC-V: Add of_node_put() when breaking out of for_each_of_cpu_node() docs: perf: Include hns3-pmu.rst in toctree to fix 'htmldocs' WARNING arm64: kasan: Revert "arm64: mte: reset the page tag in page->flags" mm: kasan: Skip page unpoisoning only if __GFP_SKIP_KASAN_UNPOISON mm: kasan: Skip unpoisoning of user pages mm: kasan: Ensure the tags are visible before the tag in page->flags drivers/perf: hisi: add driver for HNS3 PMU drivers/perf: hisi: Add description for HNS3 PMU driver drivers/perf: riscv_pmu_sbi: perf format perf/arm-cci: Use the bitmap API to allocate bitmaps ...
- Loading branch information
Showing
123 changed files
with
3,971 additions
and
1,627 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -493,12 +493,13 @@ What: /sys/devices/system/cpu/cpuX/regs/ | |
/sys/devices/system/cpu/cpuX/regs/identification/ | ||
/sys/devices/system/cpu/cpuX/regs/identification/midr_el1 | ||
/sys/devices/system/cpu/cpuX/regs/identification/revidr_el1 | ||
/sys/devices/system/cpu/cpuX/regs/identification/smidr_el1 | ||
Date: June 2016 | ||
Contact: Linux ARM Kernel Mailing list <[email protected]> | ||
Description: AArch64 CPU registers | ||
|
||
'identification' directory exposes the CPU ID registers for | ||
identifying model and revision of the CPU. | ||
identifying model and revision of the CPU and SMCU. | ||
|
||
What: /sys/devices/system/cpu/aarch32_el0 | ||
Date: May 2021 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
====================================== | ||
HNS3 Performance Monitoring Unit (PMU) | ||
====================================== | ||
|
||
HNS3(HiSilicon network system 3) Performance Monitoring Unit (PMU) is an | ||
End Point device to collect performance statistics of HiSilicon SoC NIC. | ||
On Hip09, each SICL(Super I/O cluster) has one PMU device. | ||
|
||
HNS3 PMU supports collection of performance statistics such as bandwidth, | ||
latency, packet rate and interrupt rate. | ||
|
||
Each HNS3 PMU supports 8 hardware events. | ||
|
||
HNS3 PMU driver | ||
=============== | ||
|
||
The HNS3 PMU driver registers a perf PMU with the name of its sicl id.:: | ||
|
||
/sys/devices/hns3_pmu_sicl_<sicl_id> | ||
|
||
PMU driver provides description of available events, filter modes, format, | ||
identifier and cpumask in sysfs. | ||
|
||
The "events" directory describes the event code of all supported events | ||
shown in perf list. | ||
|
||
The "filtermode" directory describes the supported filter modes of each | ||
event. | ||
|
||
The "format" directory describes all formats of the config (events) and | ||
config1 (filter options) fields of the perf_event_attr structure. | ||
|
||
The "identifier" file shows version of PMU hardware device. | ||
|
||
The "bdf_min" and "bdf_max" files show the supported bdf range of each | ||
pmu device. | ||
|
||
The "hw_clk_freq" file shows the hardware clock frequency of each pmu | ||
device. | ||
|
||
Example usage of checking event code and subevent code:: | ||
|
||
$# cat /sys/devices/hns3_pmu_sicl_0/events/dly_tx_normal_to_mac_time | ||
config=0x00204 | ||
$# cat /sys/devices/hns3_pmu_sicl_0/events/dly_tx_normal_to_mac_packet_num | ||
config=0x10204 | ||
|
||
Each performance statistic has a pair of events to get two values to | ||
calculate real performance data in userspace. | ||
|
||
The bits 0~15 of config (here 0x0204) are the true hardware event code. If | ||
two events have same value of bits 0~15 of config, that means they are | ||
event pair. And the bit 16 of config indicates getting counter 0 or | ||
counter 1 of hardware event. | ||
|
||
After getting two values of event pair in usersapce, the formula of | ||
computation to calculate real performance data is::: | ||
|
||
counter 0 / counter 1 | ||
|
||
Example usage of checking supported filter mode:: | ||
|
||
$# cat /sys/devices/hns3_pmu_sicl_0/filtermode/bw_ssu_rpu_byte_num | ||
filter mode supported: global/port/port-tc/func/func-queue/ | ||
|
||
Example usage of perf:: | ||
|
||
$# perf list | ||
hns3_pmu_sicl_0/bw_ssu_rpu_byte_num/ [kernel PMU event] | ||
hns3_pmu_sicl_0/bw_ssu_rpu_time/ [kernel PMU event] | ||
------------------------------------------ | ||
|
||
$# perf stat -g -e hns3_pmu_sicl_0/bw_ssu_rpu_byte_num,global=1/ -e hns3_pmu_sicl_0/bw_ssu_rpu_time,global=1/ -I 1000 | ||
or | ||
$# perf stat -g -e hns3_pmu_sicl_0/config=0x00002,global=1/ -e hns3_pmu_sicl_0/config=0x10002,global=1/ -I 1000 | ||
|
||
|
||
Filter modes | ||
-------------- | ||
|
||
1. global mode | ||
PMU collect performance statistics for all HNS3 PCIe functions of IO DIE. | ||
Set the "global" filter option to 1 will enable this mode. | ||
Example usage of perf:: | ||
|
||
$# perf stat -a -e hns3_pmu_sicl_0/config=0x1020F,global=1/ -I 1000 | ||
|
||
2. port mode | ||
PMU collect performance statistic of one whole physical port. The port id | ||
is same as mac id. The "tc" filter option must be set to 0xF in this mode, | ||
here tc stands for traffic class. | ||
|
||
Example usage of perf:: | ||
|
||
$# perf stat -a -e hns3_pmu_sicl_0/config=0x1020F,port=0,tc=0xF/ -I 1000 | ||
|
||
3. port-tc mode | ||
PMU collect performance statistic of one tc of physical port. The port id | ||
is same as mac id. The "tc" filter option must be set to 0 ~ 7 in this | ||
mode. | ||
Example usage of perf:: | ||
|
||
$# perf stat -a -e hns3_pmu_sicl_0/config=0x1020F,port=0,tc=0/ -I 1000 | ||
|
||
4. func mode | ||
PMU collect performance statistic of one PF/VF. The function id is BDF of | ||
PF/VF, its conversion formula:: | ||
|
||
func = (bus << 8) + (device << 3) + (function) | ||
|
||
for example: | ||
BDF func | ||
35:00.0 0x3500 | ||
35:00.1 0x3501 | ||
35:01.0 0x3508 | ||
|
||
In this mode, the "queue" filter option must be set to 0xFFFF. | ||
Example usage of perf:: | ||
|
||
$# perf stat -a -e hns3_pmu_sicl_0/config=0x1020F,bdf=0x3500,queue=0xFFFF/ -I 1000 | ||
|
||
5. func-queue mode | ||
PMU collect performance statistic of one queue of PF/VF. The function id | ||
is BDF of PF/VF, the "queue" filter option must be set to the exact queue | ||
id of function. | ||
Example usage of perf:: | ||
|
||
$# perf stat -a -e hns3_pmu_sicl_0/config=0x1020F,bdf=0x3500,queue=0/ -I 1000 | ||
|
||
6. func-intr mode | ||
PMU collect performance statistic of one interrupt of PF/VF. The function | ||
id is BDF of PF/VF, the "intr" filter option must be set to the exact | ||
interrupt id of function. | ||
Example usage of perf:: | ||
|
||
$# perf stat -a -e hns3_pmu_sicl_0/config=0x00301,bdf=0x3500,intr=0/ -I 1000 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -9,6 +9,7 @@ Performance monitor support | |
|
||
hisi-pmu | ||
hisi-pcie-pmu | ||
hns3-pmu | ||
imx-ddr | ||
qcom_l2_pmu | ||
qcom_l3_pmu | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -9038,6 +9038,12 @@ F: Documentation/admin-guide/perf/hisi-pcie-pmu.rst | |
F: Documentation/admin-guide/perf/hisi-pmu.rst | ||
F: drivers/perf/hisilicon | ||
|
||
HISILICON HNS3 PMU DRIVER | ||
M: Guangbin Huang <[email protected]> | ||
S: Supported | ||
F: Documentation/admin-guide/perf/hns3-pmu.rst | ||
F: drivers/perf/hisilicon/hns3_pmu.c | ||
|
||
HISILICON QM AND ZIP Controller DRIVER | ||
M: Zhou Wang <[email protected]> | ||
L: [email protected] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.