Jeff Garzik | 1 Nov 03:34 2010

Re: Full hostlock pushdown available


>> On 10/28/2010 05:05 PM, Andi Kleen wrote:
>>> >> The following changes since commit 39764981e772adc832d8a96e6540be346a830ca2:
>>> >>
>>> >>   Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
(2010-10-27 20:54:34 +0200)
>>> >>
>>> >> are available in the git repository at:
>>> >>
>>> >>   ssh://master.kernel.org/pub/scm/linux/kernel/git/ak/linux-misc-2.6.git hostlock

Missing drivers/ata/libata-scsi.c modification?

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Randy Dunlap | 1 Nov 04:19 2010
Picon

Re: [patch] scsi: netlink: avoid including netlink interface in scsi module

On 10/31/10 11:50, Jan Engelhardt wrote:
> parent 3985c7ce85039adacdf882904ca096f091d39346 (v2.6.36-9871-g3985c7c)
> commit 150bc5749967d77b4d1177744d26bf7065f8ee07
> Author: Jan Engelhardt <jengelh <at> medozas.de>
> Date:   Sat Oct 30 19:51:53 2010 +0200
> 
> scsi: netlink: avoid including netlink interface in scsi module
> 
> Only scsi_transport_fc needs it, so don't include it in scsi_mod
> if fc=m.
> 
> Signed-off-by: Jan Engelhardt <jengelh <at> medozas.de>

Mostly looks good to me, just one warning:

drivers/scsi/scsi_netlink.c:678: warning: initialization from incompatible pointer type

The init() function should return an int (status/error code).

> ---
>  drivers/scsi/Kconfig        |    3 ++-
>  drivers/scsi/Makefile       |    2 +-
>  drivers/scsi/scsi.c         |    3 ---
>  drivers/scsi/scsi_netlink.c |   11 ++++++-----
>  drivers/scsi/scsi_priv.h    |    7 +------
>  5 files changed, 10 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
> index 8616496..b4e1e2d 100644
> --- a/drivers/scsi/Kconfig
(Continue reading)

KaGeN101 | 1 Nov 08:01 2010
Picon

(unknown)

unsubscribe

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Andi Kleen | 1 Nov 12:45 2010
Picon

Re: [ANNOUNCE] Status of unlocked_qcmds=1 operation for .37

> + XXX_queue_command(...
> + {
> + 	return SCSI_LOCKED_QUEUECOMMAND(XXX_queue_command_unlocked, ...);
> + }
> > -Andi
> 
> But since I'm only blabing, the one that "do", gets to decide ;-) .
> Perhaps next time.

With semantics patches "do"ing is actually not that much effort ...

-Andi
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

FUJITA Tomonori | 1 Nov 13:56 2010
Picon

Re: tcm IBMVSCSIS driver

On Sat, 30 Oct 2010 16:05:43 -0700
"Nicholas A. Bellinger" <nab <at> linux-iscsi.org> wrote:

> One final question in that regard is in your ibmvscsis_queuecommand()
> code, only INQUIRY, REPORT_LUNS, and MODE_SENSE need to be handled
> specially for other non Linux VIO SRP Initiator guests on the other
> end..

INQUIRY and REPORT_LUNS need the special responses. Otherwise the
initiators can't see the logical units.

> I would like to break this out (if possible) into individual
> specialized CDB fields / bits if possible so these special cases so we
> can drop excess emulation code in ibmvscsis.c.  This means we could
> (eventually) allow TCM/IBMVSCSIS to utilize the SPC-3+ emulation bits in
> INQUIRY for high level PR/ALUA emulation using SCSI_PROTOCOL_SRP for the
> EVPD=0x83 case.
> 
> So then perhaps this is more a question for brking and the POWER IBM
> folks.  Of the three CDBs in IBMVSCSIS (INQUIRY, REPORT_LUNS, and
> MODE_SENSE) that we are expecting to be done internally to fabric module
> code, are there any other specific bits you need set..?  Are there in
> any bits/fields in the code below that can not *not* be set..?
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Hillf Danton | 1 Nov 14:02 2010
Picon

[PATCH] fix scsi cmnd retries in error handling

There are two instances of increment and test of retries of scsi cmnd
in functions scsi_decide_disposition() and scsi_eh_flush_done_q()
respectively.

One of the increments is overwork when the corresponding cmnds are same.
The overwork is fixed in scsi_decide_disposition().

Signed-off-by: Hillf Danton <dhillf <at> gmail.com>
---

--- a/drivers/scsi/scsi_error.c	2010-09-13 07:07:38.000000000 +0800
+++ b/drivers/scsi/scsi_error.c	2010-11-01 20:39:38.000000000 +0800
 <at>  <at>  -1541,7 +1541,7  <at>  <at>  int scsi_decide_disposition(struct scsi_
 	 * the request was not marked fast fail.  Note that above,
 	 * even if the request is marked fast fail, we still requeue
 	 * for queue congestion conditions (QUEUE_FULL or BUSY) */
-	if ((++scmd->retries) <= scmd->allowed
+	if (scmd->retries < scmd->allowed
 	    && !scsi_noretry_cmd(scmd)) {
 		return NEEDS_RETRY;
 	} else {
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Hillf Danton | 1 Nov 14:13 2010
Picon

[PATCH] fix queue full in scsi error handling

Upon event that queue is full there seems the relevant time mark
should be updated.

Tedious check for sane depth of queue is also added before issuing the
callback of LLDD.

Signed-off-by: Hillf Danton <dhillf <at> gmail.com>
---

--- a/drivers/scsi/scsi_error.c	2010-09-13 07:07:38.000000000 +0800
+++ b/drivers/scsi/scsi_error.c	2010-11-01 20:48:26.000000000 +0800
 <at>  <at>  -405,6 +405,7  <at>  <at>  static void scsi_handle_queue_full(struc

 	if (!sht->change_queue_depth)
 		return;
+	sdev->last_queue_full_time = jiffies;

 	shost_for_each_device(tmp_sdev, sdev->host) {
 		if (tmp_sdev->channel != sdev->channel ||
 <at>  <at>  -415,8 +416,10  <at>  <at>  static void scsi_handle_queue_full(struc
 		 * the device when we got the queue full so we start
 		 * from the highest possible value and work our way down.
 		 */
-		sht->change_queue_depth(tmp_sdev, tmp_sdev->queue_depth - 1,
-					SCSI_QDEPTH_QFULL);
+		if (tmp_sdev->queue_depth > 1)
+			sht->change_queue_depth(tmp_sdev,
+						tmp_sdev->queue_depth - 1,
+						SCSI_QDEPTH_QFULL);
 	}
(Continue reading)

Hillf Danton | 1 Nov 14:25 2010
Picon

[PATCH] fix typo in scsi_handle_queue_ramp_up()

There seems cleanup of typo needed.

If only sdev is concerned its time mark could be updated after scanning devices.

Signed-off-by: Hillf Danton <dhillf <at> gmail.com>
---

--- a/drivers/scsi/scsi_error.c	2010-09-13 07:07:38.000000000 +0800
+++ b/drivers/scsi/scsi_error.c	2010-11-01 20:50:32.000000000 +0800
 <at>  <at>  -394,7 +394,7  <at>  <at>  static void scsi_handle_queue_ramp_up(st
 		 */
 		sht->change_queue_depth(tmp_sdev, tmp_sdev->queue_depth + 1,
 					SCSI_QDEPTH_RAMP_UP);
-		sdev->last_queue_ramp_up = jiffies;
+		tmp_sdev->last_queue_ramp_up = jiffies;
 	}
 }
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

James Bottomley | 1 Nov 14:38 2010
Picon

Re: [PATCH] fix scsi cmnd retries in error handling

On Mon, 2010-11-01 at 21:02 +0800, Hillf Danton wrote:
> There are two instances of increment and test of retries of scsi cmnd
> in functions scsi_decide_disposition() and scsi_eh_flush_done_q()
> respectively.

This analysis is incomplete.  Those two functions are called in
completely separate paths, so you can't remove the increment from one
and expect the other to compensate.

James

> One of the increments is overwork when the corresponding cmnds are same.
> The overwork is fixed in scsi_decide_disposition().
> 
> Signed-off-by: Hillf Danton <dhillf <at> gmail.com>
> ---
> 
> --- a/drivers/scsi/scsi_error.c	2010-09-13 07:07:38.000000000 +0800
> +++ b/drivers/scsi/scsi_error.c	2010-11-01 20:39:38.000000000 +0800
>  <at>  <at>  -1541,7 +1541,7  <at>  <at>  int scsi_decide_disposition(struct scsi_
>  	 * the request was not marked fast fail.  Note that above,
>  	 * even if the request is marked fast fail, we still requeue
>  	 * for queue congestion conditions (QUEUE_FULL or BUSY) */
> -	if ((++scmd->retries) <= scmd->allowed
> +	if (scmd->retries < scmd->allowed
>  	    && !scsi_noretry_cmd(scmd)) {
>  		return NEEDS_RETRY;
>  	} else {
> --
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
(Continue reading)

Hillf Danton | 1 Nov 14:41 2010
Picon

[PATCH] add yielding cpu in scsi_error_handler()

In cases that it is not ready to unjam host, the operation could be
deferred by yielding cpu since busy testing earns little help.

Signed-off-by: Hillf Danton <dhillf <at> gmail.com>
---

--- a/drivers/scsi/scsi_error.c	2010-09-13 07:07:38.000000000 +0800
+++ b/drivers/scsi/scsi_error.c	2010-11-01 20:56:36.000000000 +0800
 <at>  <at>  -1765,6 +1765,7  <at>  <at>  int scsi_error_handler(void *data)
 			SCSI_LOG_ERROR_RECOVERY(1,
 				printk("Error handler scsi_eh_%d sleeping\n",
 					shost->host_no));
+	yield:
 			schedule();
 			set_current_state(TASK_INTERRUPTIBLE);
 			continue;
 <at>  <at>  -1785,7 +1786,8  <at>  <at>  int scsi_error_handler(void *data)
 				printk(KERN_ERR "Error handler scsi_eh_%d "
 						"unable to autoresume\n",
 						shost->host_no));
-			continue;
+			set_current_state(TASK_INTERRUPTIBLE);
+			goto yield;
 		}

 		if (shost->transportt->eh_strategy_handler)
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
(Continue reading)


Gmane