lkml.org 
[lkml]   [2016]   [Jul]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 24/32] Task fork and exit for rdtgroup
On Tue, 12 Jul 2016, Fenghua Yu wrote:
> +void rdtgroup_fork(struct task_struct *child)
> +{
> + INIT_LIST_HEAD(&child->rg_list);
> + child->rdtgroup = NULL;
> +}
> +
> +void rdtgroup_post_fork(struct task_struct *child)
> +{
> + if (!use_rdtgroup_tasks)
> + return;
> +
> + spin_lock_irq(&rdtgroup_task_lock);
> + if (list_empty(&child->rg_list)) {

Why would the list be non empty after a fork?

> + struct rdtgroup *rdtgrp = current->rdtgroup;
> +
> + list_add_tail(&child->rg_list, &rdtgrp->pset.tasks);
> + child->rdtgroup = rdtgrp;
> + atomic_inc(&rdtgrp->pset.refcount);
> + }
> + spin_unlock_irq(&rdtgroup_task_lock);
> +}
> diff --git a/kernel/exit.c b/kernel/exit.c
> index 9e6e135..04346b6 100644
> --- a/kernel/exit.c
> +++ b/kernel/exit.c
> @@ -59,6 +59,7 @@
> #include <asm/unistd.h>
> #include <asm/pgtable.h>
> #include <asm/mmu_context.h>
> +#include <asm/intel_rdt.h>
>
> static void __unhash_process(struct task_struct *p, bool group_dead)
> {
> @@ -757,6 +758,7 @@ void do_exit(long code)
> perf_event_exit_task(tsk);
>
> cgroup_exit(tsk);
> + rdtgroup_exit(tsk);

-ENOSUCHFUNCTION

Please provide the implementations first and then hook it up not the other way
round.

Thanks,

tglx

\
 
 \ /
  Last update: 2016-07-13 16:01    [W:0.158 / U:13.004 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site