Re: Linux Virtual SCSI HBAs and Virtual disks

Randy Dunlap
2007-01-23T16:40:46Z

On Wed, 24 Jan 2007 00:11:47 +1100 Aboo Valappil wrote:

> Hi Stefan Richter,
>
> Thanks everyone for their advice on this. As per your advice, I did the
> following when the last user space target serving the scsi_host quits,
> the queue command will do the following on the new commands coming through.
>
> sc->result = DID_NO_CONNECT << 16;
> sc->resid = sc->request_bufflen;
> set_sensedata_commfailure(sc); ---------------------
> This sets the sense buffer with Device Not ready/Logical Unit
> Commincation failure.
> done(sc);
>
> The scsi_host will remain in the kernel. Let the EH thread handle the
> queued commands (If any). If the user target wants to reconnects to the
> same scsi_host, it can do so (Just re-run the user space target again
> with same command line paramters). This connection from newly started
> target will make the HBA healthy again and start serving IO.
>
> I implemented a new IOCTL to remove this scsi_host if the user
> process really needs to. This removal will first finish all the SCSI
> commands (With the above status results) queued on the scsi_host (If at
> all) and then remove the scsi_host. Also the module unload will delete
> all the scsi_hosts created after finishing all the commands queued with
> the above status and sense information.
>
> I also implemented passing of sense code information from user space to
> sense_buffer. A little more work needs to be done on this.
> Also, I need to make sure that all the locking used inside is correctly
> implemented to prevent dead locks and improve efficiency.
>
> The new version is available http://vscsihba.aboo.org/vscsihbav204.gz

404: NOT FOUND

---
~Randy