aboutsummaryrefslogtreecommitdiff
path: root/arch/csky/kernel/perf_event.c
AgeCommit message (Collapse)AuthorFilesLines
2021-02-27csky: Add VDSO with GENERIC_GETTIMEOFDAY, GENERIC_TIME_VSYSCALL, ↵Guo Ren1-1/+1
HAVE_GENERIC_VDSO It could help to reduce the latency of the time-related functions in user space. We have referenced arm's and riscv's implementation for the patch. Signed-off-by: Guo Ren <[email protected]> Cc: Vincent Chen <[email protected]> Cc: Arnd Bergmann <[email protected]>
2021-01-12csky: Fixup perf probe failedGuo Ren1-1/+1
Current perf init will failed with: [ 1.452433] csky-pmu: probe of soc:pmu failed with error -16 This patch fix it up with adding CPUHP_AP_PERF_CSKY_ONLINE in cpuhotplug.h. Signed-off-by: Guo Ren <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Arnaldo Carvalho de Melo <[email protected]>
2019-09-30csky: Move static keyword to the front of declarationKrzysztof Wilczynski1-1/+1
Move the static keyword to the front of declaration of csky_pmu_of_device_ids, and resolve the following compiler warning that can be seen when building with warnings enabled (W=1): arch/csky/kernel/perf_event.c:1340:1: warning: ‘static’ is not at beginning of declaration [-Wold-style-declaration] Signed-off-by: Krzysztof Wilczynski <[email protected]> Signed-off-by: Guo Ren <[email protected]>
2019-09-30csky: Fixup csky_pmu.max_period assignmentMao Han1-1/+1
The csky_pmu.max_period has type u64, and BIT() can only return 32 bits unsigned long on C-SKY. The initialization for max_period will be incorrect when count_width is bigger than 32. Use BIT_ULL() Signed-off-by: Mao Han <[email protected]> Signed-off-by: Guo Ren <[email protected]>
2019-07-19csky: Fixup some error count in 810 & 860.Guo Ren1-6/+54
CK810 pmu only support event with index 0-8 and 0xd; CK860 only support event 1~4, 0xa~0x1b. So do not register unsupport event to hardware cache event, which may leader to unknown behavior. Signed-off-by: Mao Han <[email protected]> Signed-off-by: Guo Ren <[email protected]>
2019-07-19csky: Fix perf record in kernel/user spaceMao Han1-12/+14
csky_pmu_event_init is called several times during the perf record initialzation. After configure the event counter in either kernel space or user space, csky_pmu_event_init is called twice with no attr specified. Configuration will be overwritten with sampling in both kernel space and user space. --all-kernel/--all-user is useless without this patch applied. Signed-off-by: Mao Han <[email protected]> Signed-off-by: Guo Ren <[email protected]>
2019-07-19csky: Add pmu interrupt supportMao Han1-15/+246
This patch add interrupt request and handler for csky pmu. perf can record on hardware event with this patch applied. Signed-off-by: Mao Han <[email protected]> Signed-off-by: Guo Ren <[email protected]>
2019-07-19csky: Add count-width property for csky pmuMao Han1-1/+14
The csky pmu counter may have different io width. When the counter is smaller then 64 bits and counter value is smaller than the old value, it will result to a extremely large delta value. So the sampled value should be extend to 64 bits to avoid this, the extension bits base on the count-width property from dts. Signed-off-by: Mao Han <[email protected]> Signed-off-by: Guo Ren <[email protected]>
2019-07-19csky: Init pmu as a deviceMao Han1-2/+48
This patch change the csky pmu initialization from arch init to device init. The pmu can be configued with information from device tree(pmu device name, irq number and etc.). Signed-off-by: Mao Han <[email protected]> Signed-off-by: Guo Ren <[email protected]>
2019-01-02csky: Add perf support for C-SKYGuo Ren1-0/+1031
This adds basic perf support for all C-SKY CPUs. Hardware events are only supported by 807/810/860. Signed-off-by: Guo Ren <[email protected]>