Input/output error after installed elrepo driver

Hello.
Newly installed Almalinux8.6 running on an old Dell (PE R210 II). The intended new role of this machine is to work with an external LTO8 deck.

The legacy Dell SAS HBA yields from ‘lspci -nn’:
01:00.0 Serial Attached SCSI controller [0107]: Broadcom / LSI SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] [1000:0072] (rev 03)

From elrepo I obtained the driver pkg dd-mpt3sas-39.100.00.00-1.el8_6.elrepo.iso.
I mounted the iso as a loopback device and pulled the rpm and installed using:
’ sudo rpm -i kmod-mpt3sas-39.100.00.00-1.el8_6.elrepo.x86_64.rpm’

Upon reboot the system created tape devices (e.g. /dev/st0) and I was able to mount a formatted LTFS tape and do things like ‘ls’. But upon trying to copy content from tape I get and input/output error. Same error when using ‘cp’ and ‘dd’. I didn’t try others.

Any suggestions? Many thanks for your time.

The output of ‘modinfo mpt3sas’ yields:
filename: /lib/modules/4.18.0-372.9.1.el8.x86_64/extra/mpt3sas/mpt3sas.ko
alias: mpt2sas
version: 39.100.00.00
license: GPL
description: LSI MPT Fusion SAS 3.0 Device Driver
author: Avago Technologies MPT-FusionLinux.pdl@avagotech.com
rhelversion: 8.6
srcversion: AE9937FCEF105BF369AEB64
alias: pci:v00001000d000000E7svsdbcsci*
alias: pci:v00001000d000000E4svsdbcsci*
alias: pci:v00001000d000000E6svsdbcsci*
alias: pci:v00001000d000000E5svsdbcsci*
alias: pci:v00001000d000000B2svsdbcsci*
alias: pci:v00001000d000000E3svsdbcsci*
alias: pci:v00001000d000000E0svsdbcsci*
alias: pci:v00001000d000000E2svsdbcsci*
alias: pci:v00001000d000000E1svsdbcsci*
alias: pci:v00001000d000000D1svsdbcsci*
alias: pci:v00001000d000000ACsvsdbcsci*
alias: pci:v00001000d000000ABsvsdbcsci*
alias: pci:v00001000d000000AAsvsdbcsci*
alias: pci:v00001000d000000AFsvsdbcsci*
alias: pci:v00001000d000000AEsvsdbcsci*
alias: pci:v00001000d000000ADsvsdbcsci*
alias: pci:v00001000d000000C3svsdbcsci*
alias: pci:v00001000d000000C2svsdbcsci*
alias: pci:v00001000d000000C1svsdbcsci*
alias: pci:v00001000d000000C0svsdbcsci*
alias: pci:v00001000d000000C8svsdbcsci*
alias: pci:v00001000d000000C7svsdbcsci*
alias: pci:v00001000d000000C6svsdbcsci*
alias: pci:v00001000d000000C5svsdbcsci*
alias: pci:v00001000d000000C4svsdbcsci*
alias: pci:v00001000d000000C9svsdbcsci*
alias: pci:v00001000d00000095svsdbcsci*
alias: pci:v00001000d00000094svsdbcsci*
alias: pci:v00001000d00000091svsdbcsci*
alias: pci:v00001000d00000090svsdbcsci*
alias: pci:v00001000d00000097svsdbcsci*
alias: pci:v00001000d00000096svsdbcsci*
alias: pci:v00001000d0000007Esvsdbcsci*
alias: pci:v00001000d000002B1svsdbcsci*
alias: pci:v00001000d000002B0svsdbcsci*
alias: pci:v00001000d0000006Esvsdbcsci*
alias: pci:v00001000d00000087svsdbcsci*
alias: pci:v00001000d00000086svsdbcsci*
alias: pci:v00001000d00000085svsdbcsci*
alias: pci:v00001000d00000084svsdbcsci*
alias: pci:v00001000d00000083svsdbcsci*
alias: pci:v00001000d00000082svsdbcsci*
alias: pci:v00001000d00000081svsdbcsci*
alias: pci:v00001000d00000080svsdbcsci*
alias: pci:v00001000d00000065svsdbcsci*
alias: pci:v00001000d00000064svsdbcsci*
alias: pci:v00001000d00000077svsdbcsci*
alias: pci:v00001000d00000076svsdbcsci*
alias: pci:v00001000d00000074svsdbcsci*
alias: pci:v00001000d00000072svsdbcsci*
alias: pci:v00001000d00000070svsdbcsci*
depends: scsi_transport_sas,raid_class
name: mpt3sas
vermagic: 4.18.0-372.9.1.el8.x86_64 SMP mod_unload modversions
sig_id: PKCS#7
signer: ELRepo.org Secure Boot Key
sig_key: E9:D4:71:CF:B4:FE:13:6C
sig_hashalgo: sha256
signature: 29:EF:21:13:C0:2F:AE:8A:3A:A5:FC:B8:5C:3E:3F:31:90:7C:29:06:
53:C1:0C:6B:D3:86:FE:C8:FD:C3:7D:24:35:91:70:F6:3D:75:D7:D0:
4A:F1:91:2A:F7:D9:EF:B7:54:B2:0D:24:87:93:6C:CD:45:E0:90:22:
C9:04:7A:EF:FB:C2:FB:1D:78:CD:AB:4B:D5:62:01:DF:92:2C:C5:EE:
D7:FD:2D:BA:6A:B5:E4:65:CE:E9:2A:EA:04:D4:86:B8:4C:6B:A1:F0:
AC:B7:83:B3:A1:88:1A:35:9E:B5:DF:37:F3:08:EE:74:1F:85:87:EA:
72:D8:98:97:BC:2D:0F:04:0B:A9:90:8B:27:E0:68:E2:CC:B3:15:A2:
6B:47:25:3D:A3:E5:2D:60:A2:05:C6:51:86:A9:F7:3A:52:E7:C1:15:
B9:2F:51:95:8B:B5:E7:A8:3B:8F:59:E4:92:BE:FB:B0:49:C3:2F:FD:
90:7B:FD:55:92:06:9E:E1:B6:2D:2A:49:E2:61:7C:EF:22:10:13:88:
79:83:3D:93:74:04:2F:99:B9:52:79:A7:2A:94:19:54:97:BD:CB:7C:
E9:FD:77:AB:19:5C:BB:97:98:EF:E2:AE:CF:E8:38:78:D7:A3:A5:CB:
20:47:A3:A8:C3:ED:E6:C3:59:06:39:47:92:3D:20:85:F9:A3:25:47:
C3:F4:88:C5:19:21:57:0B:5C:CE:26:CB:CF:4D:00:A3:D7:CD:4C:81:
A3:A9:AB:9B:80:AC:7C:3A:D5:C6:1B:6B:70:4A:3D:E7:F1:76:0B:B6:
2C:5E:E5:9A:1D:FD:75:DB:FD:6C:E7:79:BA:2D:76:09:86:25:5D:25:
B7:6D:0A:62:A6:92:46:EF:57:C8:37:9B:44:2D:49:57:1A:FD:F8:00:
4D:84:6C:BA:7E:63:2E:1E:C1:A4:68:03:19:B7:0A:CE:EF:02:21:B3:
B9:6E:77:99:43:FF:6F:BC:8F:99:08:63:6E:F1:21:E3:D7:D0:CC:5E:
1D:DF:CC:DC:A7:9C:11:2B:D7:2A:DF:B5:91:1A:C7:36:60:DD:C6:F0:
61:24:DB:CF:F2:D6:49:01:0D:25:77:E8:DF:A8:23:A6:83:32:5D:D2:
AB:4E:74:E8:64:0F:B8:F9:8E:C3:F9:16:CE:61:BF:A3:AE:87:9F:D8:
E7:94:C1:32:96:F8:43:44:27:2C:88:8D:07:0F:44:4B:C7:86:DB:65:
F1:5C:0B:CA:75:41:C9:AE:52:D5:FE:38:7B:02:6F:BE:68:92:B0:79:
F5:4F:C6:C8:E9:87:DA:07:BA:0D:16:A6:59:66:40:BD:64:10:E6:92:
AA:3A:6B:36:40:A7:94:C4:77:6B:9F:94
parm: logging_level: bits for enabling additional logging info (default=0)
parm: max_sectors:max sectors, range 64 to 32767 default=32767 (ushort)
parm: missing_delay: device missing delay , io missing delay (array of int)
parm: max_lun: max lun, default=16895 (ullong)
parm: hbas_to_enumerate: 0 - enumerates both SAS 2.0 & SAS 3.0 generation HBAs
1 - enumerates only SAS 2.0 generation HBAs
2 - enumerates only SAS 3.0 generation HBAs (default=0) (ushort)
parm: diag_buffer_enable: post diag buffers (TRACE=1/SNAPSHOT=2/EXTENDED=4/default=0) (int)
parm: disable_discovery: disable discovery (int)
parm: prot_mask: host protection capabilities mask, def=7 (int)
parm: enable_sdev_max_qd:Enable sdev max qd as can_queue, def=disabled(0) (bool)
parm: multipath_on_hba:Multipath support to add same target device
as many times as it is visible to HBA from various paths
(by default:
SAS 2.0 & SAS 3.0 HBA - This will be disabled,
SAS 3.5 HBA - This will be enabled) (int)
parm: host_tagset_enable:Shared host tagset enable/disable Default: enable(1) (int)
parm: max_queue_depth: max controller queue depth (int)
parm: max_sgl_entries: max sg entries (int)
parm: msix_disable: disable msix routed interrupts (default=0) (int)
parm: smp_affinity_enable:SMP affinity feature enable/disable Default: enable(1) (int)
parm: max_msix_vectors: max msix vectors (int)
parm: irqpoll_weight:irq poll weight (default= one fourth of HBA queue depth) (int)
parm: mpt3sas_fwfault_debug: enable detection of firmware fault and halt firmware - (default=0)
parm: perf_mode:Performance mode (only for Aero/Sea Generation), options:
0 - balanced: high iops mode is enabled &
interrupt coalescing is enabled only on high iops queues,
1 - iops: high iops mode is disabled &
interrupt coalescing is enabled on all queues,
2 - latency: high iops mode is disabled &
interrupt coalescing is enabled on all queues with timeout value 0xA,
default - default perf_mode is ‘balanced’ (int)

Looks like you have installed the right kmod package and the driver was loaded successfully.

What output do you see with:

# mt -f /dev/st0 status

Also, do you see any useful info / hint in dmesg?

Hello. I appreciate that you’re looking into this.

Without an LTO tape inserted into the drive
[~]$ sudo mt -f /dev/st0 status

SCSI 2 tape drive:

File number=-1, block number=-1, partition=0.

Tape block size 0 bytes. Density code 0x0 (default).

Soft error count since last status=0

General status bits on (50000):

DR_OPEN IM_REP_EN

With a pre-written tape inserted into the drive (but not mounted using LTFS):

[~]$ sudo mt -f /dev/st0 status

SCSI 2 tape drive:

File number=0, block number=0, partition=0.

Tape block size 0 bytes. Density code 0x5e (no translation).

Soft error count since last status=0

General status bits on (41010000):

BOT ONLINE IM_REP_EN

With no tape inserted:

[~]$ sudo dmesg | grep st0
[ 2.524190] scsi host0: Fusion MPT SAS Host
[152797.700249] st 0:0:0:0: Attached scsi tape st0
[152797.700252] st 0:0:0:0: st0: try direct i/o: yes (alignment 4 B)

After tape inserted but not mounted:
[~]$ sudo dmesg | grep st0

[ 2.524190] scsi host0: Fusion MPT SAS Host

[152797.700249] st 0:0:0:0: Attached scsi tape st0

[152797.700252] st 0:0:0:0: st0: try direct i/o: yes (alignment 4 B)

[158335.182173] st 0:0:0:0: [st0] Block limits 1 - 8388608 bytes.

Does that last line suggest an incompatibility with overall size of the tape, or the block soze used when writing the tape?

Adding further information:

During mount of the tape using the LTFS single drive pkg from IBM v2.4:

a294 LTFS14000I LTFS starting, LTFS version 2.4.5.0 (10502), log level 2.

a294 LTFS14058I LTFS Format Specification version 2.4.0.

a294 LTFS14104I Launched by "/opt/ibm/ltfssde/bin/ltfs -o devname=/dev/st0 /mnt/

ltfs8".

a294 LTFS14105I This binary is built for Linux (x86_64).

a294 LTFS14106I GCC version is 8.3.1 20191121 (Red Hat 8.3.1-5).

a294 LTFS17087I Kernel version: Linux version 4.18.0-372.9.1.el8.x86_64 (mockbui

ld@142f1156fd3c4b36be0752fc556cdb86) (gcc version 8.5.0 20210514 (Red Hat 8.5.0-

  1. (GCC)) #1 SMP Tue May 10 08:57:35 EDT 2022 i386.

a294 LTFS17089I Distribution: AlmaLinux release 8.6 (Sky Tiger).

a294 LTFS17089I Distribution: AlmaLinux release 8.6 (Sky Tiger).

a294 LTFS17089I Distribution: NAME=“AlmaLinux”.

a294 LTFS17089I Distribution: AlmaLinux release 8.6 (Sky Tiger).

a294 LTFS17089I Distribution: AlmaLinux release 8.6 (Sky Tiger).

a294 LTFS14063I Sync type is “time”, Sync time is 300 sec.

a294 LTFS17085I Plugin: Loading “sg” tape backend.

a294 LTFS17085I Plugin: Loading “unified” iosched backend.

a294 LTFS14095I Set the tape device write-anywhere mode to avoid cartridge eject

ion.

a294 LTFS30209I Opening a device through sg-ibmtape driver (/dev/st0).

a294 LTFS30250I Opened the SCSI tape device 0.0.0.-1 (/dev/st0).

a294 LTFS30207I Vendor ID is IBM .

a294 LTFS30208I Product ID is ULTRIUM-HH8 .

a294 LTFS30214I Firmware revision is MA71.

a294 LTFS30215I Drive serial is 10WT123770.

a294 LTFS30285I The reserved buffer size of /dev/st0 is 1048576.

a294 LTFS30294I Setting up timeout values from RSOC.

a294 LTFS17160I Maximum device block size is 1048576.

a294 LTFS11330I Loading cartridge.

a294 LTFS30252I Logical block protection is disabled.

a294 LTFS11332I Load successful.

a294 LTFS17157I Changing the drive setting to write-anywhere mode.

a294 LTFS11005I Mounting the volume.

a294 LTFS30252I Logical block protection is disabled.

a294 LTFS30205I READ_ATTR (0x8c) returns -20501.

a294 LTFS30263I READ_ATTR returns Invalid Field in CDB (-20501) /dev/st0.

a294 LTFS30233I Cannot read attribute (-20501).

a294 LTFS11336I The attribute does not exist. Ignore the expected error.

a294 LTFS17095W The index read from the tape uses an old version of the LTFS for

mat. If this tape is modified, the index upgrades format version to 2.4.0 from 2

.2.0.

a294 LTFS30205I READ_ATTR (0x8c) returns -20501.

a294 LTFS30263I READ_ATTR returns Invalid Field in CDB (-20501) /dev/st0.

a294 LTFS30205I READ_ATTR (0x8c) returns -20501.

a294 LTFS30263I READ_ATTR returns Invalid Field in CDB (-20501) /dev/st0.
a294 LTFS30233I Cannot read attribute (-20501).
a294 LTFS30205I READ_ATTR (0x8c) returns -20501.
a294 LTFS30263I READ_ATTR returns Invalid Field in CDB (-20501) /dev/st0.
a294 LTFS30233I Cannot read attribute (-20501).
a294 LTFS17227I Tape attribute: Vendor = QUANTUM .
a294 LTFS17227I Tape attribute: Application Name = LTFS
.
a294 LTFS17227I Tape attribute: Application Version = 2.2.2 .
a294 LTFS17227I Tape attribute: Medium Label = 000800L8.
a294 LTFS17228I Tape attribute: Text Localization ID = 0x00.
a294 LTFS17227I Tape attribute: Barcode = .
a294 LTFS17227I Tape attribute: Application Format Version = 2.2.0 .
a294 LTFS17228I Tape attribute: Volume Lock Status = 0x00.
a294 LTFS17227I Tape attribute: Media Pool name = .
a294 LTFS11031I Volume mounted successfully. NO_BARCODE : Gen = 827 / (a, 5) →
(b, 15418806) / 10WT123770.
a294 LTFS14111I Initial setup completed successfully.
a294 LTFS14112I Invoke ‘mount’ command to check the result of final setup.
a294 LTFS14113I Specified mount point is listed if succeeded.

And taking the advice of the last statement above, the response to the mount cmd includes:

ltfs:/dev/st0 on /mnt/ltfs8 type fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other)

Again, many thanks.

I’m no expert on these things but this could be an operational issue.

There is one more log file you can check: /var/log/ltfs.log . Hopefully it gives you more detailed info about the error.