linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Hannes Reinecke <hare@suse.de>
To: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel@vger.kernel.org, James.Bottomley@steeleye.com,
	linux-scsi@vger.kernel.org
Subject: Re: 2.6.24-rc4-mm1: hostbyte=0x01 driverbyte=0x00 (now bisected)
Date: Thu, 06 Dec 2007 08:52:29 +0100	[thread overview]
Message-ID: <4757AA3D.4060003@suse.de> (raw)
In-Reply-To: <20071205234154.GA4041@martell.zuzino.mipt.ru>

[-- Attachment #1: Type: text/plain, Size: 3105 bytes --]

Alexey Dobriyan wrote:
>>  git-scsi-misc.patch
> 
> Apologies for not looking into the problem earlier. See
> http://marc.info/?t=119628022300005&r=1&w=2
> "2.6.24-rc3-mm2: Result: hostbyte=0x01 driverbyte=0x00\nend_request: I/O error"
> for previous installment.
> 
> I've bisected it to the following patch in git-scsi-misc branch.
> Revert on top of 2.6.24-rc4-mm1 also helps.
> 
> commit 8655a546c83fc43f0a73416bbd126d02de7ad6c0
> Author: Hannes Reinecke <hare@suse.de>
> Date:   Tue Nov 6 09:23:40 2007 +0100
> 
>     [SCSI] Do not requeue requests if REQ_FAILFAST is set
>     
>     Any requests with the REQ_FAILFAST flag set should not be requeued
>     to the requeust queue, but rather terminated directly.
>     Otherwise the multipath failover will stall until the command
>     timeout triggers.
>     
>     Signed-off-by: Hannes Reinecke <hare@suse.de>
>     Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
> 
> diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
> index 0f44bdb..0da0dd0 100644
> --- a/drivers/scsi/scsi_lib.c
> +++ b/drivers/scsi/scsi_lib.c
> @@ -1286,6 +1286,11 @@ int scsi_prep_state_check(struct scsi_device *sdev, struct request *req)
>  			 */
>  			if (!(req->cmd_flags & REQ_PREEMPT))
>  				ret = BLKPREP_DEFER;
> +			/*
> +			 * Return failfast requests immediately
> +			 */
> +			if (req->cmd_flags & REQ_FAILFAST)
> +				ret = BLKPREP_KILL;
>  			break;
>  		default:
>  			/*
> @@ -1414,6 +1419,17 @@ static inline int scsi_host_queue_ready(struct request_queue *q,
>  	return 1;
>  }
>  
> +static void __scsi_kill_request(struct request *req)
> +{
> +	struct scsi_cmnd *cmd = req->special;
> +	struct scsi_device *sdev = cmd->device;
> +
> +	cmd->result = DID_NO_CONNECT << 16;
> +	atomic_inc(&cmd->device->iorequest_cnt);
> +	sdev->device_busy--;
> +	__scsi_done(cmd);
> +}
> +
>  /*
>   * Kill a request for a dead device
>   */
> @@ -1527,8 +1543,16 @@ static void scsi_request_fn(struct request_queue *q)
>  		 * accept it.
>  		 */
>  		req = elv_next_request(q);
> -		if (!req || !scsi_dev_queue_ready(q, sdev))
> +		if (!req)
> +			break;
> +
> +		if (!scsi_dev_queue_ready(q, sdev)) {
> +			if (req->cmd_flags & REQ_FAILFAST) {
> +				scsi_kill_request(req, q);
> +				continue;
> +			}
>  			break;
> +		}
>  
>  		if (unlikely(!scsi_device_online(sdev))) {
>  			sdev_printk(KERN_ERR, sdev,
> @@ -1609,8 +1633,12 @@ static void scsi_request_fn(struct request_queue *q)
>  	 * later time.
>  	 */
>  	spin_lock_irq(q->queue_lock);
> -	blk_requeue_request(q, req);
> -	sdev->device_busy--;
> +	if (unlikely(req->cmd_flags & REQ_FAILFAST))
> +		__scsi_kill_request(req);
> +	else {
> +		blk_requeue_request(q, req);
> +		sdev->device_busy--;
> +	}
>  	if(sdev->device_busy == 0)
>  		blk_plug_device(q);
>   out:
Yeah, sorry. That patch was bad. Please use the attached one instead.
Andrew, can you replace them?

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		      zSeries & Storage
hare@suse.de			      +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Markus Rex, HRB 16746 (AG Nürnberg)

[-- Attachment #2: tmp --]
[-- Type: text/plain, Size: 758 bytes --]

diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index 13e7e09..9ec1566 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -1284,13 +1284,15 @@ int scsi_prep_state_check(struct scsi_device *sdev, struct request *req)
 			/*
 			 * If the devices is blocked we defer normal commands.
 			 */
-			if (!(req->cmd_flags & REQ_PREEMPT))
-				ret = BLKPREP_DEFER;
-			/*
-			 * Return failfast requests immediately
-			 */
-			if (req->cmd_flags & REQ_FAILFAST)
-				ret = BLKPREP_KILL;
+			if (!(req->cmd_flags & REQ_PREEMPT)) {
+				/*
+				 * Return failfast requests immediately
+				 */
+				if (req->cmd_flags & REQ_FAILFAST)
+					ret = BLKPREP_KILL;
+				else
+					ret = BLKPREP_DEFER;
+			}
 			break;
 		default:
 			/*

  reply	other threads:[~2007-12-06  7:52 UTC|newest]

Thread overview: 112+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-05  5:17 2.6.24-rc4-mm1 Andrew Morton
2007-12-05  9:15 ` 2.6.24-rc4-mm1: kobj changes fallout on powerpc Olof Johansson
2007-12-05 13:11   ` Kamalesh Babulal
2007-12-05 15:46     ` Greg KH
2007-12-05 14:12 ` 2.6.24-rc4-mm1 kobject changes broken with hvcs driver " Kamalesh Babulal
2007-12-05 15:47   ` Greg KH
2007-12-06 18:19   ` Balbir Singh
2007-12-06 18:50     ` Greg KH
2007-12-06 18:49       ` Kamalesh Babulal
2007-12-06 18:58       ` Balbir Singh
2007-12-06 19:21         ` Badari Pulavarty
2007-12-07  1:29           ` Balbir Singh
2007-12-06 20:31         ` Greg KH
2007-12-06 23:54           ` Badari Pulavarty
2007-12-07  0:32             ` Greg KH
2007-12-07  3:02               ` Kamalesh Babulal
2007-12-07  5:14                 ` Greg KH
2007-12-07 22:01                   ` Balbir Singh
2007-12-05 23:41 ` 2.6.24-rc4-mm1: hostbyte=0x01 driverbyte=0x00 (now bisected) Alexey Dobriyan
2007-12-06  7:52   ` Hannes Reinecke [this message]
2007-12-06 12:08     ` Jens Axboe
2007-12-06 19:19     ` Alexey Dobriyan
2007-12-06  3:15 ` 2.6.24-rc4-mm1 Kernel build fails on S390x Kamalesh Babulal
2007-12-06  7:19   ` Andrew Morton
2007-12-06  6:59 ` 2.6.24-rc4-mm1 Reuben Farrelly
2007-12-06  7:09   ` 2.6.24-rc4-mm1 David Miller
2007-12-07 13:16     ` 2.6.24-rc4-mm1 Ilpo Järvinen
2007-12-12 17:57       ` 2.6.24-rc4-mm1 Cedric Le Goater
2007-12-06  7:35   ` 2.6.24-rc4-mm1 Andrew Morton
2007-12-10 12:24     ` 2.6.24-rc4-mm1 Ilpo Järvinen
2007-12-10 20:05       ` 2.6.24-rc4-mm1 Ilpo Järvinen
2007-12-12 19:21       ` 2.6.24-rc4-mm1 Cedric Le Goater
2007-12-13 17:38         ` tcp_sacktag_one() WARNING (was Re: 2.6.24-rc4-mm1) Cedric Le Goater
2007-12-06 11:49 ` 2.6.24-rc4-mm1 Valdis.Kletnieks
2007-12-06 12:04   ` 2.6.24-rc4-mm1 Andrew Morton
2007-12-06 19:18     ` 2.6.24-rc4-mm1 Valdis.Kletnieks
2007-12-06 19:38       ` 2.6.24-rc4-mm1 Greg KH
2007-12-06 20:04         ` 2.6.24-rc4-mm1 Valdis.Kletnieks
2007-12-06 22:04         ` [dm-devel] 2.6.24-rc4-mm1 Kay Sievers
2007-12-06 22:12           ` Alasdair G Kergon
2007-12-06 23:12           ` Valdis.Kletnieks
2007-12-06 23:24             ` Kay Sievers
2007-12-07 18:20               ` Valdis.Kletnieks
2007-12-07 18:44                 ` Kay Sievers
2007-12-07 20:28                   ` Valdis.Kletnieks
2007-12-07 20:49                     ` Kay Sievers
2007-12-06 22:28 ` 2.6.24-rc4-mm1: VDSOSYM build error Laurent Riffard
2007-12-06 22:37   ` Andrew Morton
2007-12-06 23:28     ` Miles Lane
2007-12-06 23:34       ` Andrew Morton
2007-12-06 23:47         ` Miles Lane
2007-12-07 10:36         ` Ingo Molnar
2007-12-07  1:14     ` [PATCH x86/mm] x86 vDSO: canonicalize sysenter .eh_frame Roland McGrath
2007-12-07  1:27       ` Harvey Harrison
2007-12-07  3:27         ` Miles Lane
2007-12-07  9:44       ` Ingo Molnar
2007-12-07  2:12 ` 2.6.24-rc4-mm1 Dave Young
2007-12-07 22:22   ` 2.6.24-rc4-mm1 Luis R. Rodriguez
2007-12-10  1:07     ` 2.6.24-rc4-mm1 Dave Young
2007-12-09 17:55   ` 2.6.24-rc4-mm1 Nick Kossifidis
     [not found] ` <E1J0Yfy-0001V7-Rr@localhost>
2007-12-07  8:35   ` [PATCH BUGFIX] hid: the `bit' in hidinput_mapping_quirks() is an out parameter Fengguang Wu
2007-12-10 10:03     ` Jiri Kosina
2007-12-07 14:34 ` broken suspend (sched related) [Was: 2.6.24-rc4-mm1] Jiri Slaby
2007-12-07 15:11   ` Ingo Molnar
2007-12-07 17:51     ` Ingo Molnar
2007-12-08  8:10       ` Jiri Slaby
2007-12-08  8:39         ` Ingo Molnar
2007-12-08  9:23           ` Jiri Slaby
2007-12-08 15:24             ` Ingo Molnar
2007-12-08 17:34               ` Jiri Slaby
2007-12-08 17:43               ` Jiri Slaby
2007-12-09  8:06                 ` Ingo Molnar
2007-12-08 23:12               ` Jiri Slaby
2007-12-09  7:46                 ` Ingo Molnar
2007-12-09  9:09                   ` Jiri Slaby
2007-12-10  8:19                   ` Gautham R Shenoy
2007-12-10  8:55                     ` Jiri Slaby
2007-12-10  9:10                       ` Ingo Molnar
2007-12-10 10:15                         ` Gautham R Shenoy
2007-12-10 10:21                           ` Ingo Molnar
2007-12-10 11:08                             ` Gautham R Shenoy
2007-12-10 11:28                               ` Ingo Molnar
2007-12-10 11:49                                 ` Gautham R Shenoy
2007-12-10  9:29                     ` Ingo Molnar
2007-12-07 18:20 ` [PATCH] md: balance braces in raid5 debug code Mariusz Kozlowski
2007-12-08  0:04 ` 2.6.24-rc4-mm1: undefined reference to `compat_sys_timerfd' on sparc64 Mariusz Kozlowski
2007-12-08  0:08   ` Andrew Morton
2007-12-08  9:17     ` Mariusz Kozlowski
2007-12-11 10:15     ` David Miller
2007-12-08 18:20 ` 2.6.24-rc4-mm1: some issues " Mariusz Kozlowski
2007-12-08 18:22   ` Andrew Morton
2007-12-09  8:45     ` David Miller
2007-12-09  9:03       ` Andrew Morton
2007-12-10 14:48 ` 2.6.24-rc4-mm1 Reuben Farrelly
2007-12-10 21:11   ` 2.6.24-rc4-mm1 Andrew Morton
2007-12-11 14:12     ` 2.6.24-rc4-mm1 Reuben Farrelly
2007-12-11 16:20 ` 2.6.24-rc4-mm1 Martin Bligh
2007-12-11 16:59   ` 2.6.24-rc4-mm1 Randy Dunlap
2007-12-11 17:50     ` 2.6.24-rc4-mm1 Martin Bligh
     [not found] ` <33307c790712110813h23def95dvd068b7226e9fcd36@mail.gmail.com>
2007-12-11 20:37   ` 2.6.24-rc4-mm1 Andrew Morton
2007-12-11 21:20     ` 2.6.24-rc4-mm1 Ingo Molnar
2007-12-11 21:26     ` 2.6.24-rc4-mm1 Kok, Auke
2007-12-11 21:59       ` 2.6.24-rc4-mm1 Kok, Auke
2007-12-11 22:10       ` 2.6.24-rc4-mm1 Andrew Morton
2007-12-11 22:17         ` 2.6.24-rc4-mm1 Kok, Auke
2007-12-11 23:15           ` 2.6.24-rc4-mm1 Randy Dunlap
2007-12-12  4:16 ` 2.6.24-rc4-mm1 Rik van Riel
2007-12-13 17:45 ` 2.6.24-rc4-mm1 - BUG in tcp_fragment Cedric Le Goater
2007-12-13 23:00   ` Ilpo Järvinen
2007-12-14  6:52     ` Cedric Le Goater
2007-12-14 20:14     ` [PATCH net-2.6.25] Revert recent TCP work Ilpo Järvinen
2007-12-16 22:21       ` David Miller

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=4757AA3D.4060003@suse.de \
    --to=hare@suse.de \
    --cc=James.Bottomley@steeleye.com \
    --cc=adobriyan@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@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;
as well as URLs for NNTP newsgroup(s).