From 20368dd3178f387d174cd8774b0639d0395f8204 Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Fri, 27 Jul 2018 14:44:35 +0900 Subject: [PATCH] syscall: move sync_child_event up a bit The function was between two perf functions when perf functions don't use it... It seemed simpler to move the function than to add an extra ifdef Use that occasion to fix style warnings, no actual code changes were made. Change-Id: Ie8b5fa7968a3d5e54a690d079874db54f5e6c8c9 --- kernel/syscall.c | 63 ++++++++++++++++++++++++------------------------ 1 file changed, 32 insertions(+), 31 deletions(-) diff --git a/kernel/syscall.c b/kernel/syscall.c index e34438ff..9dd64548 100644 --- a/kernel/syscall.c +++ b/kernel/syscall.c @@ -120,7 +120,6 @@ extern void free_all_process_memory_range(struct process_vm *vm); extern int arch_clear_host_user_space(); extern long arch_ptrace(long request, int pid, long addr, long data); extern struct cpu_local_var *clv; -extern void sync_child_event(struct mc_perf_event *event); int prepare_process_ranges_args_envs(struct thread *thread, struct program_load_desc *pn, @@ -958,6 +957,38 @@ void terminate_mcexec(int rc, int sig) } } +void sync_child_event(struct mc_perf_event *event) +{ + struct mc_perf_event *leader; + struct mc_perf_event *sub; + + if (!event) + return; + if (!(event->attr.inherit) && (event->pid == 0)) + return; + + leader = event->group_leader; + if (leader->pid == 0) { + leader->child_count_total += + ihk_mc_perfctr_read(leader->counter_id); + } + else if (leader->pid > 0) { + leader->count = ihk_mc_perfctr_read(leader->counter_id); + } + else + return; // Error + + list_for_each_entry(sub, &leader->sibling_list, group_entry) { + if (event->pid == 0) { + sub->child_count_total += + ihk_mc_perfctr_read(sub->counter_id); + } + else if (event->pid > 0) { + sub->count = ihk_mc_perfctr_read(sub->counter_id); + } + } +} + void terminate(int rc, int sig) { struct resource_set *resource_set = cpu_local_var(resource_set); @@ -3462,36 +3493,6 @@ unsigned long perf_event_read_value(struct mc_perf_event *event) return rtn_count; } -void sync_child_event(struct mc_perf_event *event) -{ - struct mc_perf_event *leader; - struct mc_perf_event *sub; - - if(!event) - return; - if(!(event->attr.inherit) && (event->pid == 0)) - return; - - leader = event->group_leader; - if(leader->pid == 0){ - leader->child_count_total += ihk_mc_perfctr_read(leader->counter_id); - } - else if(leader->pid > 0) { - leader->count = ihk_mc_perfctr_read(leader->counter_id); - } - else - return; // Error - - list_for_each_entry(sub, &leader->sibling_list, group_entry) { - if(event->pid == 0){ - sub->child_count_total += ihk_mc_perfctr_read(sub->counter_id); - } - else if(event->pid > 0) { - sub->count = ihk_mc_perfctr_read(sub->counter_id); - } - } -} - static int perf_event_read_group(struct mc_perf_event *event, unsigned long read_format, char *buf) {