lkml.org 
[lkml]   [2016]   [Jul]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRE: [PATCH 24/32] Task fork and exit for rdtgroup
    Date
    On Wed, July 2016, Thomas Gleixner wrote
    > On Tue, 12 Jul 2016, Fenghua Yu wrote:
    > > +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?

    In this situation for a pid:
    1.rdtgroup_fork(): rg_list=null.
    2.setup_task_rg_lists(): rg_list is setup
    3.rdtgroup_fork(): rg_list is not empty

    This situation happens only during rscctrl mount time. Before mount, post_fork()
    returns from !use_rdtgroup_tasks and doesn't set up rg_list. After mount, rg_list()
    is always empty in post_fork(). But we need to check rg_list for above situation.

    Does that make sense? Any suggestion for better soluation?

    >
    > > + 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.

    Will do.
    >
    > Thanks,
    >
    > tglx
    [unhandled content-type:image/jpeg]
    \
     
     \ /
      Last update: 2016-07-13 20:21    [W:4.796 / U:2.556 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site