CentOS 7 + FusionIO users: do not upgrade to kernel-3.10.0-862.2.3.el7 yet!

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

BLinux

cat lover server enthusiast
Jul 7, 2016
2,669
1,081
113
artofserver.com
Just FYI to those running CentOS 7 + FusionIO drives... the latest kernel-3.10.0-862.2.3.el7 that comes with the 7.5 update does not work with the fusionIO drivers. and trying to rebuild the iomemory-vsl package will fail.

i would hold back on the 7.5 update, or at least retain your older kernel when you update to 7.5 and boot into 3.10.0-693.21.1.el7.x86_64 instead until WD/SanDisk releases updated driver packages...
 
  • Like
Reactions: Patriot

ArcturusSix

New Member
Nov 18, 2015
3
6
3
43
Patching kblock.c fixes the build error. This was the change to the exit_elevator call that broke the package: blk-mq-sched: fix crash in switch error path · torvalds/linux@54d5329

Patch -
Code:
diff -Naur iomemory-vsl-3.2.15.1699.orig/root/usr/src/iomemory-vsl-3.2.15/kblock.c iomemory-vsl-3.2.15.1699/root/usr/src/iomemory-vsl-3.2.15/kblock.c
--- iomemory-vsl-3.2.15.1699.orig/root/usr/src/iomemory-vsl-3.2.15/kblock.c     2018-05-26 18:34:34.083591135 -0500
+++ iomemory-vsl-3.2.15.1699/root/usr/src/iomemory-vsl-3.2.15/kblock.c  2018-05-26 18:35:06.631178009 -0500
@@ -2042,7 +2042,7 @@
 // We don't use the real elevator_change since it isn't in the RedHat Whitelist
 // see FH-14626 for the gory details.
 #if !defined(__VMKLNX__)
-    elevator_exit(q->elevator);
+    elevator_exit(q, q->elevator);
 # if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)
     q->elevator = NULL;
 # endif
With the patch, the iomemory-vsl package built and seems to work -
Code:
[root@zfspool ~]$ uname -r
3.10.0-862.3.2.el7.x86_64
[root@zfspool ~]$ yum info iomemory-vsl-3.10.0-862.3.2.el7.x86_64
Loaded plugins: fastestmirror, rhnplugin
This system is receiving updates from RHN Classic or Red Hat Satellite.
Loading mirror speeds from cached hostfile
Installed Packages
Name        : iomemory-vsl-3.10.0-862.3.2.el7.x86_64
Arch        : x86_64
Version     : 3.2.15.1699
Release     : 1.0.el7
Size        : 6.5 M
Repo        : installed
Summary     : Driver for SanDisk Fusion ioMemory devices
URL         : https://link.sandisk.com/commercialsupport.html
License     : Proprietary
Description : Driver for SanDisk Fusion ioMemory devices
[root@zfspool ~]$ lsmod | grep iomemory
iomemory_vsl         1262598  2
[root@zfspool ~]$ zpool status vmstore
  pool: vmstore
 state: ONLINE
status: Some supported features are not enabled on the pool. The pool can
        still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
        the pool may no longer be accessible by software that does not support
        the features. See zpool-features(5) for details.
  scan: scrub repaired 0B in 0h11m with 0 errors on Wed May 16 06:11:27 2018
config:

        NAME        STATE     READ WRITE CKSUM
        vmstore     ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            fioa    ONLINE       0     0     0
            fiob    ONLINE       0     0     0

errors: No known data errors
Use at your own risk :)
 

ArcturusSix

New Member
Nov 18, 2015
3
6
3
43
I wrote the patch myself after looking at the build error, the kernel changes, and code from updated versions of iomemory-vsl: vinsonlee/iomemory-vsl4

I'll post it to the other forum too.

Aah, sweet! Where'd you get the patch from?

I noted 7.5 was an issue in the ioDrive reference thread, but hadn't figured out if there was a way to fix it yet.

Mind posting to that thread as well? https://forums.servethehome.com/ind...1-2tb-reference-page.11287/page-6#post-192195

Thanks!

-- Dave
 
  • Like
Reactions: Patriot

acquacow

Well-Known Member
Feb 15, 2017
784
439
63
42
Nice, thanks!

Now if only I could find someone to update the FreeBSD packages ;)
 

markpower28

Active Member
Apr 9, 2013
413
104
43
If I could make Solaris recognize ConnectX 3 VPI as Ethernet instead of IB, I probably won't go this route. The goal is set up iSer target. I tried Ubuntu 18.04 with the similar driver issue. The workaround for centOS looks very promising, but I don't have the directory from the patch since I am doing a fresh install. Anyone have a complied package I could try?

Thank you!
 

pyite

New Member
May 15, 2013
9
1
3
Are you guys still having issues getting your Fusion-IO devices to work? I have a mix of Gen2 and Gen3 products at home on EL7 and 18.04 so just let me know.
 

markpower28

Active Member
Apr 9, 2013
413
104
43
Are you guys still having issues getting your Fusion-IO devices to work? I have a mix of Gen2 and Gen3 products at home on EL7 and 18.04 so just let me know.
Cloud you please compile the driver for CentOS 7.5 or Ubuntu 18.04 for Gen2 card? It will be a great favor for me!

Thank you!
 

pyite

New Member
May 15, 2013
9
1
3
Sorry for the slow response, it's been a crazy month.

In March or so, the build guys swore to me that they would have 18.04 working in a reasonable time frame. Lo and behold, I was able to build and load the latest internal nightly version on 18.04 with minimal difficulty. I don't have a gen2 card installed on my workstation to fully test it, though.

Do you have a login to support.fusionio.com (It redirects to SanDisk and/or WDC these days of course)? My login there isn't currently working so I'm not sure what the latest official release is, and I would probably have to update my resume if I leaked internal builds ;) If you don't, try to sign up and if you have trouble I'll figure out who to ask about it internally.

The only annoying part was that I had to copy the cc 6.3 version of the non-GPL library to make it look like it was from 7.3, like this:
# cp x86_64_cc63_libkfio.o_shipped x86_64_cc73_libkfio.o

I have done this dozens of times without problems, though I usually don't have to do it between major revisions like this.

If you have any trouble, let me know!
 
  • Like
Reactions: T_Minus

acquacow

Well-Known Member
Feb 15, 2017
784
439
63
42
I've verified on the download site that a pre-built iomemory-vsl-3.10.0-862.el7.x86_64-3.2.16.1731-1.0.el7.x86_64.rpm exists as well as updated source.

The current download site is: link.sandisk.com

-- Dave
 
  • Like
Reactions: eva2000

acquacow

Well-Known Member
Feb 15, 2017
784
439
63
42
Found another little thing that bugged me. The unmount script in /etc/init.d/iomemory-vsl doesn't match newer /dev/mapper namings for LVM.

I created a /dev/fioa_vg/fioa_lv and had that mounted in /var/data for ovirt.

fstab:
Code:
/dev/fioa_vg/fioa_lv    /var/data       ext4    defaults,discard,noauto 0 0
Even though I'm mounting /dev/fioa_vg/fioa_lv by name in, mount shows /dev/mapper:
Code:
/dev/mapper/fioa_vg-fioa_lv on /var/data type ext4 (rw,relatime,seclabel,discard,stripe=8,data=ordered)"
The iomemory-vsl init script matches on /dev/fio* so clearly it wasn't going to match on /dev/mapper/ entries, plus I could have named those LVs anything I wanted.

I stuck to fiox_lv as my scheme and changed the regex to the following (in /etc/init.d/iomemory-vsl):
Code:
 mounts="/dev/(mapper/fio|fio)[a-z][a-z]*|$(echo "$@" | sed 's/[ \t][ \t]*/ /g; s/^ //; s/ $//; s/ /|/g;')"
It doesn't fit all needs, but as long as your VGs and LVs start with fio*, it should work.

-- Dave