[2449] in linux-scsi channel archive

home help back first fref pref prev next nref lref last post

foo_command() recursion vs foo_queuecommand()

daemon@ATHENA.MIT.EDU (Andrea Arcangeli)
Sat Sep 13 04:04:36 1997

Date: 	Fri, 12 Sep 1997 16:35:37 +0200 (CEST)
From: Andrea Arcangeli <arcangeli@mbox.queen.it>
Reply-To: Andrea Arcangeli <arcangeli@mbox.queen.it>
To: linux-scsi@vger.rutgers.edu

I am haking ppa driver. For some motivation I need to use the command
interface instead of the queueucommand interface (that, in the case of
ppa, need to be handled by a timer interrupt). Doing this I get recursion
and the kernel soft reset.

1. There' s a way to avoid recursion and be allowed to use ppa_command()
instead of ppa_queuecommand()? The strange think is that if I use the
command interface in read-only all is fine.  Only when I try to write on
disk I get the reset. 

The recursion is something similar:

do_sd_request()
 requeue_sd_request()*
  scsi_do_cmd()
   internal_cmnd()
    ppa_command()
    scsi_done()
     rw_intr()
      requeue_sd_request()*
       scsi_do_cmd()
        ..
         ..
          ..............reset()..


Obviously using ppa_queuecommand(), that return without wait for other
calls, when the scsi_done() is executed all precedent calls are just
returned and all is fine in writing too.

2. The writing is slower that the reading. The reset in writing maybe
caused by a major timeout?

3. Does other scsi lowlevel device works fine with command and
queuecommand interfaces?

Andrea Arcangeli

FYI, Andrea in Italy is a male name.
(I am tired of being mistaken for a female :)




home help back first fref pref prev next nref lref last post