The Linux SCSI subsystem Status in 2.5

Douglas Gilbert

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts.

For an online copy of the license see www.fsf.org/copyleft/fdl.html.

2002-06-16

Revision History
Revision 1.02002-06-17dpg
first cut

Abstract

This paper is a status report for the Linux SCSI subsystem in the linux kernel development series 2.5 .


Table of Contents

1. Introduction
2. Linux 2.4 Production kernel
3. Changes already made in 2.5
4. Changes underway
5. To do
A. Appendix place holder

Chapter 1. Introduction

This paper is a status report for the Linux SCSI subsystem in the linux kernel development series 2.5 .

The purpose of this paper is that it be used as a basis for various discussions of directions for further developments on the SCSI subsystem.

This paper has been written around the middle of 2002, 6 months into the 2.5 development cycle and assumes there is sufficient time left in the 2.5 development cycle (before code freezes) to make significant changes. Its initial target is people who are meeting for the 2002 Linux developers' summit and the Ottawa Linux Symposium, both held in Ottawa, Canada in the last week of June.

This paper is written in DocBook xml and was last update on 17th June 2002.

Chapter 2. Linux 2.4 Production kernel

The SCSI subsystem in the current Linux 2.4 production kernel is being enhanced and bugs are being fixed. I have maintained a list of changes in the 2.4 series at www.torque.net/scsi/SCSI-2.4-HOWTO/chg24.html. The 2.5 tree forked at lk 2.4.15 at the beginning of 2002. SCSI changes that go into the production kernel post 2.4.15 need to be monitored.

Dave Jones < davej@suse.de > maintains a 2.5 kernel tree based on releases from Linus that "forward ports" lk 2.4 enhancements and fixes. As the SCSI subsystem in 2.5 diverges from 2.4 this becomes harder to do. Although not a major concern yet, some drivers (especially lower level (or HBA) drivers) now have later versions in the 2.4 production tree than the do in the 2.5 development tree (e.g. sym53c8xxx ).

Chapter 3. Changes already made in 2.5

Here is an unordered list of major changes made so far in the 2.5 series:

  • new bio (block) subsystem which caused a major rework of the mid-level queuing logic and the block upper level drivers (i.e. sd and sr). These changes went in early (January 2002) in the development cycle and seem stable now. Documentation at http://lse.sourceforge.net/io/bionotes.txt lse.sourceforge.net/io/bionotes.txt. [Jens <axboe@suse.de>]

  • "big" IO kernel lock (io_request_lock) removed and replaced by the finer grained host_lock. [Jens <axboe@suse.de>]

  • introduction of host_lock required changes in all lower level (HBA) drivers. Most of the commonly used drivers have been changed but, in some cases, not by the driver maintainers (who are probably waiting for 2.5 to stabilize)

  • SCSI device scanning code now can use REPORT LUNS to ask a target which logical units it has. See marc.theaimsgroup.com/?l=linux-kernel&m=101234928026350&w=2 . [1] [Patrick Mansfield <patmans@us.ibm.com>]

  • twin INQUIRY patch: defensive measure to send an INQUIRY requesting a 36 byte response (not 255 bytes) as the first SCSI command to a newly discovered device. If device indicates a longer INQUIRY response available then send second INQUIRY. [Doug <dgilbert@interlog.com>]

  • cleanup sd driver (tabbing, naming, docbook headers) and write mid level to lower level interface document. [Doug <dgilbert@interlog.com>]



[1] [1] If the preceding url yields some strange place in "marc" when you click on it then try cutting and pasting the url into your browser. Those urls have ampersand in them which needs to be escaped in xml. However my browser (Mozilla 0.99) places two "#38;" sequences after the ampersand when it is clicked on?? So much for these new-fangled tools.

Chapter 4. Changes underway

Here is an unordered list of changes underway:

Chapter 5. To do

Convert scsi_bottom_half_handler to a softirq. (suggestion from Matthew Wilcox 17th June 2002)

Appendix A. Appendix place holder