Re: [PATCH] leak less memory in failure paths ofalloc_rt_sched_group()

From: Peter Zijlstra
Date: Sun Mar 02 2008 - 18:20:28 EST



On Mon, 2008-03-03 at 00:09 +0100, Jesper Juhl wrote:
> In kernel/sched.c b/kernel/sched.c::alloc_rt_sched_group() we currently do
> some paired memory allocations, and if one fails we bail out without
> freeing the previous one.
>
> If we fail inside the loop we should proably roll the whole thing back.
> This patch does not do that, it simply frees the first member of the
> paired alloc if the second fails. This is not perfect, but it's a simple
> change that will, at least, result in us leaking a little less than we
> currently do when an allocation fails.
>
> So, not perfect, but better than what we currently have.
> Please consider applying.

Doesn't the following handle that:

sched_create_group()
{
...
if (!alloc_rt_sched_group())
goto err;
...

err:
free_sched_group();
}


free_sched_group()
{
...
free_rt_sched_group();
...
}

free_rt_sched_group()
{
free all relevant stuff
}

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/