This release note and the software that accompanies it are copyright (c) 2022, Intel Corporation or its suppliers, and may only be installed and used in accordance with the license that accompanies the software. This Software is furnished under license and may only be used or copied in accordance with the terms of that license. No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted by this document. The Software is subject to change without notice, and should not be construed as a commitment by Intel Corporation or its suppliers to market, license, sell or support any product or technology. Unless otherwise provided for in the license under which this Software is provided, the Software is provided AS IS, with no warranties of any kind, express or implied. Except as expressly permitted by the Software license, neither Intel Corporation nor its suppliers assumes any responsibility or liability for any errors or inaccuracies that may appear herein. Except as expressly permitted by the Software license, no part of the Software may be reproduced, stored in a retrieval system, transmitted in any form, or distributed by any means without the express written consent of Intel Corporation. ========================== Supported RAID Controllers ========================== This download supports the following Intel(R) RAID controllers: RS3P4TF160F, RS3P4MF088F, RMSP3AD160F, RMSP3CD080F, RMSP3HD080E, RSP3WD080E, RSP3TD160F, RSP3DD080F, RSP3MD088F, RSP3LD060/AHWBPBGB24R, RMS3AC160, RMS3CC080, RMS3CC040, RMS3HC080, RS3YC, RS3LC, RS3SC008, RS3MC044, RS3DC080, RS3DC040, RS3WC080, RCS25ZB040, RCS25ZB040LX, RMS25PB080, RMS25PB040, RMT3PB080, RMS25CB080, RMS25CB040, RMT3CB080, RMS25CB080N, RMS25PB080N, RS25AB080, RS25SB008, RS25DB080, RS25NB008, RT3WB080. =================== Package Information =================== Driver Version = 07.722.02.00 ------------------------------------------------------------------------------ ========================= Installation Instructions ========================= How to compile the driver source ================================ Driver source code is placed inside released package, Driver source tarball- megaraid_sas--src.tar.gz To compile the driver for distro, first apply the patch for that distro(Patches are placed inside "patches" directory). Use below command to apply the patch: #patch -p1 < xyz.patch (pick the right patch) To compile the driver for distro use the helper script "compile.sh": #./compile.sh Note: For RHEL6 and it's clones(OEL6 and CentOS6), no patches are required to be applied. If there is no patch inside direcotry for corresponding Distoro/kernel for which user is trying to compile driver source code should pick correct/matching patch from patches directory. Try to pick patch of closest match of the kernel version from patches directory. See below example - ubutu12.4 kernel is close to SLES11SP2 and Ubuntu14.10 kernel version is close to RHEL7. ubuntu12.4 (3.2.0-23-generic) sles11-sp2.patch (3.0.13-0.27) ubuntu14.10 (3.16.0-23-generic) rhel7.patch (3.10.0-123.el7.x86_64) ########################################### Release contents directory layout. ########################################### NOTE: Refer "OS_Support_list" text file to find out supported os list of this release. rhel7_oel7_centos7 : All RHEL7/OEL7/CENTOS7 related contents are available in this folder. rhel8_oel8_centos8 : All RHEL8/OEL8/CENTOS8 related contents are available in this folder. sles12 : All SLES12 related contents are available in this folder. sles15 : All SLES15 related contents are available in this folder. ubuntu : All Ubuntu related contents are available in this folder. ########################################### binary kmp,kmod,rpms, iso naming convention. ########################################### ------------------------------------------------------------------------------ -kmod (For all RHEL and OEL releases) ------------------------------------------------------------------------------ Kmod RPM images are named as: kmod-megaraid_sas-_..rpm where: = version tag for this rpm = {rhel5, sles10, sles11} = ia64 - Itanium Processor x86_64 - Opteron Processor, w/ x86_64 install i686 - i686 or later processor (Red Hat) i586 - x86 installations (SuSE) ppc Power PC (64 bit) example: kmod-megaraid_sas-v06.600.00.00_rhel6.1-1.i686.rpm -For current Driver release has both .deb and .rpm format binary support. ------------------------------------------------------------------------------ Driver Update Disks: ------------------------------------------------------------------------------ dud images are named : megaraid_sas---..dd.gz where: = version tag for this rpm = release tag for this rpm = {rhel5, rhel5, sles10, sles11} = ia64 - Itanium Processor x86_64 - Opteron Processor, w/ x86_64 install i686 - i686 or later processor (Red Hat) i586 - x86 installations (SuSE) ppc Power PC (64 bit) ------------------------------------------------------------------------------ SRPMS ------------------------------------------------------------------------------ SRPM images are named megaraid_sas--.src.rpm where: = version tag for this rpm = release tag for this rpm ################################################################################ Erratas/Notes and some known limitations ################################################################################ ------------------------------------------------------------------------------ Oracle Linux Installation errata: ------------------------------------------------------------------------------ 1. Installing Driver during Installing for UEK from CD: For UEK kernels, only the KMODs RPMs are provided, not the DUDs. The reasoning behind this is the OEL installation is using the native Red Hat kernels, not UEK. UEK kernel RPMS can be installed after the basic installation is complete 2. Few Known RPM install dependency issues. E.g. on Oracle Linux 5.7/OVM 3.0.3 KMOD RPM gives kABI checks dependency failure message. For Oracle Linux 5.7 you will encounter ksym (..) dependency issues, when installing KMOD package the user will need to use the "--nodeps" switch when installing the binary." Example: rpm -ivh --nodeps kmod-megaraid_sas-vxxxxxx_UEK.xxx.rpm "If "rpm -ivh throw any dependancy warning/error" RPM uses KMOD packaging dependency data to ensure the dependencies are met before installing the binary RPM. Red Hat maintains a whitelist of kernel symbols which RPM uses to validate against the KMOD binaries. Some symbols may be in the kernel but not on the whitelist which results in a failed binary RPM install. The user will need to use the "--nodeps" switch when installing the binary." 3. In the event of installing UEL and non UEK driver RPMs. Simultaneously RPM will complain the driver is already installed the reason is the major driver version identification string for UEK and the non UEK driver package RPMS are the same In this case you can use rpm --force option to install multiple RPMS. Example :rpm -ivh kmod-megaraid_sas-vxxxxxx.xxx.rpm rpm --force -ivh kmod-megaraid_sas-vxxxxxx_UEK.xxx.rpm ------------------------------------------------------------------------------ Xen Server Driver update NOTE: ------------------------------------------------------------------------------ Known Issue: In case of Citrix driver update disk use, where system has multiple MegaRAID controller (at least one MR controller which is supported by Inbox Citrix driver), user will not see storage behind controller which is not supported by Inbox Driver (normally this was not expected since user expected driver update disk will work well and will detect all controllers) Reason for the issue: Since Xen Server load megaraid_sas driver from inbox before it ask for Driver update disk, user can see "No Storage Disk" on some servers as explained above. Workaround: If you are booting from CD, when presented with the 'boot:' prompt you want to type 'shell' - where you can then rmmod your driver before continuing with the installation. --------------------------------------------------------------------------- How to Install/upgrade/remove Drivers Ubuntu and Debian. --------------------------------------------------------------------------- -Find below help for verification. Current Driver release has native .deb binary support. "In Ubuntu all packages are in .deb format. To install .deb packages we have to use the following command, dpkg -i packagename.deb e.g.: To install above megaraid_sas driver package we use dpkg -i megaraid_sas_06.600.00.00-99_amd64.deb To verify the status of installed packages then type following command dpkg -s packagename e.g: dpkg -s megaraid-sas " After installing megaraid_sas driver, now type " modinfo megaraid_sas " Now it should show the currently installed version of megaraid_sas as " Filename: /lib/modules/2.6.32-33-server/weak-updates/megaraid_sas/megaraid_sas.ko" 'Version: 06.600.00.00" (Driver version of in-house deb package) " Now restart the machine and type following command " cat /sys/modules/megaraid_sas/version" To get currently installed version i.e. it must be correct driver version. " Now uninstall megaraid_sas package by dpkg -r megaraid-sas Verify "modinfo megaraid_sas" megaraid_sas version should be in-box version. Ubuntu 10.04 LTS has inbox driver version 02.100.03.0. " Now again restart the machine and type following command " cat /sys/modules/megaraid_sas/version" It must be "02.100.03.00" (Inbox Driver version) --------------------------------------------------------------------------- UEK Notes --------------------------------------------------------------------------- Added UEKR2 (.rpm support) OEL5 and OEL6 based support for x86_64 and i386. Go through Oracle provided link on how to upgrade UEKR2. (It is not available in ISO format) http://www.oracle.com/technetwork/articles/servers-storage-admin/uek-rel2-getting-started-1555632.html Go through Release notes of UEK2-QU2 from below link. https://oss.oracle.com/ol6/docs/RELEASE-NOTES-UEK2-QU2-en.html https://oss.oracle.com/ol5/docs/RELEASE-NOTES-UEK2-QU2-en.html Kernel version for UEK R2 is "2.6.39-300.28.1". --------------------------------------------------------------------------- How to set SMP affinity manually to get better performance under Linux --------------------------------------------------------------------------- 1. Check for the output of "dmesg | grep MSI" to findout total number of MR controller and its associated MSI-x vectors. See below example of one MR controller and current MSIX supported by driver is 24 vector. e.g: megaraid_sas 0000:07:00.0: irq 136 for MSI/MSI-X megaraid_sas 0000:07:00.0: irq 137 for MSI/MSI-X megaraid_sas 0000:07:00.0: irq 138 for MSI/MSI-X megaraid_sas 0000:07:00.0: irq 139 for MSI/MSI-X megaraid_sas 0000:07:00.0: irq 140 for MSI/MSI-X megaraid_sas 0000:07:00.0: irq 141 for MSI/MSI-X megaraid_sas 0000:07:00.0: irq 142 for MSI/MSI-X megaraid_sas 0000:07:00.0: irq 143 for MSI/MSI-X megaraid_sas 0000:07:00.0: irq 144 for MSI/MSI-X megaraid_sas 0000:07:00.0: irq 145 for MSI/MSI-X megaraid_sas 0000:07:00.0: irq 146 for MSI/MSI-X megaraid_sas 0000:07:00.0: irq 147 for MSI/MSI-X megaraid_sas 0000:07:00.0: irq 148 for MSI/MSI-X megaraid_sas 0000:07:00.0: irq 149 for MSI/MSI-X megaraid_sas 0000:07:00.0: irq 150 for MSI/MSI-X megaraid_sas 0000:07:00.0: irq 151 for MSI/MSI-X megaraid_sas 0000:07:00.0: irq 152 for MSI/MSI-X megaraid_sas 0000:07:00.0: irq 153 for MSI/MSI-X megaraid_sas 0000:07:00.0: irq 154 for MSI/MSI-X megaraid_sas 0000:07:00.0: irq 155 for MSI/MSI-X megaraid_sas 0000:07:00.0: irq 156 for MSI/MSI-X megaraid_sas 0000:07:00.0: irq 157 for MSI/MSI-X megaraid_sas 0000:07:00.0: irq 158 for MSI/MSI-X megaraid_sas 0000:07:00.0: irq 159 for MSI/MSI-X [scsi20]: FW supports <96> MSIX vector, OnlineCPUs: <24>, Current MSIX <24> 2. Set SMP affinity manually as shown below: Actual command syntax is echo "" > /proc/irq//smp_affinity e.g: echo "1" > /proc/irq/136/smp_affinity (mask 1 for cpu 0) echo "2" > /proc/irq/137/smp_affinity (mask 10 for cpu 1) echo "4" > /proc/irq/138/smp_affinity (mask 100 for cpu 2) echo "8" > /proc/irq/139/smp_affinity (mask 1000 for cpu3) echo "10" > /proc/irq/140/smp_affinity (mask 10000 for cpu4) echo "20" > /proc/irq/141/smp_affinity (mask 100000 for cpu5) echo "40" > /proc/irq/142/smp_affinity (mask 1000000 for cpu6) echo "80" > /proc/irq/143/smp_affinity (mask 10000000 for cpu7) . . . . . echo "400000" > /proc/irq/158/smp_affinity (mask 10000000000000000000000 for cpu22) echo "800000" > /proc/irq/159/smp_affinity (mask 100000000000000000000000 for cpu23) 3. By default Irq balancer will be ON,Stop Irq balancer temporarily via below command: "chkconfig irqbalance off" Verify Irq balancer is stopped via below command: "service irqbalance status" ----------------------------------------------------------------------- How to convert Source RPM to Binary RPM ----------------------------------------------------------------------- 1) Install source RPM like below- rpm -ivh megaraid_sas-06.809.10.00-1-ubuntu15.4.src.rpm 2) go to directory where source RPM spec file will be copied- SPEC file location for RHEL, Ubuntu/Debian based- cd /root/rpmbuild/SPECS SPEC file location for SLES based- cd /usr/src/packages/SPECS 3) There must be specfile(e.g. megaraid_sas-u15.4.spec) inside SPEC file directory. Build binary RPM- rpmbuild -ba megaraid_sas-u15.4.spec 4) cd ../RPMS/ 5) Go to cd , where arch may be- x86_64, i386, ppc64le.... directory should contain newly generated binary RPM. Step 6 and 7 are only applicable for Ubuntu/Debian. 6) For Ubuntu and Debian OS, need to conevrt Binary RPM to deb package(for Ubuntu and Debian OS only), do that as below- e.g. alien -k --to-deb --scripts megaraid_sas-06.809.10.00-1.ppc64le.rpm 7) There should be new deb pacakge generated like below- megaraid-sas_06.809.10.00-1_ppc64el.deb ============= Fixes/Updates ============= v7.722.02.00 (MR7.22) DCSG01220245 MR7.22_Driver: Source RPM build failed on ARM server with RHEL 8.6 OS DCSG01132146 OS driver support for SLES15 SP4 - SAS3 MR6.14, Phase 16, and SAS3.5 MR 7.23, SAS3.5 Ph-24 DCSG01238725 MR_7.22: RHEL 9.0 has RT kernel binary, as per PR support on 7.23 onwards. v7.721.04.00 (MR7.21) DCSG01107335 - Disable "shared host_tagset" feature DCSG01090218 - scan on valid logical target with invalid LUN leads to that target removal from the OS v7.720.04.00 (MR7.20) Add RHEL 8.5 support v7.719.03.00 (MR7.19) Add RHEL 8.4 support v7.718.02.00 (MR7.18) Add RHEL 8.3, SLES 15.3 Support v7.717.02.00 (MR7.17) DCSG00418428 - MR7.17: Driver module signing for RHEL and SUSE DCSG00342297 - Block the IO on Deleted VDs derived from Raid Map update DCSG00368931 - MR7.17: Improve error handling at multiple places in driver v7.716.02.00 (MR7.16) Add RHEL 8.3 Support v7.715.02.00 (MR7.15p1) Add RHEL 7.9, 8.2, SLES 15.2 Support v7.713.02.00 (MR7.13) Add RHEL 7.8, 8.1 Support v7.712.02.00 (MR7.12) Add RHEL 8.1 Support v7.711.04.00 (MR7.11) Defects Fixed DCSGQ00012579 - Fix to controller hangs on the second OCR v7.710.06.00 (MR7.10) Add RHEL 7.7 Support Add SLES 15.1 Support v7.709.08.00 (MR7.9) Defects Fixed SCGCQ02047912 - Fix deadlock in few DCMDs timeout path due to re-acquiring of "reset_mutex" lock v7.708.03.00 (MR7.8) Defects Fixed SCGCQ01907731 - Retpoline compilation support for MR Linux drivers for Spectre_v2 vulnerability SCGCQ01571355 - Enable irq poll in Linux driver to avoid CPU hard and soft lockups SCGCQ01753524 - Improvement in driver debugging SCGCQ01821588 - Driver compilation fails on latest upstream kernel(>= v4.17), due to changes in "queue_flag_set_unlocked" API SCGCQ01822883 - Global SMP affinity setting is disabled incorrectly by driver under certain conditions SCGCQ01823902 - Disable WRITE SAME commands from host for zeroout block ranges operations SCGCQ01826712 - Ubuntu 18.04 OS package description is mentioned as SAS 2.0 SCGCQ01824443 - Lock access to controller's PCI config space from user space while Diag reset operation is going on SCGCQ01841413 - During probe, locking PCI config space while doing adp_reset is applicable to all fusion based controllers Enhancements SCGCQ01854853 - Add SLES 15 OS Support SCGCQ01838376 - Add RHEL 6.10 Support SCGCQ01951874 - Add async support for RHEL7.6 GA (available in a separate package) v7.705.04.00 (MR7.5) Defects Fixed SCGCQ01611888 - OEL 7.4 and 6.x x86_64 RPMs do not have the correct kernel versions Enhancement SCGCQ01615015 - Added support for threaded interrupts v7.704.04.00 (MR7.4) Defects Fixed SCGCQ01394892 - Provided driver workaround to reset __GFP_WAIT flag while allocating IO request frames. SCGCQ01430747 - Use IOC_INIT frame once driver has verified IOC_INIT frame allocation was successful. SCGCQ01468189 - Driver should go through stream detection logic after it's finalized which path(fastpath vs non fastpath) IO will go through SCGCQ01392652 - Fixed coverity reported defects SCGCQ01392643 - Selective stream detection logic in driver SCGCQ01392656 - During PCI remove, set unload flag after scsi_remove_host is called SCGCQ01389431 - Set DMA mask after FW is in READY state in PCI resume path of megaraid_sas driver SCGCQ01415439 - update LD map after populate drv_map, increase wait in IOCTL, fix index in error handling, rework in refiring DCMDs SCGCQ01439776 - Updated OEL6_UEK and OEL7_UEK buildkit SCGCQ01396747 - Added driver support for OEL7.4 SCGCQ01396738 - MR7.4: OS driver support for RHEL 7.4 SCGCQ01393249 - Added driver binary support for Xenserver7.2 SCGCQ01396756 - MR7.4: Add SLES12 SP3 OS support SCGCQ01393194 - Removed support for few OS to align with OS support matrix policy v7.703.06.00 (MR7.3) Defects Fixed: SCGCQ01455132 - Use IOC_INIT frame once driver has verified IOC_INIT frame allocation was successful Enhancements: SCGCQ01455135 - Added NVME passthru support in MR linux driver v7.702.06.00 (MR7.2) Defects Fixed: SCGCQ01350963 - Removed device ID- 0x0015 from supported PCI IDs of MR7.2 linux driver SCGCQ01344142 - Minimum possible value for module parameter- resetwaittime should be 1 secs instead of 0 secs. SCGCQ01264464 - For R6 WT VD, stream detected writes should be directed to core 0 even if both CPU cores are enabled in CPU affinity mask v7.011.11.0(MR7.1) Defects Fixed: SCGCQ01229442 - MR 7.1: Linux OS crash when powering off enclosure during I/O SCGCQ01229897 - On OEL SPARC (Big Endian), Linux MR 7.1 driver loading fails to initialize Ventura which has RDPQ support enabled SCGCQ01231229 - Fixed data corruption by asking OS not to do merging of IOs to avoid SGE holes *Third-party trademarks are the property of their respective owners.