From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752556AbbIQSAl (ORCPT ); Thu, 17 Sep 2015 14:00:41 -0400 Received: from mail-yk0-f180.google.com ([209.85.160.180]:34637 "EHLO mail-yk0-f180.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751915AbbIQSAg (ORCPT ); Thu, 17 Sep 2015 14:00:36 -0400 Date: Thu, 17 Sep 2015 14:00:26 -0400 From: Tejun Heo To: James Bottomley Cc: "Michael S. Tsirkin" , Suman Anna , Ohad Ben-Cohen , linux-kernel@vger.kernel.org, virtualization@lists.linux-foundation.org, linux-scsi@vger.kernel.org, open-iscsi@googlegroups.com Subject: Re: DEFINE_IDA causing memory leaks? (was Re: [PATCH 1/2] virtio: fix memory leak of virtio ida cache layers) Message-ID: <20150917180026.GB15447@htj.duckdns.org> References: <1442449758-14594-1-git-send-email-s-anna@ti.com> <1442449758-14594-2-git-send-email-s-anna@ti.com> <20150917082425-mutt-send-email-mst@redhat.com> <1442499344.4073.0.camel@HansenPartnership.com> <20150917190538-mutt-send-email-mst@redhat.com> <1442508517.4073.13.camel@HansenPartnership.com> <20150917171529.GA15447@htj.duckdns.org> <1442512709.4073.24.camel@HansenPartnership.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1442512709.4073.24.camel@HansenPartnership.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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