From 2b6b3f31e5e38ba5c8dbebeebc69c788533f5d17 Mon Sep 17 00:00:00 2001 From: "TOIDA,Suguru" Date: Tue, 9 Apr 2019 10:03:12 +0900 Subject: [PATCH] pmu: remove pmc_{init|start|stop|reset} system call Change-Id: I6eb65ed8c18558418c7aabfee75cd1974f4c03ff --- arch/arm64/kernel/include/syscall_list.h | 6 --- arch/arm64/kernel/perfctr.c | 7 ---- arch/x86_64/kernel/include/syscall_list.h | 4 -- arch/x86_64/kernel/perfctr.c | 35 ---------------- kernel/syscall.c | 51 ----------------------- lib/include/ihk/perfctr.h | 2 - 6 files changed, 105 deletions(-) diff --git a/arch/arm64/kernel/include/syscall_list.h b/arch/arm64/kernel/include/syscall_list.h index f9116740..5dd62433 100644 --- a/arch/arm64/kernel/include/syscall_list.h +++ b/arch/arm64/kernel/include/syscall_list.h @@ -119,12 +119,6 @@ SYSCALL_DELEGATED(241, perf_event_open) SYSCALL_HANDLED(260, wait4) SYSCALL_HANDLED(270, process_vm_readv) SYSCALL_HANDLED(271, process_vm_writev) -#ifdef PERF_ENABLE -SYSCALL_HANDLED(601, pmc_init) -SYSCALL_HANDLED(602, pmc_start) -SYSCALL_HANDLED(603, pmc_stop) -SYSCALL_HANDLED(604, pmc_reset) -#endif // PERF_ENABLE SYSCALL_HANDLED(700, get_cpu_id) #ifdef PROFILE_ENABLE SYSCALL_HANDLED(__NR_profile, profile) diff --git a/arch/arm64/kernel/perfctr.c b/arch/arm64/kernel/perfctr.c index 493f6d82..2989a427 100644 --- a/arch/arm64/kernel/perfctr.c +++ b/arch/arm64/kernel/perfctr.c @@ -117,13 +117,6 @@ int ihk_mc_perfctr_init_raw(int counter, uint64_t config, int mode) return ret; } -int ihk_mc_perfctr_init(int counter, uint64_t config, int mode) -{ - int ret; - ret = __ihk_mc_perfctr_init(counter, PERF_TYPE_RAW, config, mode); - return ret; -} - int ihk_mc_perfctr_start(unsigned long counter_mask) { int ret = 0, i; diff --git a/arch/x86_64/kernel/include/syscall_list.h b/arch/x86_64/kernel/include/syscall_list.h index 79eda7fd..8ef9bd04 100644 --- a/arch/x86_64/kernel/include/syscall_list.h +++ b/arch/x86_64/kernel/include/syscall_list.h @@ -161,10 +161,6 @@ SYSCALL_HANDLED(303, mod_call) SYSCALL_HANDLED(309, getcpu) SYSCALL_HANDLED(310, process_vm_readv) SYSCALL_HANDLED(311, process_vm_writev) -SYSCALL_HANDLED(601, pmc_init) -SYSCALL_HANDLED(602, pmc_start) -SYSCALL_HANDLED(603, pmc_stop) -SYSCALL_HANDLED(604, pmc_reset) SYSCALL_HANDLED(700, get_cpu_id) #ifdef PROFILE_ENABLE SYSCALL_HANDLED(__NR_profile, profile) diff --git a/arch/x86_64/kernel/perfctr.c b/arch/x86_64/kernel/perfctr.c index 3fe46ec8..505c3a00 100644 --- a/arch/x86_64/kernel/perfctr.c +++ b/arch/x86_64/kernel/perfctr.c @@ -223,41 +223,6 @@ int ihk_mc_perfctr_init_raw(int counter, unsigned int code, int mode) #endif /*POSTK_DEBUG_TEMP_FIX_29*/ } -#ifdef POSTK_DEBUG_TEMP_FIX_29 -int ihk_mc_perfctr_init(int counter, uint64_t config, int mode) -#else -int ihk_mc_perfctr_init(int counter, enum ihk_perfctr_type type, int mode) -#endif /*POSTK_DEBUG_TEMP_FIX_29*/ -{ -#ifdef POSTK_DEBUG_TEMP_FIX_29 - enum ihk_perfctr_type type; - - switch (config) { - case PERF_COUNT_HW_CPU_CYCLES : - type = APT_TYPE_CYCLE; - break; - case PERF_COUNT_HW_INSTRUCTIONS : - type = APT_TYPE_INSTRUCTIONS; - break; - default : - // Not supported config. - type = PERFCTR_MAX_TYPE; - } -#endif /*POSTK_DEBUG_TEMP_FIX_29*/ - - if (counter < 0 || counter >= NUM_PERF_COUNTERS) { - return -EINVAL; - } - if (type < 0 || type >= PERFCTR_MAX_TYPE) { - return -EINVAL; - } - if (!x86_march_perfmap[type]) { - return -EINVAL; - } - - return set_perfctr_x86_direct(counter, mode, x86_march_perfmap[type]); -} - int ihk_mc_perfctr_set_extra(struct mc_perf_event *event) { struct thread *thread = cpu_local_var(current); diff --git a/kernel/syscall.c b/kernel/syscall.c index b06fe05c..f0dc405c 100644 --- a/kernel/syscall.c +++ b/kernel/syscall.c @@ -9136,57 +9136,6 @@ static void do_mod_exit(int status){ } #endif -#ifdef ENABLE_PERF -/* select counter type */ -SYSCALL_DECLARE(pmc_init) -{ - int counter = ihk_mc_syscall_arg0(ctx); - - enum ihk_perfctr_type type = (enum ihk_perfctr_type)ihk_mc_syscall_arg1(ctx); - /* see ihk/manycore/generic/include/ihk/perfctr.h */ - - int mode = PERFCTR_USER_MODE; - - return ihk_mc_perfctr_init(counter, type, mode); -} - -#ifdef POSTK_DEBUG_TEMP_FIX_30 -SYSCALL_DECLARE(pmc_start) -{ - unsigned long counter = ihk_mc_syscall_arg0(ctx); - return ihk_mc_perfctr_start((int)counter); -} -#else -SYSCALL_DECLARE(pmc_start) -{ - unsigned long counter = ihk_mc_syscall_arg0(ctx); - return ihk_mc_perfctr_start(1 << counter); -} -#endif /*POSTK_DEBUG_TEMP_FIX_30*/ - -#ifdef POSTK_DEBUG_TEMP_FIX_30 -SYSCALL_DECLARE(pmc_stop) -{ - unsigned long counter = ihk_mc_syscall_arg0(ctx); - return ihk_mc_perfctr_stop((int)counter, - IHK_MC_PERFCTR_DISABLE_INTERRUPT); -} -#else -SYSCALL_DECLARE(pmc_stop) -{ - unsigned long counter = ihk_mc_syscall_arg0(ctx); - return ihk_mc_perfctr_stop(1 << counter, - IHK_MC_PERFCTR_DISABLE_INTERRUPT); -} -#endif /*POSTK_DEBUG_TEMP_FIX_30*/ - -SYSCALL_DECLARE(pmc_reset) -{ - int counter = ihk_mc_syscall_arg0(ctx); - return ihk_mc_perfctr_reset(counter); -} -#endif /*ENABLE_PERF*/ - extern void save_uctx(void *, void *); /* TODO: use copy_from_user() */ diff --git a/lib/include/ihk/perfctr.h b/lib/include/ihk/perfctr.h index 95f94f2d..a2038ce4 100644 --- a/lib/include/ihk/perfctr.h +++ b/lib/include/ihk/perfctr.h @@ -59,10 +59,8 @@ enum ihk_perfctr_type { #define IHK_MC_PERFCTR_DISABLE_INTERRUPT 1 #ifdef POSTK_DEBUG_TEMP_FIX_29 -int ihk_mc_perfctr_init(int counter, uint64_t config, int mode); int ihk_mc_perfctr_init_raw(int counter, uint64_t config, int mode); #else -int ihk_mc_perfctr_init(int counter, enum ihk_perfctr_type type, int mode); int ihk_mc_perfctr_init_raw(int counter, unsigned int code, int mode); #endif/*POSTK_DEBUG_TEMP_FIX_29*/ int ihk_mc_perfctr_set_extra(struct mc_perf_event *event);