Re: [RFC] libata new EH document

2005-08-31 Thread Tejun Heo
Hello, Jeff. On Wed, Aug 31, 2005 at 10:22:17PM -0400, Jeff Garzik wrote: > Tejun Heo wrote: > > IMHO, it's a good idea to maintain one qc to one ATA/ATAPI command > >mapping as long as possible. And, in the suggested framework, it's > >guaranteed that no o

Re: [RFC] libata new EH document

2005-08-31 Thread Tejun Heo
Luben Tuikov wrote: On 08/30/05 06:26, Tejun Heo wrote: Albert Lee wrote: 4. Corresponding scmd's result code is set to SAM_STAT_CHECK_CONDITION and qc->scsidone() callback is called directly. As we haven't filled sense data, scsi_determine_disposition() will return FAILE

Re: [RFC] SCSI EH document

2005-08-30 Thread Tejun Heo
Hi, Luben. Luben Tuikov wrote: On 08/29/05 05:14, Tejun Heo wrote: Both all the list-heads need to be cleared, otherwise there may be list corruption next time the element is added to the list_head. scmd->eh_entry is never used as list head. It's always used as list en

Re: [RFC] libata new EH document

2005-08-30 Thread Tejun Heo
Albert Lee wrote: 4. Corresponding scmd's result code is set to SAM_STAT_CHECK_CONDITION and qc->scsidone() callback is called directly. As we haven't filled sense data, scsi_determine_disposition() will return FAILED and SCSI EH will be scheduled. Note that as we directly call qc-

Re: [RFC] SCSI EH document

2005-08-29 Thread Tejun Heo
Hi, Jeff. Jeff Garzik wrote: Tejun Heo wrote: Both all the list-heads need to be cleared, otherwise there may be list corruption next time the element is added to the list_head. scmd->eh_entry is never used as list head. It's always used as list entry. So, technically, it n

Re: [RFC] SCSI EH document

2005-08-29 Thread Tejun Heo
Hi, Jeff. Jeff Garzik wrote: Tejun Heo wrote: Hello, fellow SCSI/ATA developers. This is the first draft of SCSI EH document. This document tries to describe how SCSI EH works and what choirs should be done to maintain SCSI midlayer integrity. It's intended that this document c

[RFC] SCSI EH document

2005-08-25 Thread Tejun Heo
Hello, fellow SCSI/ATA developers. This is the first draft of SCSI EH document. This document tries to describe how SCSI EH works and what choirs should be done to maintain SCSI midlayer integrity. It's intended that this document can be used as reference for implementing either fine-grained E

Re: libata error handling

2005-08-18 Thread Tejun Heo
Hi, Jeff. Jeff Garzik wrote: Tejun, In an email I cannot find anymore, you asked why I was interested in converting libata to use the fine-grained EH hooks in the SCSI layer, rather than continued with the current ->eh_strategy_handler() method. Several reasons: 1) The fine-grained hook

Re: [PATCH 3] sata: restore sg on setup failure

2005-08-06 Thread Tejun Heo
I forgot to restore sg->length on setup failure. This patch adds it. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> Index: work/drivers/scsi/libata-core.c === --- work.orig/drivers/scsi/libata-core.c2005-08

Rd: [PATCH 2/2] sata: implement ATAPI alignment adjustment

2005-08-06 Thread Tejun Heo
drivers is using ata_for_each_sg() to iterate over sg table. This patch also renames qc->sg to qc->__sg to signify that it cannot be iterated directly. This patch is a rewrite of Jeff's implementation. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> Index: work/dr

Re: [PATCH 1/2] sata: fix sata_sx4 dma_prep to not use sg->length

2005-08-06 Thread Tejun Heo
sata_sx4 directly references sg->length to calculate total_len in pdc20621_dma_prep(). This is incorrect as dma_map_sg() could have merged multiple sg's into one and, in such case, sg->length doesn't reflect true size of the entry. This patch makes it use sg_dma_len(sg). Sign

Re: [RFC][PATCH] libata ATAPI alignment

2005-08-06 Thread Tejun Heo
On Fri, Jul 29, 2005 at 01:06:54AM -0400, Jeff Garzik wrote: > > So, one thing that's terribly ugly about SATA ATAPI is that we need to > pad DMA transfers to the next 32-bit boundary, if the length is not > evenly divisible by 4. > > Messing with the scatterlist to accomplish this is terribly ug

Re: calling scsi_adjust_queue_depth() during I/O...

2005-08-05 Thread Tejun Heo
On Fri, Aug 05, 2005 at 05:59:06PM +0200, Jens Axboe wrote: > On Fri, Aug 05 2005, Andrew Vasquez wrote: > > On Fri, 05 Aug 2005, Tejun Heo wrote: > > > > > > Oops, forget about the previous mail. Above patch make it into the > > > > tree and it's

Re: calling scsi_adjust_queue_depth() during I/O...

2005-08-05 Thread Tejun Heo
On Fri, Aug 05, 2005 at 11:32:07AM -0500, James Bottomley wrote: > On Fri, 2005-08-05 at 21:33 +0900, Tejun Heo wrote: > > Here's the fix. It basically revives bqt->real_max_depth sans > > allocation optimization in init_tag_map. I've also added a comment > &

Re: calling scsi_adjust_queue_depth() during I/O...

2005-08-05 Thread Tejun Heo
> Oops, forget about the previous mail. Above patch make it into the > tree and it's the source of the problem. My git HEAD was pointing at > the latest update but I haven't updated my cache, so I was looking at > the old source tree. My apologies for the hassle and the bug. > > Original c

Re: calling scsi_adjust_queue_depth() during I/O...

2005-08-05 Thread Tejun Heo
Tejun Heo wrote: Hello, Andrew. Hello, Jens. On Fri, Aug 05, 2005 at 09:57:52AM +0200, Jens Axboe wrote: On Thu, Aug 04 2005, Andrew Vasquez wrote: All, While adding support for the new change_queue_depth/type() callbacks, static int qla2x00_change_queue_depth(struct

Re: calling scsi_adjust_queue_depth() during I/O...

2005-08-05 Thread Tejun Heo
Hello, Andrew. Hello, Jens. On Fri, Aug 05, 2005 at 09:57:52AM +0200, Jens Axboe wrote: > On Thu, Aug 04 2005, Andrew Vasquez wrote: > > All, > > > > While adding support for the new change_queue_depth/type() callbacks, > > > > static int > > qla2x00_change_queue_depth(struct scsi_devi

Re: SCSI layer a stumbling block for true SATA hotplug

2005-07-16 Thread Tejun Heo
Hi, Lukasz. Lukasz Kosewski wrote: Hello all, I'm currently working on a project to get a true disk-hotplug subsystem working in libata, experimenting with Promise SATA150 Tx2 Plus and SATAII150 Tx2 Plus controllers. I am very near a 'beta' release of my patches to this mailing list, howe

Re: [PATCH scsi-misc-2.6 03/05] scsi: make scsi_queue_insert() use blk_requeue_request()

2005-04-20 Thread Tejun Heo
Hello, James. This is the modified patch with the comment (slightly modified). With this patch, the next patch in this patchset complains about line offset but it's okay. Thanks. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> Index: scsi-reqfn-export/drivers/scsi

Re: [PATCH scsi-misc-2.6 03/05] scsi: make scsi_queue_insert() use blk_requeue_request()

2005-04-20 Thread Tejun Heo
James Bottomley wrote: > On Thu, 2005-04-21 at 09:20 +0900, Tejun Heo wrote: > >> Hello, James. >> >>James Bottomley wrote: >> >>>On Wed, 2005-04-20 at 08:15 +0900, Tejun Heo wrote: >>> >>> >>>>-* Insert this command at th

Re: [PATCH scsi-misc-2.6 03/05] scsi: make scsi_queue_insert() use blk_requeue_request()

2005-04-20 Thread Tejun Heo
Hello, James. James Bottomley wrote: On Wed, 2005-04-20 at 08:15 +0900, Tejun Heo wrote: - * Insert this command at the head of the queue for it's device. - * It will go before all other commands that are already in the queue. - * - * NOTE: there is magic here about the way the que

Re: [PATCH scsi-misc-2.6 01/05] scsi: make blk layer set REQ_SOFTBARRIER when a request is dispatched

2005-04-20 Thread Tejun Heo
Hello, guys. Jens Axboe wrote: On Wed, Apr 20 2005, Nick Piggin wrote: Jens Axboe wrote: On Wed, Apr 20 2005, Nick Piggin wrote: I guess this could be one use of 'reordering' after a requeue. Yeah, or perhaps the io scheduler might determine that a request has higher prio than a requeued one. I

Re: [PATCH scsi-misc-2.6 01/05] scsi: make blk layer set REQ_SOFTBARRIER when a request is dispatched

2005-04-20 Thread Tejun Heo
Nick Piggin wrote: > On Wed, 2005-04-20 at 16:40 +0900, Tejun Heo wrote: > >> Hello, Jens. >> >>On Wed, Apr 20, 2005 at 08:30:10AM +0200, Jens Axboe wrote: >> >>>Do it on requeue, please - not on the initial spotting of the request. >> >>

Re: [PATCH scsi-misc-2.6 01/05] scsi: make blk layer set REQ_SOFTBARRIER when a request is dispatched

2005-04-20 Thread Tejun Heo
in blk_requeue_request(). Other patches apply cleanly with this patch or the original one and the end result is the same, so take your pick. :-) Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> Index: scsi-reqfn-export/drivers/block/e

Re: [PATCH scsi-misc-2.6 01/05] scsi: make blk layer set REQ_SOFTBARRIER when a request is dispatched

2005-04-19 Thread Tejun Heo
Jens Axboe wrote: On Wed, Apr 20 2005, Tejun Heo wrote: 01_scsi_blk_make_started_requests_ordered.patch Reordering already started requests is without any real benefit and causes problems if the request has its driver-specific resources allocated (as in SCSI). This patch

Re: [PATCH scsi-misc-2.6 01/05] scsi: make blk layer set REQ_SOFTBARRIER when a request is dispatched

2005-04-19 Thread Tejun Heo
blem. The only affected driver other than SCSI is i2o_block. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> elevator.c |8 1 files changed, 4 insertions(+), 4 deletions(-) Index: scsi-reqfn-export/dri

Re: [PATCH scsi-misc-2.6 02/05] scsi: remove REQ_SPECIAL in scsi_init_io()

2005-04-19 Thread Tejun Heo
. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi_lib.c |4 +--- 1 files changed, 1 insertion(+), 3 deletions(-) Index: scsi-reqfn-export/drivers/scsi/scsi_lib.c === --- scsi-reqfn-export.orig/drivers/scsi/scsi_lib.c 2

Re: [PATCH scsi-misc-2.6 03/05] scsi: make scsi_queue_insert() use blk_requeue_request()

2005-04-19 Thread Tejun Heo
prototype of the function is added right above scsi_queue_insert(). This is temporary, as later requeue path consolidation patchset removes scsi_queue_insert(). By adding temporary prototype, we can do away with unnecessarily moving functions. Signed-off-by: Tejun Heo

Re: [PATCH scsi-misc-2.6 05/05] scsi: remove requeue feature from blk_insert_request()

2005-04-19 Thread Tejun Heo
blk_insert_request(). Only special requests should be queued with blk_insert_request(). All requeueing should go through blk_requeue_request(). Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> drivers/block/ll_rw_blk.c | 20 ++-- drivers/block/paride/pd.c |2 +- drivers

Re: [PATCH scsi-misc-2.6 04/05] scsi: make scsi_requeue_request() use blk_requeue_request()

2005-04-19 Thread Tejun Heo
patch makes scsi_queue_insert() use blk_requeue_request(). As REQ_SPECIAL means special requests and REQ_SOFTBARRIER is automatically handled by blk layer now, no flag needs to be set. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi_lib.c |7 ++- 1 files c

[PATCH scsi-misc-2.6 00/05] scsi: change REQ_SPECIAL/REQ_SOFTBARRIER usages

2005-04-19 Thread Tejun Heo
Hello, James, Jens and Christoph. This patchset is reworked version of the previous REQ_SPECIAL update patchset. Patches #01 and #05 update blk layer. The other patches update SCSI midlayer. I've opted for automatically setting REQ_SOFTBARRIER together with REQ_STARTED in elv_next_request().

Re: [PATCH scsi-misc-2.6 01/04] scsi: make scsi_send_eh_cmnd use its own timer instead of scmd->eh_timeout

2005-04-19 Thread Tejun Heo
timeout would be good. Reworked such that timeout race window is kept at minimal level as pointed out by James Bottomley. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> drivers/scsi/scsi_error.c | 26 -- include/scsi/scsi_host.h |1 + 2 files c

Re: [PATCH scsi-misc-2.6 02/04] scsi: remove spurious if tests from scsi_eh_{times_out|done}

2005-04-19 Thread Tejun Heo
02_scsi_timer_eh_timer_remove_spurious_if.patch If tests which check if eh_action isn't NULL in both functions are always true. Remove the if's. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi_error.c |6 ++ 1 files changed, 2 insertions(+), 4 del

Re: [PATCH scsi-misc-2.6 04/04] scsi: remove unnecessary scsi_delete_timer() call in scsi_reset_provider()

2005-04-19 Thread Tejun Heo
04_scsi_timer_remove_delete_timer_from_reset_provider.patch scsi_reset_provider() calls scsi_delete_timer() on exit which isn't necessary. Remove it. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi_error.c |1 - 1 files changed, 1 deletion(-) Index: scsi-r

Re: [PATCH scsi-misc-2.6 03/04] scsi: remove a timer race in scsi_queue_insert()

2005-04-19 Thread Tejun Heo
() and ignore the return value. This results in race with timer expiration. Remove scsi_delete_timer() call from scsi_queue_insert() and make the caller delete timer and check the return value. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi.c

[PATCH scsi-misc-2.6 00/04] scsi: misc timer fixes (reworked)

2005-04-19 Thread Tejun Heo
Hello, James. This patchset contains the following patches from the previous timer update patchset. 02_scsi_timer_eh_timer_fix.patch 03_scsi_timer_dispatch_race_fix.patch 04_scsi_timer_remove_delete_timer_from_reset_provider.patch eh_timer_fix is reworked as you suggested and split into tw

Re: [PATCH scsi-misc-2.6 02/07] scsi: make scsi_send_eh_cmnd use its own timer instead of scmd->eh_timeout

2005-04-18 Thread Tejun Heo
James Bottomley wrote: > On Tue, 2005-04-19 at 07:31 +0900, Tejun Heo wrote: > >> The original code also uses timer pending status as a signal that >>command completed normally in scsi_eh_done() function, and the same >>race also exists in the original code, no matter what

Re: [PATCH scsi-misc-2.6 02/07] scsi: make scsi_send_eh_cmnd use its own timer instead of scmd->eh_timeout

2005-04-18 Thread Tejun Heo
Hello, James. On Mon, Apr 18, 2005 at 10:33:21AM -0500, James Bottomley wrote: > On Mon, 2005-04-11 at 03:45 +0900, Tejun Heo wrote: > > scmd->eh_timeout is used to resolve the race between command > > completion and timeout. However, during error handling, > &g

Re: Regarding posted scsi midlyaer patchsets

2005-04-18 Thread Tejun Heo
Hello, James. Hello, Jens. James Bottomley wrote: > On Mon, 2005-04-18 at 07:41 +0900, Tejun Heo wrote: > >> As it's been almost a week since I posted scsi midlayer patchsets and >>haven't heard anything yet, I've been wondering what's going on. Are &

[PATCH scsi-misc-2.6 00/04] scsi: scsi_request_fn() reimplementation

2005-04-12 Thread Tejun Heo
Hello, guys. This patchset reimplements scsi_request_fn(). All prep's are moved into prep_fn and all state checking/issueing are moved into scsi_reqfn. prep_fn() only terminates/defers unpreparable requests and all requests are terminated through scsi midlayer. [ Start of patch descriptions

Re: [PATCH scsi-misc-2.6 04/04] scsi: remove unnecessary scsi_wait_req_end_io()

2005-04-12 Thread Tejun Heo
round and soon to be replaced, so ignore it for now. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi_lib.c | 11 --- 1 files changed, 11 deletions(-) Index: scsi-reqfn-export/drivers/scsi/scsi_lib.c === ---

Re: [PATCH scsi-misc-2.6 02/04] scsi: move request preps in other places into prep_fn()

2005-04-12 Thread Tejun Heo
owing requeue path consoildation patchset. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi.c | 30 -- scsi_lib.c | 17 + 2 files changed, 17 insertions(+), 30 deletions(-) Index: scsi-reqfn-export/drivers/

Re: [PATCH scsi-misc-2.6 01/04] scsi: consolidate error handling out of scsi_init_io() into scsi_prep_fn()

2005-04-12 Thread Tejun Heo
impl patch. ret value checking was changed to switch() as in James's patch. Also, kill: comment is copied from James's patch. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi_lib.c | 46 +++--- 1 files changed, 31 insertions(

Re: [PATCH scsi-misc-2.6 03/04] scsi: make scsi_requeue_request() use blk_requeue_request()

2005-04-12 Thread Tejun Heo
Hello, Christoph Hellwig. On Mon, Apr 11, 2005 at 01:44:19PM +0100, Christoph Hellwig wrote: > > + cmd->request->flags |= REQ_SOFTBARRIER; > > + > > + spin_lock_irqsave(q->queue_lock, flags); > > + blk_requeue_request(q, cmd->request); > > + spin_unlock_irqrestore(q->queue_lock, flags); >

Re: [PATCH scsi-misc-2.6 00/04] scsi: scsi_request_fn() reimplementation

2005-04-12 Thread Tejun Heo
Tejun Heo wrote: Hello, guys. This patchset reimplements scsi_request_fn(). All prep's are moved into prep_fn and all state checking/issueing are moved into scsi_reqfn. prep_fn() only terminates/defers unpreparable requests and all requests are terminated through scsi midlayer. This pat

Re: [PATCH scsi-misc-2.6 07/07] scsi: consolidate scsi_cmd_retry() calls

2005-04-12 Thread Tejun Heo
scsi_retry_command() more symmetrical with scsi_finish_command(). Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi.c |5 - scsi_error.c | 31 +++ 2 files changed, 7 insertions(+), 29 deletions(-) Index: scsi-reqfn-export/drivers/scsi/

Re: [PATCH scsi-misc-2.6 06/07] scsi: add cmd->result clearing

2005-04-12 Thread Tejun Heo
06_scsi_requeue_reset_result.patch cmd->result wasn't cleared on requeue or reprep. Clear it. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi.c |9 + scsi_lib.c |1 + 2 files changed, 6 insertions(+), 4 deletions(-) Index: scsi-reqfn-export/drive

Re: [PATCH scsi-misc-2.6 04/07] scsi: remove scsi_queue_insert()

2005-04-12 Thread Tejun Heo
04_scsi_requeue_remove_scsi_queue_insert.patch scsi_queue_insert() now has no user left. Kill it. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi_lib.c | 76 scsi_priv.h |1 2 files changed, 77 deletions(-)

Re: [PATCH scsi-misc-2.6 02/07] scsi: make scsi_retry_command() use scsi_requeue_command()

2005-04-12 Thread Tejun Heo
also makes scsi_retry_command() symmetric with scsi_finish_command() in how it unbusies the command. Also as there's nothing to return, make the function void. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi.c |8 ++-- scsi_priv.h |2 +- 2 files

Re: [PATCH scsi-misc-2.6 01/07] scsi: update and make public scsi_requeue_command()

2005-04-12 Thread Tejun Heo
function scsi_requeue_command_reprep() is defined and used for the original users of scsi_requeue_command(). Using a wrapper function for reprep cases is suggested by Christoph Hellwig. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi_lib.c

[PATCH scsi-misc-2.6 00/07] scsi: requeue path consolidation

2005-04-12 Thread Tejun Heo
Hello again, guys. This is the last patchset and assumes that all previous patchsets are applied. This patchset conolidates requeue paths such that all requeue after command issue goes through scsi_requeue_command(). Requeueing due to unifinished bytes goes through scsi_requeue_command_reprep()

Re: [PATCH scsi-misc-2.6 05/07] scsi: move scsi_init_cmd_errh() from request_fn to prep_fn.

2005-04-12 Thread Tejun Heo
ff-by: Tejun Heo <[EMAIL PROTECTED]> scsi_lib.c |5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) Index: scsi-reqfn-export/drivers/scsi/scsi_lib.c === --- scsi-reqfn-export.orig/drivers/scsi/scsi_lib.c 2005-0

Re: [PATCH scsi-misc-2.6 03/07] scsi: replace scsi_queue_insert() usages with scsi_retry_command()

2005-04-12 Thread Tejun Heo
device_blocked on ADD_TO_MLQUEUE case in scsi_softirq(). Open code device_blocked setting and replace scsi_queue_insert() with scsi_retry_command() in both cases. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi.c |7 --- scsi_error.c |2 +- 2

Re: [PATCH scsi-misc-2.6 03/04] scsi: reimplement scsi_request_fn()

2005-04-12 Thread Tejun Heo
Oops, I forgot to mention that reqfn is reformatted mostly as suggested by Chritoph Hellwig. Sorry. On Tue, Apr 12, 2005 at 07:33:03PM +0900, Tejun Heo wrote: > 03_scsi_reqfn_reimplementation.patch > > This patch rewrites scsi_request_fn(). scsi_dispatch_cmd() is >

Re: [PATCH scsi-misc-2.6 03/04] scsi: reimplement scsi_request_fn()

2005-04-12 Thread Tejun Heo
This is the only requeue path. Note that scsi_kill_requests() still terminates requests using blk layer. The path is circular-ref workaround and soon to be replaced, so ignore it for now. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi.c

Re: [PATCH scsi-misc-2.6 02/04] scsi: make scsi_queue_insert() use blk_requeue_request()

2005-04-10 Thread Tejun Heo
the function is added right above scsi_queue_insert(). This is temporary, as later requeue path consolidation patchset removes scsi_queue_insert(). By adding temporary prototype, we can do away with unnecessary changes. Signed-off-by: Tejun Heo <[EMAIL PROTEC

Re: [PATCH scsi-misc-2.6 04/04] scsi: remove requeue feature from blk_insert_request()

2005-04-10 Thread Tejun Heo
blk_insert_request(). Only special requests should be queued with blk_insert_request(). All requeueing should go through blk_requeue_request(). Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> drivers/block/ll_rw_blk.c | 20 ++-- drivers/block/paride/pd.c |2 +- drivers

Re: [PATCH scsi-misc-2.6 03/04] scsi: make scsi_requeue_request() use blk_requeue_request()

2005-04-10 Thread Tejun Heo
. This patch makes scsi_requeue_request() use blk_requeue_request() and explicitly set REQ_SOFTBARRIER. As REQ_SPECIAL now means special requests, the flag is not set on requeue. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi_lib.c |8 +++- 1 files chan

[PATCH scsi-misc-2.6 00/04] scsi: clear REQ_SPECIAL/REQ_SOFTBARRIER usages

2005-04-10 Thread Tejun Heo
Hello, James. This patchset is split up of REQ_SPECIAL update patches (#01-02) of previous patchset posted on March 31. Explicit setting of REQ_SOFTBARRIER in scsi_init_io() is added. This patchset makes REQ_SPECIAL mean that the request is a special request and REQ_SOFTBARRIER setting explic

Re: [PATCH scsi-misc-2.6 01/04] scsi: replace REQ_SPECIAL with REQ_SOFTBARRIER in scsi_init_io()

2005-04-10 Thread Tejun Heo
for half-prepp'ed requests. So, replace REQ_SPECIAL with REQ_SOFTBARRIER. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi_lib.c |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: scsi-reqfn-export/drivers/scsi

Re: [PATCH scsi-misc-2.6 05/07] scsi: unexport scsi_{add|delete}_timer()

2005-04-10 Thread Tejun Heo
ete}_timer() routines and also removes @complete argument from scsi_add_timer(). The change makes the use of scsi_times_out() confined in scsi_error.c, so move it upward such that no prototype is needed and make it static. Signed-off-by: Tejun Heo <[EMAIL PROTECTE

Re: [PATCH scsi-misc-2.6 02/07] scsi: make scsi_send_eh_cmnd use its own timer instead of scmd->eh_timeout

2005-04-10 Thread Tejun Heo
by making scsi_send_eh_cmnd() use its own timer. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi_error.c | 64 ++- scsi_priv.h |1 2 files changed, 20 insertions(+), 45 deletions(-) Index: scsi-reqfn-export/drivers/sc

Re: [PATCH scsi-misc-2.6 03/07] scsi: remove a timer race in scsi_queue_insert()

2005-04-10 Thread Tejun Heo
() and ignore the return value. This results in race with timer expiration. Remove scsi_delete_timer() call from scsi_queue_insert() and make the caller delete timer and check the return value. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi.c

Re: [PATCH scsi-misc-2.6 06/07] scsi: Delete scsi_{add|delete}_timer() from scsi_mid_low_api.txt

2005-04-10 Thread Tejun Heo
06_scsi_timer_update_api_doc.patch As scsi_{add|delete}_timer() got unexported, remove them from the API doc. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi_mid_low_api.txt | 41 - 1 files changed, 41 deletions(-) Index: scsi

Re: [PATCH scsi-misc-2.6 07/07] scsi: make reuse of SCSI cmd timer strict

2005-04-10 Thread Tejun Heo
07_scsi_timer_strict_reuse.patch SCSI cmd timer shouldn't be reused while it's active. Make sure that the unused condition is marked with eh_timeout->function = NULL and BUG() active reuse path. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]>

Re: [PATCH scsi-misc-2.6 04/07] scsi: remove unnecessary scsi_delete_timer() call in scsi_reset_provider()

2005-04-10 Thread Tejun Heo
04_scsi_timer_remove_delete_timer_from_reset_provider.patch scsi_reset_provider() calls scsi_delete_timer() on exit which isn't necessary. Remove it. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi_error.c |1 - 1 files changed, 1 deletion(-) Index: scsi-r

Re: [PATCH scsi-misc-2.6 01/07] scsi: make aic7xxx use its own timer instead of scmd->eh_timeout

2005-04-10 Thread Tejun Heo
cmd->eh_timeout. Suggested by Christoph Hellwig. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> aic79xx_osm.c | 24 aic7xxx_osm.c | 24 2 files changed, 32 insertions(+), 16 deletions(-) Index: scsi-reqfn-export/drivers/scsi/aic7xxx/a

[PATCH scsi-misc-2.6 00/07] scsi: timer updates

2005-04-10 Thread Tejun Heo
Hello, James, Jens and Christoph. This patchset removes misuses of scmd->eh_timeout and unexports SCSI timer interface such that no one can misuse it anymore. #02 assumes that the preceding scsi_send_eh_cmnd() patch is applied. Tested and worked for me. The following bugs are fixed. * Race

[PATCH scsi-misc-2.6] scsi: scsi_send_eh_cmnd() cleanup

2005-04-09 Thread Tejun Heo
Hello, James. This patch makes scsi_send_eh_cmnd() use sdev and shost instead of referencing them through scmd-> everytime. Following timer cleanup patchset assumes this patch is applied. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> Index: scsi-reqfn-export/drivers/scsi/scs

[PATCH linux-misc-2.6] scsi: remove volatile from scsi data structures

2005-04-09 Thread Tejun Heo
d by Christoph. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> Index: scsi-reqfn-export/include/scsi/scsi_device.h === --- scsi-reqfn-export.orig/include/scsi/scsi_device.h 2005-04-10 13:03:14.0 +0900 +++ scsi-reqfn

Re: [OOPS] 2.6.11 - NMI lockup with CFQ scheduler

2005-04-06 Thread Tejun Heo
Jens Axboe wrote: On Wed, Apr 06 2005, Arjan van de Ven wrote: @@ -324,6 +334,7 @@ issue_flush_fn *issue_flush_fn; prepare_flush_fn*prepare_flush_fn; end_flush_fn*end_flush_fn; + release_queue_data_fn *release_queue_data_fn; /*

Re: [PATCH scsi-misc-2.6 08/13] scsi: move request preps in other places into prep_fn()

2005-04-04 Thread Tejun Heo
Hello, James. James Bottomley wrote: On Fri, 2005-04-01 at 14:25 +0900, Tejun Heo wrote: Ah.. with later requeue path consolidation patches, all requests get their sense buffer cleared during requeueing, which, IMHO, is more logical. Moving scsi_init_cmd_errh() should come after the patch. Sorry

Question about scsi_device_online() usage in mptscsih

2005-04-01 Thread Tejun Heo
Hello, Eric. Hello, James. I've been working on new SCSI state model and was checking on scsi_device_online() users. As the state model is going to change, I need to audit device state usages in lldd's and I'm having difficult time understanding why scsi_device_online() is used in mptscsih.

Re: [PATCH scsi-misc-2.6 07/13] scsi: move error handling out of scsi_init_io() into scsi_prep_fn()

2005-04-01 Thread Tejun Heo
Greetings, James. :-) On Fri, Apr 01, 2005 at 12:23:37PM -0600, James Bottomley wrote: > On Thu, 2005-03-31 at 18:08 +0900, Tejun Heo wrote: > > When scsi_init_io() returns BLKPREP_DEFER or BLKPREP_KILL, > > it's supposed to free resources itself. This patch > &

Re: [PATCH scsi-misc-2.6 01/13] scsi: don't use blk_insert_request() for requeueing

2005-04-01 Thread Tejun Heo
Greetings, James. On Fri, Apr 01, 2005 at 12:09:48PM -0600, James Bottomley wrote: > On Fri, 2005-04-01 at 14:01 +0900, Tejun Heo wrote: > > > Well, REQ_SPECIAL is the signal to the mid-layer that we've allocated > > > the resources necessary to process the comma

Re: [PATCH scsi-misc-2.6 10/13] scsi: rewrite scsi_request_fn()

2005-03-31 Thread Tejun Heo
Hello, Christoph. On Thu, Mar 31, 2005 at 12:14:16PM +0100, Christoph Hellwig wrote: > the changes look good to me (although I haven't tested any of your patches > yet), but the code flow is rather confusing. What do you think about > the not even compile version of scsi_request_fn() below that

Re: [PATCH scsi-misc-2.6 11/13] scsi: add reprep arg to scsi_requeue_command() and make it public

2005-03-31 Thread Tejun Heo
Hello, Christoph. On Thu, Mar 31, 2005 at 11:32:03AM +0100, Christoph Hellwig wrote: > > - * Arguments: q - queue to operate on > > - * cmd - command that may need to be requeued. > > + * Arguments: cmd - command that may need to be requeued. > > + * reprep

Re: [PATCH scsi-misc-2.6 09/13] scsi: in scsi_prep_fn(), remove bogus comments & clean up

2005-03-31 Thread Tejun Heo
Hello, James. On Thu, Mar 31, 2005 at 12:02:20PM -0600, James Bottomley wrote: > On Thu, 2005-03-31 at 18:08 +0900, Tejun Heo wrote: > > -* come up when there is a medium error. We have to treat > > -* these two cases differently. We differentiate by looking > > -

Re: [PATCH scsi-misc-2.6 08/13] scsi: move request preps in other places into prep_fn()

2005-03-31 Thread Tejun Heo
Hello, James. On Thu, Mar 31, 2005 at 12:07:44PM -0600, James Bottomley wrote: > On Thu, 2005-03-31 at 18:08 +0900, Tejun Heo wrote: > > Move request preparations scattered in scsi_request_fn() and > > scsi_dispatch_cmd() into scsi_prep_fn(). > > > &

Re: [PATCH scsi-misc-2.6 08/13] scsi: move request preps in other places into prep_fn()

2005-03-31 Thread Tejun Heo
Hello, Christoph. On Thu, Mar 31, 2005 at 11:20:40AM +0100, Christoph Hellwig wrote: > > +/* > > + * Macro to determine the size of SCSI command. This macro takes vendor > > + * unique commands into account. SCSI commands in groups 6 and 7 are > > + * vendor unique and we will depend upon the com

Re: [PATCH scsi-misc-2.6 05/13] scsi: remove a timer race from scsi_queue_insert() and cleanup timer

2005-03-31 Thread Tejun Heo
Hello, Chritoph. On Thu, Mar 31, 2005 at 11:13:53AM +0100, Christoph Hellwig wrote: > > /* Queue the command and wait for it to complete */ > > /* Abuse eh_timeout in the scsi_cmnd struct for our purposes */ > > init_timer(&cmd->eh_timeout); > > + cmd

Re: [PATCH scsi-misc-2.6 04/13] scsi: remove meaningless volatile qualifiers from structure definitions

2005-03-31 Thread Tejun Heo
Hello, Chritoph. On Thu, Mar 31, 2005 at 11:11:45AM +0100, Christoph Hellwig wrote: > On Thu, Mar 31, 2005 at 06:08:10PM +0900, Tejun Heo wrote: > > struct list_headsiblings; /* list of all devices on this host */ > > struct list_headsame_target_siblings; /* j

Re: [PATCH scsi-misc-2.6 02/13] scsi: don't turn on REQ_SPECIAL on sgtable allocation failure.

2005-03-31 Thread Tejun Heo
Hello, James. On Thu, Mar 31, 2005 at 11:53:45AM -0600, James Bottomley wrote: > On Thu, 2005-03-31 at 18:08 +0900, Tejun Heo wrote: > > Don't turn on REQ_SPECIAL on sgtable allocation failure. This > > was the last place where REQ_SPECIAL is turned on for nor

Re: [PATCH scsi-misc-2.6 01/13] scsi: don't use blk_insert_request() for requeueing

2005-03-31 Thread Tejun Heo
Hello, James. On Thu, Mar 31, 2005 at 11:53:20AM -0600, James Bottomley wrote: > On Thu, 2005-03-31 at 18:07 +0900, Tejun Heo wrote: > > 01_scsi_no_REQ_SPECIAL_on_requeue.patch > > > > blk_insert_request() has 'reinsert' argument, which, when set, &

Re: [PATCH scsi-misc-2.6 01/13] scsi: don't use blk_insert_request() for requeueing

2005-03-31 Thread Tejun Heo
On Thu, Mar 31, 2005 at 11:12:11AM +0100, Christoph Hellwig wrote: > On Thu, Mar 31, 2005 at 06:07:55PM +0900, Tejun Heo wrote: > > 01_scsi_no_REQ_SPECIAL_on_requeue.patch > > > > blk_insert_request() has 'reinsert' argument, which, when set, > > tur

Re: [PATCH scsi-misc-2.6 07/13] scsi: move error handling out of scsi_init_io() into scsi_prep_fn()

2005-03-31 Thread Tejun Heo
urred when sgtable allocation failed and device_busy == 0. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi_lib.c | 23 --- 1 files changed, 12 insertions(+), 11 deletions(-) Index: scsi-export/drivers/scsi

Re: [PATCH scsi-misc-2.6 13/13] scsi: consolidate scsi_cmd_retry() calls in scsi_error.c

2005-03-31 Thread Tejun Heo
13_scsi_consolidate_cmd_retry_calls_in_eh.patch Replace all scsi_setup_cmd_retry() calls in scsi_error.c with a call just above scsi_finish_command() in scsi_eh_flush_done_q(). Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi_error.c | 25 + 1

Re: [PATCH scsi-misc-2.6 10/13] scsi: rewrite scsi_request_fn()

2005-03-31 Thread Tejun Heo
ue_ready(). * req->special == NULL test removed. This just can't happen, and even if it ever happens, scsi_request_fn() will deterministically oops. * Requests which gets deferred during host-prep are requeued using blk_requeue_request(). This i

Re: [PATCH scsi-misc-2.6 12/13] scsi: replace scsi_queue_insert() with scsi_requeue_command()

2005-03-31 Thread Tejun Heo
make scsi_eh_flush_done_q() use scsi_retry_command(). While at it, remove leading and tailing empty comment lines from trivial comments. As scsi_queue_insert() has no users now, kill it. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi.c

Re: [PATCH scsi-misc-2.6 11/13] scsi: add reprep arg to scsi_requeue_command() and make it public

2005-03-31 Thread Tejun Heo
11_scsi_make_requeue_command_public.patch Add reprep argument to scsi_requeue_command(), remove redundant q argument, add code to set cmd->state/owner, and make the function public. This patch is preparation for consolidating requeue paths. Signed-off-by: Te

Re: [PATCH scsi-misc-2.6 08/13] scsi: move request preps in other places into prep_fn()

2005-03-31 Thread Tejun Heo
scsi_request_fn() No invalid request reaches scsi_request_fn() anymore. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi.c | 30 -- scsi_lib.c | 25 +++-- 2 files changed, 19 insertions(+), 36 deletions(-) Index: scsi-export/d

Re: [PATCH scsi-misc-2.6 09/13] scsi: in scsi_prep_fn(), remove bogus comments & clean up

2005-03-31 Thread Tejun Heo
09_scsi_prep_fn_comment_update.patch Remove bogus comments from scsi_prep_fn() and clean up a bit. While at it, remove leading and tailing empty comment lines for one or two liners to make the code more concise. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi

Re: [PATCH scsi-misc-2.6 06/13] scsi: remove meaningless scsi_cmnd->serial_number_at_timeout field

2005-03-31 Thread Tejun Heo
ways equals ->serial_number and ->serial_number doesn't have any special meaning anymore, update comments above ->serial_number accordingly. Once we remove all uses of this field from all lldd's, this field should go. Signed-off-by: Tejun Heo <[EMAIL PROT

Re: [PATCH scsi-misc-2.6 02/13] scsi: don't turn on REQ_SPECIAL on sgtable allocation failure.

2005-03-31 Thread Tejun Heo
02_scsi_no_REQ_SPECIAL_on_sgtable_allocation_failure.patch Don't turn on REQ_SPECIAL on sgtable allocation failure. This was the last place where REQ_SPECIAL is turned on for normal requests. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi_lib.c |4 +-

Re: [PATCH scsi-misc-2.6 04/13] scsi: remove meaningless volatile qualifiers from structure definitions

2005-03-31 Thread Tejun Heo
tency and clarity. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> scsi_device.h |3 ++- scsi_host.h | 10 -- 2 files changed, 10 insertions(+), 3 deletions(-) Index: scsi-export/include/scsi/scsi_device.h === --- s

Re: [PATCH scsi-misc-2.6 03/13] scsi: remove unused scsi_cmnd->internal_timeout field

2005-03-31 Thread Tejun Heo
03_scsi_remove_internal_timeout.patch scsi_cmnd->internal_timeout field doesn't have any meaning anymore. Kill the field. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> drivers/scsi/advansys.c |2 -- drivers/scsi/pci2000.c|4 ++-- drivers/scsi/scsi.

Re: [PATCH scsi-misc-2.6 05/13] scsi: remove a timer race from scsi_queue_insert() and cleanup timer

2005-03-31 Thread Tejun Heo
. The condition is always true and the test is somewhat misleading. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> aic7xxx/aic79xx_osm.c |1 + aic7xxx/aic7xxx_osm.c |1 + scsi.c| 10 ++ scsi_error.c | 25 -

Re: [PATCH scsi-misc-2.6 01/13] scsi: don't use blk_insert_request() for requeueing

2005-03-31 Thread Tejun Heo
e() are moved upward unchanged. Signed-off-by: Tejun Heo <[EMAIL PROTECTED]> drivers/block/ll_rw_blk.c | 20 +-- drivers/block/paride/pd.c |2 drivers/block/sx8.c |4 drivers/scsi/scsi_lib.c | 238 +++--- include/linux/blkdev.h|

[PATCH scsi-misc-2.6 00/13] scsi: scsi_request_fn() rewrite & stuff

2005-03-31 Thread Tejun Heo
Hello, James. Hello, Jens. This patchset is consisted of three parts #01-#06: Misc updates. Except for #02, all patches are from the last patchset. #05 has been updated. #07-#10: Rewrite scsi_request_fn(). #11-#13: Consolidate requeue paths & cleanup scsi_cmd_retry() calls

htejun@gmail.com: sym53c8xx: gfp flag bug

2005-03-29 Thread Tejun Heo
(This is re-post, I mistyped linux-scsi address in the first mail. Sorry, Matthew.) Hello, Matthew Wilcox. The following might_sleep() message appears during booting on scsi-misc-2.6. Quick glance shows that sym_alloc_lcb_tags() uses GFP_KERNEL blindly. sym0: <1010-33> rev 0x1 at pci :

<    2   3   4   5   6   7   8   >