Re: DEFINE_IDA causing memory leaks? (was Re: [PATCH 1/2] virtio: fix memory leak of virtio ida cache layers)

From: Tejun Heo
Date: Thu Sep 17 2015 - 14:00:44 EST


Hello, James.

On Thu, Sep 17, 2015 at 10:58:29AM -0700, James Bottomley wrote:
> The argument is that we shouldn't have to explicitly destroy a
> statically initialized object, so
>
> DEFINE_IDA(someida);
>
> Should just work without having to explicitly do
>
> ida_destory(someida);
>
> somewhere in the exit code. It's about usage patterns. Michael's
> argument is that if we can't follow the no destructor pattern for
> DEFINE_IDA() then we shouldn't have it at all, because it's confusing
> kernel design patterns. The pattern we would have would be
>
> struct ida someida:
>
> ida_init(&someida);
>
> ...
>
> ida_destroy(&someida);
>
> so the object explicitly has a constructor matched to a destructor.

Yeah, I get that. I'm just not convinced that this matters enough
especially if we can get debugobj/ksan/whatever trip on it.

Thanks.

--
tejun
--
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/