Re: Debugging scsi abort handling ?

2014-08-29 Thread Hannes Reinecke
On 08/29/2014 06:39 AM, Finn Thain wrote: On Thu, 28 Aug 2014, Hannes Reinecke wrote: What might happen, though, that the command is already dead and gone by the time you're calling -scsi_done() (if you call it after eh_abort). So there might not _be_ a command upon which you can call

Re: Debugging scsi abort handling ?

2014-08-29 Thread Paolo Bonzini
Il 29/08/2014 08:08, Hannes Reinecke ha scritto: No. FAILED for any eh_abort_cmd() means that the TMF hasn't been sent. So the midlayer escalates to the next EH step. The command will only ever be re-issued once EH completes. Then the answer to Hans's question is yes. It is legal to call

Re: Debugging scsi abort handling ?

2014-08-29 Thread Finn Thain
On Fri, 29 Aug 2014, Hannes Reinecke wrote: On 08/29/2014 06:39 AM, Finn Thain wrote: On Thu, 28 Aug 2014, Hannes Reinecke wrote: What might happen, though, that the command is already dead and gone by the time you're calling -scsi_done() (if you call it after eh_abort). So

Re: Debugging scsi abort handling ?

2014-08-29 Thread Hannes Reinecke
On 08/29/2014 12:14 PM, Finn Thain wrote: On Fri, 29 Aug 2014, Hannes Reinecke wrote: On 08/29/2014 06:39 AM, Finn Thain wrote: On Thu, 28 Aug 2014, Hannes Reinecke wrote: What might happen, though, that the command is already dead and gone by the time you're calling -scsi_done() (if you

Re: Debugging scsi abort handling ?

2014-08-29 Thread Hans de Goede
Hi, On 08/29/2014 12:30 PM, Hannes Reinecke wrote: On 08/29/2014 12:14 PM, Finn Thain wrote: On Fri, 29 Aug 2014, Hannes Reinecke wrote: On 08/29/2014 06:39 AM, Finn Thain wrote: On Thu, 28 Aug 2014, Hannes Reinecke wrote: What might happen, though, that the command is already dead and

Re: Debugging scsi abort handling ?

2014-08-28 Thread Hannes Reinecke
On 08/25/2014 01:15 PM, Paolo Bonzini wrote: Il 25/08/2014 12:28, Bart Van Assche ha scritto: From SPC-4: 7.5.8 Control mode page [ ... ] A task aborted status (TAS) bit set to zero specifies that aborted commands shall be terminated by the device server without any response to the

Re: Debugging scsi abort handling ?

2014-08-28 Thread Hannes Reinecke
On 08/26/2014 09:19 PM, Hans de Goede wrote: Hi, On 08/26/2014 08:34 PM, James Bottomley wrote: On Tue, 2014-08-26 at 10:13 +0200, Hans de Goede wrote: Hi, On 08/25/2014 05:41 PM, James Bottomley wrote: On Mon, 2014-08-25 at 13:39 +0200, Paolo Bonzini wrote: Il 25/08/2014 13:26, Hans de

Re: Debugging scsi abort handling ?

2014-08-28 Thread Hans de Goede
Hi, On 08/28/2014 02:10 PM, Hannes Reinecke wrote: On 08/26/2014 09:19 PM, Hans de Goede wrote: Hi, On 08/26/2014 08:34 PM, James Bottomley wrote: On Tue, 2014-08-26 at 10:13 +0200, Hans de Goede wrote: Hi, On 08/25/2014 05:41 PM, James Bottomley wrote: On Mon, 2014-08-25 at 13:39 +0200,

Re: Debugging scsi abort handling ?

2014-08-28 Thread Hans de Goede
Hi, On 08/28/2014 02:17 PM, Paolo Bonzini wrote: Il 28/08/2014 14:04, Hannes Reinecke ha scritto: Setting TASK ABORTED aside, the important part is that an abort can do one of two things: - complete the command, and then eh_abort should return after the driver has noticed the completion

Re: Debugging scsi abort handling ?

2014-08-28 Thread Martin Peschke
On Thu, 2014-08-28 at 14:04 +0200, Hannes Reinecke wrote: On 08/25/2014 01:15 PM, Paolo Bonzini wrote: - abort the command, and then the driver should never call the -scsi_done callback for the Scsi_Cmnd*. In practice we rely on the latter behaviour; when -scsi_done is called while the

Re: Debugging scsi abort handling ?

2014-08-28 Thread Paolo Bonzini
Il 28/08/2014 14:26, Hans de Goede ha scritto: Then, blk_complete_request will do nothing because its call to blk_mark_rq_complete returns true. All this, of course, as long as -scsi_done is called _before_ eh_abort returns. What about calling scsi_done after eh_abort if eh_abort

Re: Debugging scsi abort handling ?

2014-08-28 Thread Hans de Goede
Hi, On 08/28/2014 02:33 PM, Paolo Bonzini wrote: Il 28/08/2014 14:26, Hans de Goede ha scritto: Then, blk_complete_request will do nothing because its call to blk_mark_rq_complete returns true. All this, of course, as long as -scsi_done is called _before_ eh_abort returns. What about

Re: Debugging scsi abort handling ?

2014-08-28 Thread James Bottomley
On Thu, 2014-08-28 at 14:37 +0200, Hans de Goede wrote: Hi, On 08/28/2014 02:33 PM, Paolo Bonzini wrote: Il 28/08/2014 14:26, Hans de Goede ha scritto: Then, blk_complete_request will do nothing because its call to blk_mark_rq_complete returns true. All this, of course, as long as

Re: Debugging scsi abort handling ?

2014-08-28 Thread James Bottomley
On Thu, 2014-08-28 at 14:21 +0200, Hans de Goede wrote: Hi, On 08/28/2014 02:04 PM, Hannes Reinecke wrote: On 08/25/2014 01:15 PM, Paolo Bonzini wrote: Il 25/08/2014 12:28, Bart Van Assche ha scritto: From SPC-4: 7.5.8 Control mode page [ ... ] A task aborted status (TAS) bit set to

Re: Debugging scsi abort handling ?

2014-08-28 Thread Hannes Reinecke
On 08/28/2014 02:37 PM, Hans de Goede wrote: Hi, On 08/28/2014 02:33 PM, Paolo Bonzini wrote: Il 28/08/2014 14:26, Hans de Goede ha scritto: Then, blk_complete_request will do nothing because its call to blk_mark_rq_complete returns true. All this, of course, as long as -scsi_done is called

Re: Debugging scsi abort handling ?

2014-08-28 Thread Hannes Reinecke
On 08/28/2014 02:31 PM, Martin Peschke wrote: On Thu, 2014-08-28 at 14:04 +0200, Hannes Reinecke wrote: On 08/25/2014 01:15 PM, Paolo Bonzini wrote: - abort the command, and then the driver should never call the -scsi_done callback for the Scsi_Cmnd*. In practice we rely on the latter

Re: Debugging scsi abort handling ?

2014-08-28 Thread Paolo Bonzini
Il 28/08/2014 16:17, Hannes Reinecke ha scritto: As mentioned earlier, as soon as SCSI EH is invoked control is assumed to be transferred back to the SCSI midlayer. How the midlayer interprets any return value from the various eh_XX callbacks is immaterial to the LLDD. So even if the

Re: Debugging scsi abort handling ?

2014-08-28 Thread Hannes Reinecke
On 08/28/2014 04:56 PM, Paolo Bonzini wrote: Il 28/08/2014 16:17, Hannes Reinecke ha scritto: As mentioned earlier, as soon as SCSI EH is invoked control is assumed to be transferred back to the SCSI midlayer. How the midlayer interprets any return value from the various eh_XX callbacks is

RE: Debugging scsi abort handling ?

2014-08-28 Thread Elliott, Robert (Server Storage)
-Original Message- From: linux-scsi-ow...@vger.kernel.org [mailto:linux-scsi- ow...@vger.kernel.org] On Behalf Of Hannes Reinecke Sent: Thursday, 28 August, 2014 10:13 AM To: Paolo Bonzini; Hans de Goede; Bart Van Assche; SCSI development list Subject: Re: Debugging scsi abort

Re: Debugging scsi abort handling ?

2014-08-28 Thread Paolo Bonzini
Il 28/08/2014 17:50, Elliott, Robert (Server Storage) ha scritto: Is the block layer prevented from issuing a new command with the same tag before the error handling is finished? Tags are chosen by the LLDs, so it's up to it to pick the right tags. Paolo -- To unsubscribe from this list: send

Re: Debugging scsi abort handling ?

2014-08-28 Thread Christoph Hellwig
On Thu, Aug 28, 2014 at 05:54:50PM +0200, Paolo Bonzini wrote: Il 28/08/2014 17:50, Elliott, Robert (Server Storage) ha scritto: Is the block layer prevented from issuing a new command with the same tag before the error handling is finished? Tags are chosen by the LLDs, so it's up to it to

Re: Debugging scsi abort handling ?

2014-08-28 Thread Finn Thain
On Thu, 28 Aug 2014, James Bottomley wrote: I'm fine with not calling scsi_done from eh_abort, but I cannot guarantee that another thread will not complete the cmnd in the mean time before hand. This is expected. After error handling begins, the block layer ignores all done

Re: Debugging scsi abort handling ?

2014-08-28 Thread Finn Thain
On Thu, 28 Aug 2014, Hannes Reinecke wrote: What might happen, though, that the command is already dead and gone by the time you're calling -scsi_done() (if you call it after eh_abort). So there might not _be_ a command upon which you can call -scsi_done() to start with. Hence any LLDD

RE: Debugging scsi abort handling ?

2014-08-28 Thread Elliott, Robert (Server Storage)
Subject: Re: Debugging scsi abort handling ? On Thu, 28 Aug 2014, James Bottomley wrote: ... Another subtlety is that the abort handler is apparently expected to perform autosense for an aborted command (or wait for that to happen normally) and only return after this has taken place (rather than

Re: Debugging scsi abort handling ?

2014-08-26 Thread Hans de Goede
Hi, On 08/25/2014 05:41 PM, James Bottomley wrote: On Mon, 2014-08-25 at 13:39 +0200, Paolo Bonzini wrote: Il 25/08/2014 13:26, Hans de Goede ha scritto: Thanks Bart and Paolo, your insights into this are greatly appreciated. So with uas there are separate usb transaction for cmd, data in,

Re: Debugging scsi abort handling ?

2014-08-26 Thread James Bottomley
On Tue, 2014-08-26 at 10:13 +0200, Hans de Goede wrote: Hi, On 08/25/2014 05:41 PM, James Bottomley wrote: On Mon, 2014-08-25 at 13:39 +0200, Paolo Bonzini wrote: Il 25/08/2014 13:26, Hans de Goede ha scritto: Thanks Bart and Paolo, your insights into this are greatly appreciated. So

Re: Debugging scsi abort handling ?

2014-08-26 Thread Hans de Goede
Hi, On 08/26/2014 08:34 PM, James Bottomley wrote: On Tue, 2014-08-26 at 10:13 +0200, Hans de Goede wrote: Hi, On 08/25/2014 05:41 PM, James Bottomley wrote: On Mon, 2014-08-25 at 13:39 +0200, Paolo Bonzini wrote: Il 25/08/2014 13:26, Hans de Goede ha scritto: Thanks Bart and Paolo, your

Re: Debugging scsi abort handling ?

2014-08-25 Thread Paolo Bonzini
Il 23/08/2014 16:52, Hans de Goede ha scritto: Hi All, Now that the UAS driver is no longer marked as CONFIG_BROKEN, I'm getting quite a few bug reports about issues with UAS drives. One if the issues is that there might be a number of bugs in the abort handling path, as I don't think

Re: Debugging scsi abort handling ?

2014-08-25 Thread Hans de Goede
Hi, On 08/25/2014 09:20 AM, Paolo Bonzini wrote: Il 23/08/2014 16:52, Hans de Goede ha scritto: Hi All, Now that the UAS driver is no longer marked as CONFIG_BROKEN, I'm getting quite a few bug reports about issues with UAS drives. One if the issues is that there might be a number of bugs

Re: Debugging scsi abort handling ?

2014-08-25 Thread Bart Van Assche
On 08/25/14 10:47, Hans de Goede wrote: I want to see how real hardware deals with abort commands (e.g. does it only acknowledge the abort, or does it also sends a sense code for the actual command). The SCSI specs define whether a reply should be sent if a SCSI command has been aborted. From

Re: Debugging scsi abort handling ?

2014-08-25 Thread Paolo Bonzini
Il 25/08/2014 12:28, Bart Van Assche ha scritto: From SPC-4: 7.5.8 Control mode page [ ... ] A task aborted status (TAS) bit set to zero specifies that aborted commands shall be terminated by the device server without any response to the application client. A TAS bit set to one specifies

Re: Debugging scsi abort handling ?

2014-08-25 Thread Hans de Goede
Hi, On 08/25/2014 01:15 PM, Paolo Bonzini wrote: Il 25/08/2014 12:28, Bart Van Assche ha scritto: From SPC-4: 7.5.8 Control mode page [ ... ] A task aborted status (TAS) bit set to zero specifies that aborted commands shall be terminated by the device server without any response to the

Re: Debugging scsi abort handling ?

2014-08-25 Thread James Bottomley
On Mon, 2014-08-25 at 13:39 +0200, Paolo Bonzini wrote: Il 25/08/2014 13:26, Hans de Goede ha scritto: Thanks Bart and Paolo, your insights into this are greatly appreciated. So with uas there are separate usb transaction for cmd, data in, data out and sense for each tag. At the time of

Re: Debugging scsi abort handling ?

2014-08-24 Thread Hans de Goede
Hi, On 08/23/2014 05:42 PM, Douglas Gilbert wrote: On 14-08-23 10:52 AM, Hans de Goede wrote: Hi All, Now that the UAS driver is no longer marked as CONFIG_BROKEN, I'm getting quite a few bug reports about issues with UAS drives. One if the issues is that there might be a number of bugs in

Re: Debugging scsi abort handling ?

2014-08-24 Thread Hans de Goede
Hi, On 08/23/2014 11:05 PM, James Bottomley wrote: On Sat, 2014-08-23 at 16:52 +0200, Hans de Goede wrote: Hi All, Now that the UAS driver is no longer marked as CONFIG_BROKEN, I'm getting quite a few bug reports about issues with UAS drives. One if the issues is that there might be a

Re: Debugging scsi abort handling ?

2014-08-24 Thread Christoph Hellwig
On Sun, Aug 24, 2014 at 10:46:57AM +0200, Hans de Goede wrote: To be clear I believe there may be a bug or 2 in the uas.c abort code paths, not in the scsi core or sd drivers. But getting more eyes on these definitely makes sense. Should I CC linux-scsi@vger on issues like this, or should I

Debugging scsi abort handling ?

2014-08-23 Thread Hans de Goede
Hi All, Now that the UAS driver is no longer marked as CONFIG_BROKEN, I'm getting quite a few bug reports about issues with UAS drives. One if the issues is that there might be a number of bugs in the abort handling path, as I don't think that was ever tested properly. So I'm wondering is there

Re: Debugging scsi abort handling ?

2014-08-23 Thread Douglas Gilbert
On 14-08-23 10:52 AM, Hans de Goede wrote: Hi All, Now that the UAS driver is no longer marked as CONFIG_BROKEN, I'm getting quite a few bug reports about issues with UAS drives. One if the issues is that there might be a number of bugs in the abort handling path, as I don't think that was

Re: Debugging scsi abort handling ?

2014-08-23 Thread James Bottomley
On Sat, 2014-08-23 at 16:52 +0200, Hans de Goede wrote: Hi All, Now that the UAS driver is no longer marked as CONFIG_BROKEN, I'm getting quite a few bug reports about issues with UAS drives. One if the issues is that there might be a number of bugs in the abort handling path, as I don't