public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@suse.de>
To: Jeff Garzik <jgarzik@pobox.com>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] Proper block queue reference counting
Date: Thu, 7 Aug 2003 16:50:27 +0200	[thread overview]
Message-ID: <20030807145027.GI2886@suse.de> (raw)
In-Reply-To: <3F3263FC.5030100@pobox.com>

On Thu, Aug 07 2003, Jeff Garzik wrote:
> I like the patch, but see two problems:
> 
> 1) You convert drivers to dynamically allocated queues... who is freeing 
> the queues?  unregister_blkdev?  It's a bit non-obvious to say the 
> least, since you patches (for example, the first one, to stram.c) 
> obviously switch blk_init_queue to dynamically allocate a queue...  but 
> you do not add code to remove the final reference in modprobe.  The 
> standard driver-facing API dictates that the driver calls foo_put 
> itself, in the driver, rather than have it done implicitly.

blk_cleanup_queue() still does that, as does blk_put_queue() (same deal,
each drop a reference, last reference frees the queue).

This first patch is just the frame work, the only thing that's
referenced counted right now is that the returned object has one
reference and when the driver cleans the queue it drops the reference
causing it to be freed. Next step is making sure others that hold a
reference to the queue also grab a reference to it, using
blk_get_queue(). That's stuff like bdev_get_queue(), for instance.

> 2) the blk_init_queue really should change names, IMO.  The other 
> subsystems in the kernel tend to use a "foo_alloc" or "alloc_foo" 
> pattern when creating new objects.  blk_alloc_queue, or simply blk_alloc?

blk_alloc_queue() would be fine. However, it's hard to screw the usage
up since it returns a queue, so... And people with out-of-tree drivers
that need to be converted need only look at the blk_init_queue()
changes, easy to grep for.

-- 
Jens Axboe


  reply	other threads:[~2003-08-07 14:53 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <200308070909.h7799QHg022029@hera.kernel.org>
2003-08-07 14:36 ` [PATCH] Proper block queue reference counting Jeff Garzik
2003-08-07 14:50   ` Jens Axboe [this message]
2003-08-07 14:56     ` Jeff Garzik
2003-08-07 15:00       ` Jens Axboe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20030807145027.GI2886@suse.de \
    --to=axboe@suse.de \
    --cc=jgarzik@pobox.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox