요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
.. SPDX-License-Identifier: GPL-2.0
=========================
LPFC Driver Release Notes
=========================
.. important::
Starting in the 8.0.17 release, the driver began to be targeted strictly
toward the upstream kernel. As such, we removed #ifdefs for older kernels
(pre 2.6.10). The 8.0.16 release should be used if the driver is to be
run on one of the older kernels.
The proposed modifications to the transport layer for FC remote ports
and extended attribute support is now part of the upstream kernel
as of 2.6.12. We no longer need to provide patches for this support,
nor a *full* version which has old an new kernel support.
The driver now requires a 2.6.12 (if pre-release, 2.6.12-rc1) or later
kernel.
Please heed these dependencies....
The following information is provided for additional background on the
history of the driver as we push for upstream acceptance.
Cable pull and temporary device Loss:
In older revisions of the lpfc driver, the driver internally queued i/o
received from the midlayer. In the cases where a cable was pulled, link
jitter, or a device temporarily loses connectivity (due to its cable
being removed, a switch rebooting, or a device reboot), the driver could
hide the disappearance of the device from the midlayer. I/O's issued to
the LLDD would simply be queued for a short duration, allowing the device
to reappear or link come back alive, with no inadvertent side effects
to the system. If the driver did not hide these conditions, i/o would be
errored by the driver, the mid-layer would exhaust its retries, and the
device would be taken offline. Manual intervention would be required to
re-enable the device.
The community supporting kernel.org has driven an effort to remove
internal queuing from all LLDDs. The philosophy is that internal
queuing is unnecessary as the block layer already performs the
queuing. Removing the queues from the LLDD makes a more predictable
and more simple LLDD.
As a potential new addition to kernel.org, the 8.x driver was asked to
have all internal queuing removed. Emulex complied with this request.
In explaining the impacts of this change, Emulex has worked with the
community in modifying the behavior of the SCSI midlayer so that SCSI
devices can be temporarily suspended while transport events (such as
those described) can occur.
The proposed patch was posted to the linux-scsi mailing list. The patch
is contained in the 2.6.10-rc2 (and later) patch kits. As such, this
patch is part of the standard 2.6.10 kernel.
By default, the driver expects the patches for block/unblock interfaces
to be present in the kernel. No #define needs to be set to enable support.
Kernel Support
==============
This source package is targeted for the upstream kernel only. (See notes
at the top of this file). It relies on interfaces that are slowing
migrating into the kernel.org kernel.
At this time, the driver requires the 2.6.12 (if pre-release, 2.6.12-rc1)
kernel.
If a driver is needed for older kernels please utilize the 8.0.16
driver sources.
Patches
=======
Thankfully, at this time, patches are not needed.
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Upstream 전용 release와 kernel 의존성
1-28Release 8.0.17부터 `lpfc` driver는 upstream kernel만 대상으로 삼았으며 2.6.10 이전 kernel용 `#ifdef`를 제거했다. 더 오래된 kernel에서 실행해야 한다면 8.0.16 release를 사용해야 한다.
FC remote port와 extended attribute를 위한 transport layer 변경은 kernel 2.6.12부터 upstream에 포함됐다. 따라서 별도 patch나 구·신 kernel을 함께 지원하는 full version을 제공할 필요가 없어졌다.
Driver는 2.6.12, pre-release라면 2.6.12-rc1 이상의 kernel을 요구한다. 이어지는 내용은 upstream 수용 과정에서의 driver 역사를 설명하기 위한 배경 자료다.
.. SPDX-License-Identifier: GPL-2.0
=========================
LPFC Driver Release Notes
=========================
.. important::
Starting in the 8.0.17 release, the driver began to be targeted strictly
toward the upstream kernel. As such, we removed #ifdefs for older kernels
(pre 2.6.10). The 8.0.16 release should be used if the driver is to be
run on one of the older kernels.
The proposed modifications to the transport layer for FC remote ports
and extended attribute support is now part of the upstream kernel
as of 2.6.12. We no longer need to provide patches for this support,
nor a *full* version which has old an new kernel support.
The driver now requires a 2.6.12 (if pre-release, 2.6.12-rc1) or later
kernel.
Please heed these dependencies....
The following information is provided for additional background on the
history of the driver as we push for upstream acceptance.
Cable 분리와 일시적 device loss
29-61이전 `lpfc`는 midlayer에서 받은 I/O를 내부 queue에 보관했다. Cable 분리, link jitter, switch 또는 device reboot처럼 연결이 잠시 사라져도 LLDD request를 짧게 대기시켜 device나 link가 돌아오도록 했고, mid-layer가 retry를 소진해 device를 offline으로 전환하는 일을 숨길 수 있었다. 그렇지 않으면 수동으로 device를 다시 enable해야 했다.
Kernel.org community는 block layer가 이미 queueing을 수행하므로 LLDD 내부 queue는 불필요하다는 원칙 아래 모든 LLDD에서 내부 queue를 제거했다. 이렇게 하면 LLDD 동작이 단순하고 예측 가능해진다.
Upstream 후보였던 8.x driver도 내부 queue 제거 요청을 받았고 Emulex가 이를 반영했다. 그 영향에 대응해 transport event 동안 SCSI device를 일시 suspend할 수 있도록 SCSI midlayer 동작을 community와 함께 수정했다.
해당 patch는 linux-scsi mailing list에 게시됐고 2.6.10-rc2 이후 patch kit와 표준 2.6.10 kernel에 포함됐다. Driver는 block/unblock interface가 kernel에 존재한다고 기본 가정하며 지원을 켜기 위한 별도 `#define`은 필요 없다.
LLDD 내부 queue 제거 뒤 책임 이동입니다.
Cable pull and temporary device Loss:
In older revisions of the lpfc driver, the driver internally queued i/o
received from the midlayer. In the cases where a cable was pulled, link
jitter, or a device temporarily loses connectivity (due to its cable
being removed, a switch rebooting, or a device reboot), the driver could
hide the disappearance of the device from the midlayer. I/O's issued to
the LLDD would simply be queued for a short duration, allowing the device
to reappear or link come back alive, with no inadvertent side effects
to the system. If the driver did not hide these conditions, i/o would be
errored by the driver, the mid-layer would exhaust its retries, and the
device would be taken offline. Manual intervention would be required to
re-enable the device.
The community supporting kernel.org has driven an effort to remove
internal queuing from all LLDDs. The philosophy is that internal
queuing is unnecessary as the block layer already performs the
queuing. Removing the queues from the LLDD makes a more predictable
and more simple LLDD.
As a potential new addition to kernel.org, the 8.x driver was asked to
have all internal queuing removed. Emulex complied with this request.
In explaining the impacts of this change, Emulex has worked with the
community in modifying the behavior of the SCSI midlayer so that SCSI
devices can be temporarily suspended while transport events (such as
those described) can occur.
The proposed patch was posted to the linux-scsi mailing list. The patch
is contained in the 2.6.10-rc2 (and later) patch kits. As such, this
patch is part of the standard 2.6.10 kernel.
By default, the driver expects the patches for block/unblock interfaces
to be present in the kernel. No #define needs to be set to enable support.
Kernel support 범위
62-76이 source package는 upstream kernel만 대상으로 하며 kernel.org kernel로 이동 중이던 interface에 의존한다. 요구 kernel은 2.6.12, pre-release라면 2.6.12-rc1 이상이다. 이전 kernel용 driver가 필요하면 8.0.16 source를 사용한다.
Kernel Support
==============
This source package is targeted for the upstream kernel only. (See notes
at the top of this file). It relies on interfaces that are slowing
migrating into the kernel.org kernel.
At this time, the driver requires the 2.6.12 (if pre-release, 2.6.12-rc1)
kernel.
If a driver is needed for older kernels please utilize the 8.0.16
driver sources.
추가 patch
77-81이 release note가 작성된 시점에는 추가 patch가 필요하지 않다.
Patches
=======
Thankfully, at this time, patches are not needed.
요약·해설
lpfc.rst:1-81LPFC upstream 의존성, 내부 queue 제거와 일시적 link loss 처리의 역사를 설명합니다.