[CRIU] [PATCH 3/7] rlimit: Allocate and free appropriate Core entry, v2

Cyrill Gorcunov gorcunov at gmail.com
Fri Mar 14 03:37:56 PDT 2014


On Fri, Mar 14, 2014 at 02:27:45PM +0400, Pavel Emelyanov wrote:
> On 03/14/2014 02:19 PM, Cyrill Gorcunov wrote:
> > On Fri, Mar 14, 2014 at 02:06:55PM +0400, Pavel Emelyanov wrote:
> >> On 03/14/2014 01:48 PM, Cyrill Gorcunov wrote:
> >>> On Fri, Mar 14, 2014 at 01:45:25PM +0400, Pavel Emelyanov wrote:
> >>>>>  
> >>>>>  		if (th) {
> >>>>
> >>>> rlimits are per task, why allocating them per thread?
> >>>
> >>> No, the idea behind is that we allocating them per thread group leader,
> >>> ie when th = 1 _and_ tsk = 1 only.
> >>
> >> For threads tsk == 0, isn't it?
> > 
> > 	for (i = 0; i < item->nr_threads; i++) {
> > 		if (item->threads[i].real == item->pid.real)
> > 			item->core[i] = core_entry_alloc(1, 1);	<-- group leader (task)
> > 		else
> > 			item->core[i] = core_entry_alloc(1, 0);	<-- regular thread
> 
> regular thread, tsk == 0.

Pavel, I don't understand what you're trying to say me ;) We have 2 arguments here @tsk and @th.
The routine is called in 3 cases

 1) For tasks (thred group leader) th = 1 tsk = 1
 2) For threads th = 1 tsk = 0
 3) For zombies th = 0 tsk = 1

we need to dump rlimits for case 1) only and that's where I allocate memory only.
You propose to allocate memory simply if tsk = 1, or something else?


More information about the CRIU mailing list