linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@suse.de>
To: James Bottomley <James.Bottomley@SteelEye.com>
Cc: "Pasi Kärkkäinen" <pasik@iki.fi>, Nix <nix@esperi.org.uk>,
	Ariel <askernel2615@dsgml.com>,
	"Jamie Heilman" <jamie@audible.transient.net>,
	"Chase Venters" <chase.venters@clientec.com>,
	"Arjan van de Ven" <arjan@infradead.org>,
	linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-scsi@vger.kernel.org
Subject: Re: memory leak in scsi_cmd_cache 2.6.15
Date: Sun, 29 Jan 2006 20:57:33 +0100	[thread overview]
Message-ID: <20060129195733.GH13831@suse.de> (raw)
In-Reply-To: <1138552692.3352.6.camel@mulgrave>

On Sun, Jan 29 2006, James Bottomley wrote:
> On Sun, 2006-01-29 at 17:50 +0200, Pasi Kärkkäinen wrote:
> > Are all sata drivers affected by this bug in 2.6.15?
> 
> Well, all SCSI drivers are affected by it, yes.  However, SATA devices
> are peculiarly affected because the ordered_flush method of enforcing
> barriers, which is where the leak is, can only be implemented for
> devices that don't do tag command queueing (i.e. don't have multiple
> commands outstanding for a given single device).  By and large, SATA
> drivers are the only drivers in the SCSI subsystem that can't do tag
> command queueing, which is why the problem didn't show up for any other
> type of SCSI driver.

2.6.15 didn't support barriers for anything other than ordered flush
SCSI low level drivers, hence only SATA is affected.

> > Any 'official' patch available?
> 
> Well, yes, 2.6.16-rc1 has this fixed.  I can't see backporting this to
> 2.6.15.x since it represents a significant functionality enhancement as
> well, so I'd lean towards just forcing ordered_flush to zero in 2.6.15.x
> which seems to be the best bug fix.

Agree, backporting the barrier rewrite would be insane for stable.

> > Or is the recommended workaround to set ordered_flush to 0 to fix this..
> > does that have any downsides?
> 
> setting ordered_flush to zero for 2.6.15 turns off the flushing
> functionality and restores the old behaviour.  I don't see that there
> would be any down side to this.

Just the usual correctness issue, but since it's leaky it doesn't seem
like a big deal to wait for 2.6.16.

So here's a patch for 2.6.15:

---

Turn off ordered flush barriers for SCSI driver, since the SCSI barrier
code has a command leak.

Signed-off-by: Jens Axboe <axboe@suse.de>

--- linux-2.6.15.1/drivers/scsi/scsi_lib.c~	2006-01-29 11:55:08.000000000 -0800
+++ linux-2.6.15.1/drivers/scsi/scsi_lib.c	2006-01-29 11:55:38.000000000 -0800
@@ -1534,11 +1534,6 @@
 	 */
 	if (shost->ordered_tag)
 		blk_queue_ordered(q, QUEUE_ORDERED_TAG);
-	else if (shost->ordered_flush) {
-		blk_queue_ordered(q, QUEUE_ORDERED_FLUSH);
-		q->prepare_flush_fn = scsi_prepare_flush_fn;
-		q->end_flush_fn = scsi_end_flush_fn;
-	}
 
 	if (!shost->use_clustering)
 		clear_bit(QUEUE_FLAG_CLUSTER, &q->queue_flags);

-- 
Jens Axboe


      parent reply	other threads:[~2006-01-29 20:00 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-01-22  2:13 memory leak in scsi_cmd_cache 2.6.15 Ariel
2006-01-22  6:58 ` Andrew Morton
2006-01-22 18:18   ` Ariel
2006-01-22  8:16 ` Arjan van de Ven
2006-01-22  8:20   ` Arjan van de Ven
2006-01-22 18:51     ` Ariel
2006-01-22 19:07       ` Arjan van de Ven
2006-01-22 19:16         ` Chase Venters
2006-01-22 19:24           ` Arjan van de Ven
2006-01-22 19:46             ` Chase Venters
2006-01-23  2:19               ` Ariel
2006-01-22 19:24         ` Chase Venters
2006-01-23  0:58         ` Jamie Heilman
2006-01-23  2:14         ` Ariel
2006-01-23  6:18           ` Arjan van de Ven
2006-01-23  6:28             ` Chase Venters
2006-01-23  6:46               ` Ariel
2006-01-23  7:25                 ` Jamie Heilman
2006-01-23  8:33                   ` Jens Axboe
2006-01-27 11:28                     ` Jamie Heilman
2006-01-28 19:27                       ` Jens Axboe
2006-01-26 18:12                   ` Ariel
2006-01-27 16:23                     ` Nix
2006-01-28 19:27                       ` Jens Axboe
2006-01-28 19:46                         ` Chase Venters
2006-01-28 21:29                           ` Jens Axboe
2006-01-29 15:50                         ` Pasi Kärkkäinen
2006-01-29 16:38                           ` James Bottomley
2006-01-29 17:10                             ` Pasi Kärkkäinen
2006-01-29 19:57                             ` Jens Axboe [this message]

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=20060129195733.GH13831@suse.de \
    --to=axboe@suse.de \
    --cc=James.Bottomley@SteelEye.com \
    --cc=arjan@infradead.org \
    --cc=askernel2615@dsgml.com \
    --cc=chase.venters@clientec.com \
    --cc=jamie@audible.transient.net \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=nix@esperi.org.uk \
    --cc=pasik@iki.fi \
    /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;
as well as URLs for NNTP newsgroup(s).