← Documents Documentation/scsi/dpti.rst GitHub 원문 ↗

Linux 6.18.37 · SCSI

Adaptec dpti Driver

Adaptec I2O RAID driver의 이력, TODO, ioctl interface와 제한을 설명합니다.

Source pathDocumentation/scsi/dpti.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

dpti.rst:1-92

Adaptec I2O RAID driver의 이력, TODO, ioctl interface와 제한을 설명합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 .. SPDX-License-Identifier: GPL-2.0
2
3 ===================
4 Adaptec dpti driver
5 ===================
6
7 Redistribution and use in source form, with or without modification, are
8 permitted provided that redistributions of source code must retain the
9 above copyright notice, this list of conditions and the following disclaimer.
10
11 This software is provided ``as is`` by Adaptec and
12 any express or implied warranties, including, but not limited to, the
13 implied warranties of merchantability and fitness for a particular purpose,
14 are disclaimed. In no event shall Adaptec be
15 liable for any direct, indirect, incidental, special, exemplary or
16 consequential damages (including, but not limited to, procurement of
17 substitute goods or services; loss of use, data, or profits; or business
18 interruptions) however caused and on any theory of liability, whether in
19 contract, strict liability, or tort (including negligence or otherwise)
20 arising in any way out of the use of this driver software, even if advised
21 of the possibility of such damage.
22
23 This driver supports the Adaptec I2O RAID and DPT SmartRAID V I2O boards.
24
25 Credits
26 =======
27
28 The original linux driver was ported to Linux by Karen White while at
29 Dell Computer. It was ported from Bob Pasteur's (of DPT) original
30 non-Linux driver. Mark Salyzyn and Bob Pasteur consulted on the original
31 driver.
32
33 2.0 version of the driver by Deanna Bonds and Mark Salyzyn.
34
35 History
36 =======
37
38 The driver was originally ported to linux version 2.0.34
39
40 ==== ==========================================================================
41 V2.0 Rewrite of driver. Re-architectured based on i2o subsystem.
42 This was the first full GPL version since the last version used
43 i2osig headers which were not GPL. Developer Testing version.
44 V2.1 Internal testing
45 V2.2 First released version
46
47 V2.3 Changes:
48
49 - Added Raptor Support
50 - Fixed bug causing system to hang under extreme load with
51 - management utilities running (removed GFP_DMA from kmalloc flags)
52
53 V2.4 First version ready to be submitted to be embedded in the kernel
54
55 Changes:
56
57 - Implemented suggestions from Alan Cox
58 - Added calculation of resid for sg layer
59 - Better error handling
60 - Added checking underflow conditions
61 - Added DATAPROTECT checking
62 - Changed error return codes
63 - Fixed pointer bug in bus reset routine
64 - Enabled hba reset from ioctls (allows a FW flash to reboot and use
65 the new FW without having to reboot)
66 - Changed proc output
67 ==== ==========================================================================
68
69 TODO
70 ====
71 - Add 64 bit Scatter Gather when compiled on 64 bit architectures
72 - Add sparse lun scanning
73 - Add code that checks if a device that had been taken offline is
74 now online (at the FW level) when test unit ready or inquiry
75 command from scsi-core
76 - Add proc read interface
77 - busrescan command
78 - rescan command
79 - Add code to rescan routine that notifies scsi-core about new devices
80 - Add support for C-PCI (hotplug stuff)
81 - Add ioctl passthru error recovery
82
83 Notes
84 =====
85 The DPT card optimizes the order of processing commands. Consequently,
86 a command may take up to 6 minutes to complete after it has been sent
87 to the board.
88
89 The files dpti_ioctl.h dptsig.h osd_defs.h osd_util.h sys_info.h are part of the
90 interface files for Adaptec's management routines. These define the structures used
91 in the ioctls. They are written to be portable. They are hard to read, but I need
92 to use them 'as is' or I can miss changes in the interface.
93

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

재배포 조건과 지원 board

1-25

Source form은 수정 여부와 관계없이 재배포할 수 있지만 copyright notice, 조건 목록과 disclaimer를 유지해야 한다.

Software는 Adaptec이 `as is`로 제공하며 merchantability·특정 목적 적합성 보증을 부인한다. 대체품·service, 사용·data·profit 손실, business interruption을 포함한 직접·간접·부수·특별·징벌·결과 손해에 대해 contract, strict liability, tort 어느 이론에서도 책임지지 않는다.

Driver는 Adaptec I2O RAID와 DPT SmartRAID V I2O board를 지원한다.

dpti 범위
항목내용
재배포Notice·조건·disclaimer 유지
제공As is
보증·책임부인
HardwareAdaptec I2O RAID, DPT SmartRAID V

License 조건과 hardware 대상입니다.

.. SPDX-License-Identifier: GPL-2.0

===================
Adaptec dpti driver
===================

Redistribution and use in source form, with or without modification, are
permitted provided that redistributions of source code must retain the
above copyright notice, this list of conditions and the following disclaimer.

This software is provided ``as is`` by Adaptec and
any express or implied warranties, including, but not limited to, the
implied warranties of merchantability and fitness for a particular purpose,
are disclaimed. In no event shall Adaptec be
liable for any direct, indirect, incidental, special, exemplary or
consequential damages (including, but not limited to, procurement of
substitute goods or services; loss of use, data, or profits; or business
interruptions) however caused and on any theory of liability, whether in
contract, strict liability, or tort (including negligence or otherwise)
arising in any way out of the use of this driver software, even if advised
of the possibility of such damage.

This driver supports the Adaptec I2O RAID and DPT SmartRAID V I2O boards.

Credits

Linux port와 2.0 rewrite

26-38

Karen White가 Dell Computer 재직 중 Bob Pasteur의 DPT non-Linux driver를 Linux로 port했다. Mark Salyzyn과 Bob Pasteur가 original driver에 자문했고, Deanna Bonds와 Mark Salyzyn이 2.0 version을 작성했다.

dpti 계보
DPT non-Linux driverKaren White Linux portSalyzyn·Pasteur 자문Bonds·Salyzyn 2.0 rewrite

Original code에서 Linux 2.0 rewrite까지입니다.

=======

The original linux driver was ported to Linux by Karen White while at
Dell Computer.  It was ported from Bob Pasteur's (of DPT) original
non-Linux driver.  Mark Salyzyn and Bob Pasteur consulted on the original
driver.

2.0 version of the driver by Deanna Bonds and Mark Salyzyn.

History
=======

The driver was originally ported to linux version 2.0.34

V2.0~V2.4 변경 이력

39-67

Original port 대상은 Linux 2.0.34다. V2.0은 I2O subsystem 기반으로 재설계했으며 non-GPL `i2osig` header를 제거해 최초의 완전한 GPL version이 됐다. V2.1은 internal test, V2.2는 첫 release다.

V2.3은 Raptor 지원을 추가하고 management utility와 extreme load가 겹칠 때 hang을 일으키던 `kmalloc`의 `GFP_DMA` flag를 제거했다.

V2.4는 kernel 제출 준비 version이다. Alan Cox 제안, sg residual 계산, error·underflow·DATAPROTECT 검사, return code 변경, bus reset pointer bug 수정, ioctl HBA reset을 통한 firmware flash 후 재기동, proc output 변경을 포함한다.

dpti history
Version변경
V2.0I2O 재설계, full GPL
V2.1Internal testing
V2.2첫 release
V2.3Raptor, GFP_DMA hang 수정
V2.4resid·error·ioctl reset·proc 개선

Version별 핵심 변경입니다.


==== ==========================================================================
V2.0 Rewrite of driver.  Re-architectured based on i2o subsystem.
     This was the first full GPL version since the last version used
     i2osig headers which were not GPL.  Developer Testing version.
V2.1 Internal testing
V2.2 First released version

V2.3 Changes:

     - Added Raptor Support
     - Fixed bug causing system to hang under extreme load with
     - management utilities running (removed GFP_DMA from kmalloc flags)

V2.4 First version ready to be submitted to be embedded in the kernel

     Changes:

     - Implemented suggestions from Alan Cox
     - Added calculation of resid for sg layer
     - Better error handling
     - Added checking underflow conditions
     - Added DATAPROTECT checking
     - Changed error return codes
     - Fixed pointer bug in bus reset routine
     - Enabled hba reset from ioctls (allows a FW flash to reboot and use
       the new FW without having to reboot)
     - Changed proc output
==== ==========================================================================

미구현 항목과 command 지연

68-92

TODO는 64-bit scatter-gather, sparse LUN scan, offline device 재확인, proc read, busrescan·rescan command, 새 device를 scsi-core에 알리는 rescan, CompactPCI hotplug, ioctl passthrough error recovery다.

DPT card가 command 처리 순서를 최적화하므로 board로 보낸 command가 완료되기까지 최대 6분 걸릴 수 있다.

`dpti_ioctl.h`, `dptsig.h`, `osd_defs.h`, `osd_util.h`, `sys_info.h`는 Adaptec management ioctl 구조를 정의하는 portable interface file이다. 읽기 어려워도 interface 변경을 놓치지 않도록 as-is로 사용해야 한다.

dpti TODO
영역항목
Addressing64-bit S/G, sparse LUN
DiscoveryOffline 재확인, busrescan, rescan
Integrationscsi-core 새 device 통지
PlatformC-PCI hotplug
ioctlPassthrough error recovery
procRead interface

미완성 기능을 영역별로 묶습니다.


TODO
====
- Add 64 bit Scatter Gather when compiled on 64 bit architectures
- Add sparse lun scanning
- Add code that checks if a device that had been taken offline is
  now online (at the FW level) when test unit ready or inquiry
  command from scsi-core
- Add proc read interface
- busrescan command
- rescan command
- Add code to rescan routine that notifies scsi-core about new devices
- Add support for C-PCI (hotplug stuff)
- Add ioctl passthru error recovery

Notes
=====
The DPT card optimizes the order of processing commands.  Consequently,
a command may take up to 6 minutes to complete after it has been sent
to the board.

The files dpti_ioctl.h dptsig.h osd_defs.h osd_util.h sys_info.h are part of the
interface files for Adaptec's management routines.  These define the structures used
in the ioctls.  They are written to be portable.  They are hard to read, but I need
to use them 'as is' or I can miss changes in the interface.