Code Monkey home page Code Monkey logo

iomemory-vsl4's People

Contributors

bplein avatar snuf avatar tourman36 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

iomemory-vsl4's Issues

Issue building on Oracle EL 7 with UEK

Bug description

If we try either a "make rpm" or "make dkms" we're getting errors. I would prefer DKMS, but would settle for either. I've also tried the latest official driver and their steps to build DKMS, but it fails as well.

How to reproduce

git clone https://github.com/snuf/iomemory-vsl4.git
cd iomemory-vsl4
git checkout <tag or some-branch>
make rpm
or 
make dkms

Environment information

Information about the system the module is used on

  1. Linux kernel compiled against (uname -a): Linux dcokvmh01.frtservices.com 5.4.17-2136.305.5.4.el7uek.x86_64 #2 SMP Mon Mar 28 19:02:05 PDT 2022 x86_64 x86_64 x86_64 GNU/Linux
  2. The C compiler version used (gcc --version): gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44.0.3)
  3. distribution, and version (cat /etc/os-release)
NAME="Oracle Linux Server"
VERSION="7.9"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="7.9"
PRETTY_NAME="Oracle Linux Server 7.9"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:7:9:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://bugzilla.oracle.com/"
ORACLE_BUGZILLA_PRODUCT="Oracle Linux 7"
ORACLE_BUGZILLA_PRODUCT_VERSION=7.9
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=7.9
  1. Tag or Branch of iomemory-vsl4 that is being compiled: main (commit 265a128)
  2. FIO device used: SanDisk FusionIO SX350
  3. Installed Kernel/UEK/DKMS packages:
[root@dcokvmh01 ~]# rpm -qa | egrep -i 'kernel|uek' | sort
abrt-addon-kerneloops-2.1.11-60.0.1.el7.x86_64
kernel-3.10.0-1160.59.1.el7.x86_64
kernel-3.10.0-1160.62.1.el7.x86_64
[dkms.log](https://github.com/RemixVSL/iomemory-vsl4/files/8474141/dkms.log)
[rpm.log](https://github.com/RemixVSL/iomemory-vsl4/files/8474142/rpm.log)

kernel-debug-devel-3.10.0-1160.62.1.el7.x86_64
kernel-devel-3.10.0-1160.59.1.el7.x86_64
kernel-devel-3.10.0-1160.62.1.el7.x86_64
kernel-headers-3.10.0-1160.62.1.el7.x86_64
kernel-tools-3.10.0-1160.62.1.el7.x86_64
kernel-tools-libs-3.10.0-1160.62.1.el7.x86_64
kernel-uek-5.4.17-2136.305.5.4.el7uek.x86_64
kernel-uek-devel-5.4.17-2136.305.5.4.el7uek.x86_64
kernel-uek-tools-5.4.17-2136.305.5.4.el7uek.x86_64

[root@dcokvmh01 ~]# rpm -qa dkms
dkms-3.0.3-1.el7.noarch

Fixed formatting

No rule to make target 'clean' in /usr/src/linux-5.15.43-Unraid when making module from source

Following a mix of directions from: https://wiki.unraid.net/Building_a_custom_kernel (though deprecated, it helped me to get seemingly requisite packages installed. I made it through 'make clean', didn't do 'make menuconfig', and I'm not trying to make a whole new kernel) and this Github page here for VSL4, making from source, I've run into the following issue (see attached image)
Screen Shot 2022-06-11 at 16 05 36

It seems the Makefile that exists for my given kernel headers is missing some information.

I know enough about Linux to be dangerous, but not enough about compiling to sort this one out.

Apologies if this isn't the right spot, as it's more of an issue with my environment than the iomemory-vsl4 module as a whole. I've gotten it to compile successfully inside an Ubuntu VM, however the resultant module isn't compatible with Unraid as it ends up being from a different kernel-header base.

I see a split solution: fix this compiling issue in my underlying Unraid build environment, or get Ubuntu to use force-fed headers for 5.15.43. I've tried the latter to no avail, as it still seems to flag/tag/use the running Ubuntu headers to make the module and Unraid refuses to load the module.

Error building package on Ubuntu 19.10

Hi Funs,
Thank you so much for updating vsl4 for 5.x kernels.
I was able to see the sx300 disk with fdisk on ubuntu 19.10 with 5.3 kernel After building with DKMS.

When I ran dpkg-buildpackage, i got the below error. Is it possible to use the util without building the package?

dh_installdirs: This feature will be removed in compat 12.

Add here commands to install the arch part of the package into

debian/tmp.

dh_install --sourcedir=root --fail-missing -X/usr/share/doc/iomemory-vsl4
dh_install: Compatibility levels before 9 are deprecated (level 5 in use)
dh_install: Please use dh_missing --list-missing/--fail-missing instead
dh_install: This feature will be removed in compat 12.
dh_install: Cannot find (any matches for) "usr/src/iomemory-vsl4-4.3.7/iomemory-vsl4.mod.c" (tried in root)

dh_install: iomemory-vsl4-source missing files: usr/src/iomemory-vsl4-4.3.7/iomemory-vsl4.mod.c
dh_install: Cannot find (any matches for) "usr/src/iomemory-vsl4-4.3.7/kfio/.x86_64_cc48_libkfio.o.cmd" (tried in root)

dh_install: iomemory-vsl4-source missing files: usr/src/iomemory-vsl4-4.3.7/kfio/.x86_64_cc48_libkfio.o.cmd
dh_install: missing files, aborting
make: *** [debian/rules:139: install-arch] Error 255
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

modprobe iomemory-vsl4 hangs on Kernel 5.3.18 with USE_QUEUE_MQ

hangs on load and modprobe cannot be killed

root@pve1:~# strace -rf modprobe iomemory-vsl4 0.000000 execve("/sbin/modprobe", ["modprobe", "iomemory-vsl4"], 0x7ffe33b4c870 /* 19 vars */) = 0 0.000908 brk(NULL) = 0x55cf0e499000 0.000142 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) 0.000375 openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 0.000128 fstat(3, {st_mode=S_IFREG|0644, st_size=62689, ...}) = 0 0.000216 mmap(NULL, 62689, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f6291500000 0.000097 close(3) = 0 0.000100 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/liblzma.so.5", O_RDONLY|O_CLOEXEC) = 3 0.000082 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0205\0\0\0\0\0\0"..., 832) = 832 0.000129 fstat(3, {st_mode=S_IFREG|0644, st_size=158400, ...}) = 0 0.000069 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f62914fe000 0.000082 mmap(NULL, 160400, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f62914d6000 0.000066 mmap(0x7f62914d9000, 98304, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f62914d9000 0.000077 mmap(0x7f62914f1000, 45056, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b000) = 0x7f62914f1000 0.000079 mmap(0x7f62914fc000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x25000) = 0x7f62914fc000 0.000107 close(3) = 0 0.000080 openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1", O_RDONLY|O_CLOEXEC) = 3 0.000087 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\360\10\0\0\0\0\0"..., 832) = 832 0.000092 fstat(3, {st_mode=S_IFREG|0644, st_size=3031904, ...}) = 0 0.000079 mmap(NULL, 3051424, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f62911ed000 0.000077 mprotect(0x7f6291272000, 2285568, PROT_NONE) = 0 0.000081 mmap(0x7f6291272000, 1695744, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x85000) = 0x7f6291272000 0.000086 mmap(0x7f6291410000, 585728, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x223000) = 0x7f6291410000 0.000082 mmap(0x7f62914a0000, 204800, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2b2000) = 0x7f62914a0000 0.000115 mmap(0x7f62914d2000, 16288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f62914d2000 0.000099 close(3) = 0 0.000095 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 0.000089 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260A\2\0\0\0\0\0"..., 832) = 832 0.000076 fstat(3, {st_mode=S_IFREG|0755, st_size=1824496, ...}) = 0 0.000075 mmap(NULL, 1837056, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f629102c000 0.000078 mprotect(0x7f629104e000, 1658880, PROT_NONE) = 0 0.000074 mmap(0x7f629104e000, 1343488, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x22000) = 0x7f629104e000 0.000077 mmap(0x7f6291196000, 311296, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16a000) = 0x7f6291196000 0.000073 mmap(0x7f62911e3000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b6000) = 0x7f62911e3000 0.000089 mmap(0x7f62911e9000, 14336, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f62911e9000 0.000096 close(3) = 0 0.000082 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3 0.000085 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@l\0\0\0\0\0\0"..., 832) = 832 0.000075 fstat(3, {st_mode=S_IFREG|0755, st_size=146968, ...}) = 0 0.000080 mmap(NULL, 132288, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f629100b000 0.000082 mmap(0x7f6291011000, 61440, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7f6291011000 0.000078 mmap(0x7f6291020000, 24576, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x7f6291020000 0.000073 mmap(0x7f6291026000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a000) = 0x7f6291026000 0.000090 mmap(0x7f6291028000, 13504, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f6291028000 0.000087 close(3) = 0 0.000070 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3 0.000083 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\21\0\0\0\0\0\0"..., 832) = 832 0.000071 fstat(3, {st_mode=S_IFREG|0644, st_size=14592, ...}) = 0 0.000076 mmap(NULL, 16656, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f6291006000 0.000071 mmap(0x7f6291007000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7f6291007000 0.000079 mmap(0x7f6291008000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f6291008000 0.000071 mmap(0x7f6291009000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f6291009000 0.000091 close(3) = 0 0.000089 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f6291004000 0.000085 arch_prctl(ARCH_SET_FS, 0x7f6291005480) = 0 0.000229 mprotect(0x7f62911e3000, 16384, PROT_READ) = 0 0.000085 mprotect(0x7f6291009000, 4096, PROT_READ) = 0 0.000073 mprotect(0x7f6291026000, 4096, PROT_READ) = 0 0.001580 mprotect(0x7f62914a0000, 196608, PROT_READ) = 0 0.000081 mprotect(0x7f62914fc000, 4096, PROT_READ) = 0 0.000163 mprotect(0x55cf0dd0e000, 8192, PROT_READ) = 0 0.000076 mprotect(0x7f6291537000, 4096, PROT_READ) = 0 0.000066 munmap(0x7f6291500000, 62689) = 0 0.000092 set_tid_address(0x7f6291005750) = 3040392 0.000097 set_robust_list(0x7f6291005760, 24) = 0 0.000065 rt_sigaction(SIGRTMIN, {sa_handler=0x7f62910116b0, sa_mask=[], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x7f629101d730}, NULL, 8) = 0 0.000119 rt_sigaction(SIGRT_1, {sa_handler=0x7f6291011740, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART|SA_SIGINFO, sa_restorer=0x7f629101d730}, NULL, 8) = 0 0.000075 rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0 0.000078 prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0 0.000320 brk(NULL) = 0x55cf0e499000 0.000060 brk(0x55cf0e4ba000) = 0x55cf0e4ba000 0.000083 uname({sysname="Linux", nodename="pve1", ...}) = 0 0.000088 stat("/etc/modprobe.d", {st_mode=S_IFDIR|0755, st_size=5, ...}) = 0 0.000095 openat(AT_FDCWD, "/etc/modprobe.d", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3 0.000075 fstat(3, {st_mode=S_IFDIR|0755, st_size=5, ...}) = 0 0.000077 getdents64(3, /* 5 entries */, 32768) = 160 0.000152 newfstatat(3, "pve-blacklist.conf", {st_mode=S_IFREG|0644, st_size=171, ...}, 0) = 0 0.000092 newfstatat(3, "iomemory-vsl4.conf", {st_mode=S_IFREG|0644, st_size=436, ...}, 0) = 0 0.000093 newfstatat(3, "dkms.conf", {st_mode=S_IFREG|0644, st_size=127, ...}, 0) = 0 0.000086 getdents64(3, /* 0 entries */, 32768) = 0 0.000101 close(3) = 0 0.000068 stat("/run/modprobe.d", 0x7fffd46bebd0) = -1 ENOENT (No such file or directory) 0.000099 stat("/lib/modprobe.d", {st_mode=S_IFDIR|0755, st_size=8, ...}) = 0 0.000090 openat(AT_FDCWD, "/lib/modprobe.d", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3 0.000076 fstat(3, {st_mode=S_IFDIR|0755, st_size=8, ...}) = 0 0.000085 getdents64(3, /* 8 entries */, 32768) = 344 0.000102 newfstatat(3, "blacklist_pve-kernel-4.15.18-12-pve.conf", {st_mode=S_IFREG|0644, st_size=1239, ...}, 0) = 0 0.000089 newfstatat(3, "aliases.conf", {st_mode=S_IFREG|0644, st_size=655, ...}, 0) = 0 0.000086 newfstatat(3, "blacklist_pve-kernel-5.3.18-3-pve.conf", {st_mode=S_IFREG|0644, st_size=1321, ...}, 0) = 0 0.000090 newfstatat(3, "systemd.conf", {st_mode=S_IFREG|0644, st_size=765, ...}, 0) = 0 0.000084 newfstatat(3, "blacklist_pve-kernel-4.15.18-27-pve.conf", {st_mode=S_IFREG|0644, st_size=1239, ...}, 0) = 0 0.000091 newfstatat(3, "fbdev-blacklist.conf", {st_mode=S_IFREG|0644, st_size=390, ...}, 0) = 0 0.000085 getdents64(3, /* 0 entries */, 32768) = 0 0.000075 close(3) = 0 0.000076 openat(AT_FDCWD, "/lib/modprobe.d/aliases.conf", O_RDONLY|O_CLOEXEC) = 3 0.000117 fcntl(3, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE) 0.000083 fstat(3, {st_mode=S_IFREG|0644, st_size=655, ...}) = 0 0.000075 read(3, "# These are the standard aliases"..., 1024) = 655 0.000133 read(3, "", 1024) = 0 0.000072 close(3) = 0 0.000070 openat(AT_FDCWD, "/lib/modprobe.d/blacklist_pve-kernel-4.15.18-12-pve.conf", O_RDONLY|O_CLOEXEC) = 3 0.000083 fcntl(3, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE) 0.000069 fstat(3, {st_mode=S_IFREG|0644, st_size=1239, ...}) = 0 0.000072 read(3, "blacklist acquirewdt\nblacklist a"..., 1536) = 1239 0.000132 read(3, "", 1536) = 0 0.000064 close(3) = 0 0.000063 openat(AT_FDCWD, "/lib/modprobe.d/blacklist_pve-kernel-4.15.18-27-pve.conf", O_RDONLY|O_CLOEXEC) = 3 0.000073 fcntl(3, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE) 0.000065 fstat(3, {st_mode=S_IFREG|0644, st_size=1239, ...}) = 0 0.000067 read(3, "blacklist acquirewdt\nblacklist a"..., 1536) = 1239 0.000129 read(3, "", 1536) = 0 0.000063 close(3) = 0 0.000062 openat(AT_FDCWD, "/lib/modprobe.d/blacklist_pve-kernel-5.3.18-3-pve.conf", O_RDONLY|O_CLOEXEC) = 3 0.000082 fcntl(3, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE) 0.000066 fstat(3, {st_mode=S_IFREG|0644, st_size=1321, ...}) = 0 0.000066 read(3, "blacklist acquirewdt\nblacklist a"..., 1536) = 1321 0.000145 read(3, "", 1536) = 0 0.000063 close(3) = 0 0.000062 openat(AT_FDCWD, "/etc/modprobe.d/dkms.conf", O_RDONLY|O_CLOEXEC) = 3 0.000072 fcntl(3, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE) 0.000060 fstat(3, {st_mode=S_IFREG|0644, st_size=127, ...}) = 0 0.000067 read(3, "# modprobe information used for "..., 512) = 127 0.000085 read(3, "", 512) = 0 0.000063 close(3) = 0 0.000061 openat(AT_FDCWD, "/lib/modprobe.d/fbdev-blacklist.conf", O_RDONLY|O_CLOEXEC) = 3 0.000071 fcntl(3, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE) 0.000059 fstat(3, {st_mode=S_IFREG|0644, st_size=390, ...}) = 0 0.000066 read(3, "# This file blacklists most old-"..., 512) = 390 0.000102 read(3, "", 512) = 0 0.000063 close(3) = 0 0.000062 openat(AT_FDCWD, "/etc/modprobe.d/iomemory-vsl4.conf", O_RDONLY|O_CLOEXEC) = 3 0.000072 fcntl(3, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE) 0.000060 fstat(3, {st_mode=S_IFREG|0644, st_size=436, ...}) = 0 0.000065 read(3, "# To keep ioDrive from auto load"..., 512) = 436 0.000082 read(3, "", 512) = 0 0.000064 close(3) = 0 0.000063 openat(AT_FDCWD, "/lib/modules/5.3.18-3-pve/modules.softdep", O_RDONLY|O_CLOEXEC) = 3 0.000076 fcntl(3, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE) 0.000061 fstat(3, {st_mode=S_IFREG|0644, st_size=830, ...}) = 0 0.000070 read(3, "# Soft dependencies extracted fr"..., 1024) = 830 0.000124 read(3, "", 1024) = 0 0.000062 close(3) = 0 0.000061 openat(AT_FDCWD, "/etc/modprobe.d/pve-blacklist.conf", O_RDONLY|O_CLOEXEC) = 3 0.000071 fcntl(3, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE) 0.000060 fstat(3, {st_mode=S_IFREG|0644, st_size=171, ...}) = 0 0.000065 read(3, "# This file contains a list of m"..., 512) = 171 0.000080 read(3, "", 512) = 0 0.000078 close(3) = 0 0.000069 openat(AT_FDCWD, "/lib/modprobe.d/systemd.conf", O_RDONLY|O_CLOEXEC) = 3 0.000076 fcntl(3, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE) 0.000061 fstat(3, {st_mode=S_IFREG|0644, st_size=765, ...}) = 0 0.000066 read(3, "# SPDX-License-Identifier: LGPL"..., 1024) = 765 0.000089 read(3, "", 1024) = 0 0.000062 close(3) = 0 0.000060 openat(AT_FDCWD, "/proc/cmdline", O_RDONLY|O_CLOEXEC) = 3 0.000081 read(3, "BOOT_IMAGE=/ROOT/pve-1@/boot/vml"..., 4095) = 120 0.000075 read(3, "", 3975) = 0 0.000059 close(3) = 0 0.000084 openat(AT_FDCWD, "/lib/modules/5.3.18-3-pve/modules.dep.bin", O_RDONLY|O_CLOEXEC) = 3 0.000077 fstat(3, {st_mode=S_IFREG|0644, st_size=850246, ...}) = 0 0.000068 mmap(NULL, 850246, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f6290f34000 0.000084 close(3) = 0 0.000068 openat(AT_FDCWD, "/lib/modules/5.3.18-3-pve/modules.alias.bin", O_RDONLY|O_CLOEXEC) = 3 0.000083 fstat(3, {st_mode=S_IFREG|0644, st_size=1347637, ...}) = 0 0.000076 mmap(NULL, 1347637, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f6290dea000 0.000087 close(3) = 0 0.000065 openat(AT_FDCWD, "/lib/modules/5.3.18-3-pve/modules.symbols.bin", O_RDONLY|O_CLOEXEC) = 3 0.000084 fstat(3, {st_mode=S_IFREG|0644, st_size=722478, ...}) = 0 0.000075 mmap(NULL, 722478, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f6290d39000 0.000084 close(3) = 0 0.000065 openat(AT_FDCWD, "/lib/modules/5.3.18-3-pve/modules.builtin.bin", O_RDONLY|O_CLOEXEC) = 3 0.000084 fstat(3, {st_mode=S_IFREG|0644, st_size=10399, ...}) = 0 0.000080 mmap(NULL, 10399, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f629150d000 0.000083 close(3) = 0 0.000127 openat(AT_FDCWD, "/sys/module/iomemory_vsl4/initstate", O_RDONLY|O_CLOEXEC) = 3 0.000095 read(3, "coming\n", 31) = 7 0.000079 read(3, "", 24) = 0 0.000069 close(3) = 0 0.000080 openat(AT_FDCWD, "/sys/module/iomemory_vsl4/initstate", O_RDONLY|O_CLOEXEC) = 3 0.000079 read(3, "coming\n", 31) = 7 0.000072 read(3, "", 24) = 0 0.000067 close(3) = 0 0.000082 openat(AT_FDCWD, "/lib/modules/5.3.18-3-pve/extra/fio/iomemory-vsl4.ko", O_RDONLY|O_CLOEXEC) = 3 0.000087 read(3, "\177ELF\2\1", 6) = 6 0.000097 lseek(3, 0, SEEK_SET) = 0 0.000080 fstat(3, {st_mode=S_IFREG|0644, st_size=6336176, ...}) = 0 0.000079 mmap(NULL, 6336176, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f629072e000 0.000083 finit_module(3, "external_power_override=1443G108"..., 0

DKMS build error

Hi Funs, thanks for your efforts to make this expensive paperweight actually useful! It seems that I'm hitting a wall when trying to do the DKMS build, unfortunately. After doing the dkms build -m iomemory-vsl4 -v 4.3.7, I get:

'make' DKMS_KERNEL_VERSION=5.3.18-3-pve.............(bad exit status: 2)
Error! Bad return status for module build on kernel: 5.3.18-3-pve (x86_64)

The logs show:

[...]

make[1]: Entering directory '/usr/src/linux-headers-5.3.18-3-pve'
printf '#include "linux/module.h"\nMODULE_LICENSE("Proprietary");\n' >/var/lib/dkms/iomemory-vsl4/4.3.7/build/license.c
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/main.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/dbgset.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/license.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/pci.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/sysrq.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/driver_init.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/kfio.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/errno.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/state.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/kmsg.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/six_lock.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/kcache.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/kfile.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/kmem.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/kscatter.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/ktime.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/sched.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/cdev.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/kscsi.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/kscsi_host.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/kblock.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/kcpu.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/kcondvar.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/common_kinfo.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/kinfo.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/kinit.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/kfio_common.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/khotplug.o
/var/lib/dkms/iomemory-vsl4/4.3.7/build/kcpu.c: In function ‘kfio_map_cpus_to_read_queues’:
/var/lib/dkms/iomemory-vsl4/4.3.7/build/kcpu.c:246:5: warning: ISO C90 forbids variable length array ‘node_hist’ [-Wvla]
     uint32_t node_hist[nodes_possible], node_map[nodes_possible];
     ^~~~~~~~
/var/lib/dkms/iomemory-vsl4/4.3.7/build/kcpu.c:246:5: warning: ISO C90 forbids variable length array ‘node_map’ [-Wvla]
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/kcsr.o
  SHIPPED /var/lib/dkms/iomemory-vsl4/4.3.7/build/kfio/x86_64_cc83_libkfio.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/module_param.o
/var/lib/dkms/iomemory-vsl4/4.3.7/build/kblock.c: In function ‘fio_queue_rq’:
/var/lib/dkms/iomemory-vsl4/4.3.7/build/kblock.c:625:23: warning: unused variable ‘disk’ [-Wunused-variable]
     struct kfio_disk *disk = hctx->driver_data;
                       ^~~~
In file included from /var/lib/dkms/iomemory-vsl4/4.3.7/build/include/fio/port/kfio.h:43,
                 from /var/lib/dkms/iomemory-vsl4/4.3.7/build/port-internal-boss.h:68,
                 from /var/lib/dkms/iomemory-vsl4/4.3.7/build/port-internal.h:57,
                 from /var/lib/dkms/iomemory-vsl4/4.3.7/build/kblock.c:66:
/var/lib/dkms/iomemory-vsl4/4.3.7/build/kblock.c: In function ‘kfio_dump_bio’:
/var/lib/dkms/iomemory-vsl4/4.3.7/build/kblock.c:1544:45: warning: passing argument 1 of ‘bio_segments’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
              msg, BI_IDX(bio), bio_segments(bio), BI_SIZE(bio));
                                             ^~~
/var/lib/dkms/iomemory-vsl4/4.3.7/build/include/fio/port/common-linux/kfio.h:69:63: note: in definition of macro ‘kfio_kprint’
      kfio_print("%s" prefix fmt, kfio_print_prefix[level], ## __VA_ARGS__)
                                                               ^~~~~~~~~~~
/var/lib/dkms/iomemory-vsl4/4.3.7/build/kblock.c:1543:5: note: in expansion of macro ‘infprint’
     infprint("%s : idx: %x : phys_segments: %x : size: %x",
     ^~~~~~~~
In file included from ./include/linux/blkdev.h:21,
                 from /var/lib/dkms/iomemory-vsl4/4.3.7/build/port-internal.h:59,
                 from /var/lib/dkms/iomemory-vsl4/4.3.7/build/kblock.c:66:
./include/linux/bio.h:174:49: note: expected ‘struct bio *’ but argument is of type ‘const struct bio * const’
 static inline unsigned bio_segments(struct bio *bio)
                                     ~~~~~~~~~~~~^~~
/var/lib/dkms/iomemory-vsl4/4.3.7/build/kblock.c: In function ‘kfio_alloc_queue’:
/var/lib/dkms/iomemory-vsl4/4.3.7/build/kblock.c:2368:16: warning: passing argument 1 of ‘memcpy’ discards ‘volatile’ qualifier from pointer target type [-Wdiscarded-qualifiers]
         memcpy(&dp->queue_lock, &rq->queue_lock, sizeof(dp->queue_lock));
                ^~~~~~~~~~~~~~~
In file included from ./include/linux/bitmap.h:9,
                 from ./include/linux/cpumask.h:12,
                 from ./arch/x86/include/asm/cpumask.h:5,
                 from ./arch/x86/include/asm/msr.h:11,
                 from ./arch/x86/include/asm/processor.h:21,
                 from ./arch/x86/include/asm/cpufeature.h:5,
                 from ./arch/x86/include/asm/thread_info.h:53,
                 from ./include/linux/thread_info.h:38,
                 from ./arch/x86/include/asm/preempt.h:7,
                 from ./include/linux/preempt.h:78,
                 from ./include/linux/spinlock.h:51,
                 from ./include/linux/mmzone.h:8,
                 from ./include/linux/gfp.h:6,
                 from ./include/linux/slab.h:15,
                 from /var/lib/dkms/iomemory-vsl4/4.3.7/build/include/fio/port/linux/kfio_config.h:176,
                 from /var/lib/dkms/iomemory-vsl4/4.3.7/build/include/fio/port/kfio_config.h:42,
                 from /var/lib/dkms/iomemory-vsl4/4.3.7/build/port-internal-boss.h:62,
                 from /var/lib/dkms/iomemory-vsl4/4.3.7/build/port-internal.h:57,
                 from /var/lib/dkms/iomemory-vsl4/4.3.7/build/kblock.c:66:
./include/linux/string.h:347:37: note: expected ‘void *’ but argument is of type ‘volatile fusion_spinlock_t *’ {aka ‘volatile struct __fusion_spinlock *’}
 __FORTIFY_INLINE void *memcpy(void *p, const void *q, __kernel_size_t size)
                               ~~~~~~^
/var/lib/dkms/iomemory-vsl4/4.3.7/build/kblock.c: At top level:
/var/lib/dkms/iomemory-vsl4/4.3.7/build/kblock.c:617:20: warning: ‘kfio_request_to_bio’ declared ‘static’ but never defined [-Wunused-function]
 static kfio_bio_t *kfio_request_to_bio(kfio_disk_t *disk, struct request *req,
                    ^~~~~~~~~~~~~~~~~~~
/var/lib/dkms/iomemory-vsl4/4.3.7/build/kblock.c:484:13: warning: ‘kfio_restart_queue’ defined but not used [-Wunused-function]
 static void kfio_restart_queue(struct request_queue *q)
             ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/iomemory-vsl4/4.3.7/build/kblock.c: In function ‘fio_queue_rq’:
/var/lib/dkms/iomemory-vsl4/4.3.7/build/kblock.c:635:8: warning: ‘fbio’ is used uninitialized in this function [-Wuninitialized]
     if (!fbio)
        ^
  LD [M]  /var/lib/dkms/iomemory-vsl4/4.3.7/build/iomemory-vsl4.o
  Building modules, stage 2.
  MODPOST 1 modules
WARNING: could not find /var/lib/dkms/iomemory-vsl4/4.3.7/build/kfio/.x86_64_cc83_libkfio.o.cmd for /var/lib/dkms/iomemory-vsl4/4.3.7/build/kfio/x86_64_cc83_libkfio.o
FATAL: modpost: GPL-incompatible module iomemory-vsl4.ko uses GPL-only symbol 'ktime_get_real_seconds'
make[2]: *** [scripts/Makefile.modpost:92: __modpost] Error 1
make[1]: *** [Makefile:1659: modules] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.3.18-3-pve'
make: *** [Makefile:116: modules] Error 2

Config: proxmox kernel 5.3.18-3-pve, SX350-1300.

Failed to compile under ubuntu 20.04 with 5.10 kernel

Bug description

Failed to compile under ubuntu 20.04 with 5.10 kernel

How to reproduce

What are the steps to reproduce the reported issue.

git clone https://github.com/snuf/iomemory-vsl4.git
cd iomemory-vsl4
git checkout v5.12.1
make dpkg

...
/home/arceny/iomemory-vsl4/driver_source/kfile.c: In function ‘kfio_create_proc_fops_entry’:
/home/arceny/iomemory-vsl4/driver_source/kfile.c:225:47: error: passing argument 4 of ‘proc_create_data’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  225 |     return proc_create_data(name, mode, base, (struct file_operations *)fops, data);
      |                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                               |
      |                                               struct file_operations *
In file included from /home/arceny/iomemory-vsl4/driver_source/kfile.c:37:
./include/linux/proc_fs.h:104:31: note: expected ‘const struct proc_ops *’ but argument is of type ‘struct file_operations *’
  104 | extern struct proc_dir_entry *proc_create_data(const char *, umode_t,
      |                               ^~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[4]: *** [scripts/Makefile.build:279: /home/arceny/iomemory-vsl4/driver_source/kfile.o] Error 1
make[4]: *** Waiting for unfinished jobs....
/home/arceny/iomemory-vsl4/driver_source/kcpu.c: In function ‘__kfio_bind_task_to_cpumask’:
/home/arceny/iomemory-vsl4/driver_source/kcpu.c:131:10: error: ‘struct task_struct’ has no member named ‘cpus_allowed’; did you mean ‘nr_cpus_allowed’?
  131 |     tsk->cpus_allowed = *mask;
      |          ^~~~~~~~~~~~
      |          nr_cpus_allowed
/home/arceny/iomemory-vsl4/driver_source/kcpu.c: In function ‘kfio_map_cpus_to_read_queues’:
/home/arceny/iomemory-vsl4/driver_source/kcpu.c:214:5: warning: ISO C90 forbids variable length array ‘node_hist’ [-Wvla]
  214 |     uint32_t node_hist[nodes_possible], node_map[nodes_possible];
      |     ^~~~~~~~
/home/arceny/iomemory-vsl4/driver_source/kcpu.c:214:5: warning: ISO C90 forbids variable length array ‘node_map’ [-Wvla]
make[4]: *** [scripts/Makefile.build:279: /home/arceny/iomemory-vsl4/driver_source/kcpu.o] Error 1
/home/arceny/iomemory-vsl4/driver_source/kblock.c: In function ‘linux_bdev_update_stats’:
/home/arceny/iomemory-vsl4/driver_source/kblock.c:959:9: error: implicit declaration of function ‘part_stat_lock’ [-Werror=implicit-function-declaration]
  959 |         part_stat_lock();
      |         ^~~~~~~~~~~~~~
/home/arceny/iomemory-vsl4/driver_source/kblock.c:960:9: error: implicit declaration of function ‘part_stat_inc’ [-Werror=implicit-function-declaration]
  960 |         part_stat_inc(GD_PART0, ios[1]);
      |         ^~~~~~~~~~~~~
/home/arceny/iomemory-vsl4/driver_source/kblock.c:960:33: error: ‘ios’ undeclared (first use in this function)
  960 |         part_stat_inc(GD_PART0, ios[1]);
      |                                 ^~~
/home/arceny/iomemory-vsl4/driver_source/kblock.c:960:33: note: each undeclared identifier is reported only once for each function it appears in
/home/arceny/iomemory-vsl4/driver_source/kblock.c:961:9: error: implicit declaration of function ‘part_stat_add’ [-Werror=implicit-function-declaration]
  961 |         part_stat_add(GD_PART0, sectors[1], totalsize >> 9);
      |         ^~~~~~~~~~~~~
/home/arceny/iomemory-vsl4/driver_source/kblock.c:961:33: error: ‘sectors’ undeclared (first use in this function); did you mean ‘sector_t’?
  961 |         part_stat_add(GD_PART0, sectors[1], totalsize >> 9);
      |                                 ^~~~~~~
      |                                 sector_t
/home/arceny/iomemory-vsl4/driver_source/kblock.c:962:33: error: ‘nsecs’ undeclared (first use in this function)
  962 |         part_stat_add(GD_PART0, nsecs[1], kfio_div64_64(duration * HZ, FIO_USEC_PER_SEC));
      |                                 ^~~~~
/home/arceny/iomemory-vsl4/driver_source/kblock.c:963:9: error: implicit declaration of function ‘part_stat_unlock’ [-Werror=implicit-function-declaration]
  963 |         part_stat_unlock();
      |         ^~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[4]: *** [scripts/Makefile.build:279: /home/arceny/iomemory-vsl4/driver_source/kblock.o] Error 1
make[3]: *** [Makefile:1807: /home/arceny/iomemory-vsl4/driver_source] Error 2
make[3]: Leaving directory '/usr/src/linux-headers-5.10.16-051016-generic'
make[2]: *** [Makefile:134: modules] Error 2
make[2]: Leaving directory '/home/arceny/iomemory-vsl4/driver_source'
ERROR:
make[1]: *** [debian/rules:102: build-arch-stamp] Error 1
make[1]: Leaving directory '/home/arceny/iomemory-vsl4'
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2
make: *** [Makefile:14: dpkg] Error 2


Environment information

Information about the system the module is used on

  1. Linux chiahome 5.10.16-051016-generic #202102131334 SMP Sat Feb 13 14:19:45 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
  2. gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
  3. Ubuntu 20.04.2 LTS (Focal Fossa)
  4. v5.12.1

make fails under Arch

5.4.34-1-MANJARO

make dkms under Arch fails when running the make clean step:

cd root/usr/src/iomemory-vsl4-4.3.7 && \
        make clean
make[1]: Entering directory '/home/dcassidy/src/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7'
make \
        -j12 \
        -C /lib/modules/5.4.34-1-MANJARO/build \
        FIO_DRIVER_NAME=iomemory-vsl4 \
        FUSION_DRIVER_DIR=/home/dcassidy/src/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7 \
        M=/home/dcassidy/src/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7 \
        EXTRA_CFLAGS+="-I/home/dcassidy/src/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/include -DBUILDING_MODULE -DLINUX_IO_SCHED -Wall" \
        KFIO_LIB=kfio/x86_64_cc93_libkfio.o_shipped \
        clean
make[2]: Entering directory '/usr/lib/modules/5.4.34-1-MANJARO/build'
make[2]: *** No rule to make target 'clean'.  Stop.
make[2]: Leaving directory '/usr/lib/modules/5.4.34-1-MANJARO/build'
make[1]: *** [Makefile:82: clean] Error 2
make[1]: Leaving directory '/home/dcassidy/src/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7'
make: *** [Makefile:30: clean] Error 2

make gpl fails as well with make clean

[dcassidy@dcass-lnx-desktop iomemory-vsl4]$ cd root/usr/src/iomemory-vsl4-4.3.7/
[dcassidy@dcass-lnx-desktop iomemory-vsl4-4.3.7]$ sudo make gpl
sed -i 's/Proprietary/GPL/g' Kbuild
if [ "93" -gt "75" ];then \
        if [ ! -f "kfio/x86_64_cc93_libkfio.o_shipped" ];then \
                cp kfio/x86_64_cc75_libkfio.o_shipped kfio/x86_64_cc93_libkfio.o_shipped; \
        fi \
fi

Change found in target kernel: KERNELVER KERNEL_SRC 
Running clean before building driver

make[1]: Entering directory '/home/dcassidy/src/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7'
make \
        -j12 \
        -C /lib/modules/5.4.34-1-MANJARO/build \
        FIO_DRIVER_NAME=iomemory-vsl4 \
        FUSION_DRIVER_DIR=/home/dcassidy/src/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7 \
        M=/home/dcassidy/src/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7 \
        EXTRA_CFLAGS+="-I/home/dcassidy/src/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/include -DBUILDING_MODULE -DLINUX_IO_SCHED -Wall" \
        KFIO_LIB=kfio/x86_64_cc93_libkfio.o_shipped \
        clean
make[2]: Entering directory '/usr/lib/modules/5.4.34-1-MANJARO/build'
make[2]: *** No rule to make target 'clean'.  Stop.
make[2]: Leaving directory '/usr/lib/modules/5.4.34-1-MANJARO/build'
make[1]: *** [Makefile:82: clean] Error 2
make[1]: Leaving directory '/home/dcassidy/src/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7'
make: *** [Makefile:98: check_target_kernel] Error 2

DKMS fails to build on 5.12.4

Bug description

Describe the issue, or paste the full error encountered here.
Trying to update kernel from 5.10.35 to 5.12.4, getting the following error:
Setting up linux-image-5.12.4 (5.12.4-1) ...

  • dkms: running auto installation service for kernel 5.12.4 Error! Could not locate dkms.conf file.
    File: /var/lib/dkms/iomemory-vsl/v5.10.0/source/dkms.conf does not exist.

Kernel preparation unnecessary for this kernel. Skipping...

Building module:
cleaning build area...
'make' DKMS_KERNEL_VERSION=5.12.4...(bad exit status: 2)
ERROR (dkms apport): binary package for iomemory-vsl4: 5.10.35-e2084ae not found
Error! Bad return status for module build on kernel: 5.12.4 (x86_64)
Consult /var/lib/dkms/iomemory-vsl4/5.10.35-e2084ae/build/make.log for more information.
(Log attached below)
tmp.make.log

How to reproduce

What are the steps to reproduce the reported issue.

Built kernel using make -j8 bindeb-pkg and installed *.deb files with dpkg -i *.deb
git clone https://github.com/snuf/iomemory-vsl4.git
cd iomemory-vsl4
git checkout <tag or some-branch>
make module
** poof, broken token **

Possible solution

Is a solution know, or type any plausible suggestions here, if none leave clear.

Environment information

Information about the system the module is used on

  1. Linux kernel compiled against (uname -a)
    Linux iglulik 5.10.35 #1 SMP Fri May 7 12:09:59 PDT 2021 x86_64 x86_64 x86_64 GNU/Linux

  2. The C compiler version used (gcc --version)gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
    Copyright (C) 2019 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

  3. distribution, and version (cat /etc/os-release)
    NAME="Ubuntu"
    VERSION="20.04.2 LTS (Focal Fossa)"
    ID=ubuntu
    ID_LIKE=debian
    PRETTY_NAME="Ubuntu 20.04.2 LTS"
    VERSION_ID="20.04"
    HOME_URL="https://www.ubuntu.com/"
    SUPPORT_URL="https://help.ubuntu.com/"
    BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
    PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
    VERSION_CODENAME=focal
    UBUNTU_CODENAME=focal

  4. Tag or Branch of iomemory-vsl4 that is being compiled
    v5.12.1 - Boop Noodle

  5. FIO device used, if applicable

    • fio-status
    • Don't know where to find fio-util-4.3.7
    • lspci -b -nn

Unable to compile on RHEL8.4 using v4.20.1

Bug description

Getting a slew of errors with v4.20.1. Not sure what to do to clear them. The iomemory-vsl v4.20.3 builds fine, but I don't think I can use that for my system. Show you the errors below.

How to reproduce

What are the steps to reproduce the reported issue.

git clone https://github.com/snuf/iomemory-vsl4.git
cd iomemory-vsl4
git checkout v4.20.1
make rpm
<snip>
/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kcpu.c: In function '__kfio_bind_task_to_cpumask':
/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kcpu.c:139:10: error: 'struct task_struct' has no member named 'cpus_allowed'; did you mean 'nr_cpus_allowed'?
     tsk->cpus_allowed = *mask;
          ^~~~~~~~~~~~
          nr_cpus_allowed
make[3]: *** [scripts/Makefile.build:315: /root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kcpu.o] Error 1
make[3]: *** Waiting for unfinished jobs....
/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kblock.c: In function 'linux_bdev_hide_disk':
/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kblock.c:1145:13: error: implicit declaration of function 'blk_stop_queue'; did you mean 'blk_sync_queue'? [-Werror=implicit-function-declaration]
             blk_stop_queue(disk->rq);
             ^~~~~~~~~~~~~~
             blk_sync_queue
In file included from ././include/linux/compiler_types.h:58,
                 from <command-line>:
/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kblock.c: In function 'linux_bdev_update_stats':
./include/linux/compiler-gcc.h:16:19: error: expected expression before '__asm__'
 #define barrier() __asm__ __volatile__("": : :"memory")
                   ^~~~~~~
./include/linux/preempt.h:242:29: note: in expansion of macro 'barrier'
 #define preempt_disable()   barrier()
                             ^~~~~~~
./include/linux/genhd.h:321:26: note: in expansion of macro 'preempt_disable'
 #define part_stat_lock() preempt_disable()
                          ^~~~~~~~~~~~~~~
/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kblock.c:1319:19: note: in expansion of macro 'part_stat_lock'
             cpu = part_stat_lock();
                   ^~~~~~~~~~~~~~
/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kblock.c:1320:50: error: macro "part_stat_inc" passed 3 arguments, but takes just 2
             part_stat_inc(cpu, &gd->part0, ios[1]);
                                                  ^
/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kblock.c:1320:13: error: 'part_stat_inc' undeclared (first use in this function); did you mean 'param_set_int'?
             part_stat_inc(cpu, &gd->part0, ios[1]);
             ^~~~~~~~~~~~~
             param_set_int
/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kblock.c:1320:13: note: each undeclared identifier is reported only once for each function it appears in
/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kblock.c:1321:70: error: macro "part_stat_add" passed 4 arguments, but takes just 3
             part_stat_add(cpu, &gd->part0, sectors[1], totalsize >> 9);
                                                                      ^
/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kblock.c:1321:13: error: 'part_stat_add' undeclared (first use in this function); did you mean 'page_ref_add'?
             part_stat_add(cpu, &gd->part0, sectors[1], totalsize >> 9);
             ^~~~~~~~~~~~~
             page_ref_add
/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kblock.c:1323:84: error: macro "part_stat_add" passed 4 arguments, but takes just 3
             part_stat_add(cpu, &gd->part0, nsecs[1],   duration * FIO_NSEC_PER_USEC);   // Convert our usec duration to nsecs.
                                                                                    ^
/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kblock.c:1309:29: warning: unused variable 'gd' [-Wunused-variable]
             struct gendisk *gd = disk->gd;
                             ^~
In file included from ././include/linux/compiler_types.h:58,
                 from <command-line>:
./include/linux/compiler-gcc.h:16:19: error: expected expression before '__asm__'
 #define barrier() __asm__ __volatile__("": : :"memory")
                   ^~~~~~~
./include/linux/preempt.h:242:29: note: in expansion of macro 'barrier'
 #define preempt_disable()   barrier()
                             ^~~~~~~
./include/linux/genhd.h:321:26: note: in expansion of macro 'preempt_disable'
 #define part_stat_lock() preempt_disable()
                          ^~~~~~~~~~~~~~~
/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kblock.c:1360:19: note: in expansion of macro 'part_stat_lock'
             cpu = part_stat_lock();
                   ^~~~~~~~~~~~~~
/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kblock.c:1361:50: error: macro "part_stat_inc" passed 3 arguments, but takes just 2
             part_stat_inc(cpu, &gd->part0, ios[0]);
                                                  ^
/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kblock.c:1362:70: error: macro "part_stat_add" passed 4 arguments, but takes just 3
             part_stat_add(cpu, &gd->part0, sectors[0], totalsize >> 9);
                                                                      ^
/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kblock.c:1364:84: error: macro "part_stat_add" passed 4 arguments, but takes just 3
             part_stat_add(cpu, &gd->part0, nsecs[0],   duration * FIO_NSEC_PER_USEC);
                                                                                    ^
/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kblock.c:1352:29: warning: unused variable 'gd' [-Wunused-variable]
             struct gendisk *gd = disk->gd;
                             ^~
/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kblock.c: In function 'linux_bdev_update_inflight':
/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kblock.c:1449:18: error: 'struct hd_struct' has no member named 'in_flight'
         gd->part0.in_flight = in_flight;
                  ^
/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kblock.c: In function 'kfio_alloc_queue':
/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kblock.c:2323:24: error: incompatible types when assigning to type 'spinlock_t' {aka 'struct spinlock'} from type 'spinlock_t *' {aka 'struct spinlock *'}
         rq->queue_lock = (spinlock_t *)&dp->queue_lock;
                        ^
/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kblock.c: In function 'linux_bdev_backpressure':
/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kblock.c:2364:16: error: 'struct request_queue' has no member named 'request_fn'; did you mean 'make_request_fn'?
         if (q->request_fn)
                ^~~~~~~~~~
                make_request_fn
/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kblock.c: In function 'linux_bdev_lock_pending':
/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kblock.c:2418:12: error: 'struct request_queue' has no member named 'request_fn'; did you mean 'make_request_fn'?
     if (q->request_fn == NULL)
            ^~~~~~~~~~
            make_request_fn
cc1: some warnings being treated as errors
make[3]: *** [scripts/Makefile.build:315: /root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source/kblock.o] Error 1
make[2]: *** [Makefile:1563: _module_/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source] Error 2
make[2]: Leaving directory '/usr/src/kernels/4.18.0-305.el8.x86_64'
make[1]: *** [Makefile:134: modules] Error 2
make[1]: Leaving directory '/root/rpmbuild/BUILD/iomemory-vsl4-4.3.7.1205/driver_source'
+ set +x
ERROR:

error: Bad exit status from /var/tmp/rpm-tmp.n7NsMl (%build)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.n7NsMl (%build)
make: *** [Makefile:20: rpm] Error 1

Possible solution

I've seen some "similar" errors logged in the past. I have been able to get master to install, but the system then kernel panics. I've been warned against using the v5.x on a v4.x kernel though, so not surprised.

Environment information

Information about the system the module is used on

  1. Linux kernel compiled against (uname -a)
    • 4.18.0-305.el8.x86_64
  2. The C compiler version used (gcc --version)
    • 8.4.1-1
  3. distribution, and version (cat /etc/os-release)
    • 8.4 (Ootpa)
  4. Tag or Branch of iomemory-vsl4 that is being compiled
    • v4.20.1
  5. FIO device used, if applicable
    • 87:00.0 Mass storage controller [0180]: SanDisk ioMemory Mezzanine [1aed:3003]

fioinf ioMemory SX300-6400 0000:03:00.0: Voltage 'aux' spurious intr.

Bug description

The fusioIO is used as data dir for a PostgreSQL database.
The issue occure when trying to restore the database with PgBackrest.

How to reproduce

The card is mounter as XFS volume in /srv/postgresql.
The restore commande is :

pgbackrest --stanza=mystanza --buffer-size=16m --process-max=16 restore

Kernel log :

May  5 15:44:34 -- kernel: [  851.258090] fioinf ioMemory SX300-6400 0000:03:00.0: Voltage 'aux' spurious intr.

The same card works fin on the same hardware on Debian 8 with original drivers, but firmware v8.9.8.

Possible solution

Unknown

Environment information

Information about the system the module is used on

  1. Linux kernel compiled against : 5.10.0-13-amd64
  2. The C compiler version used : Debian 10.2.1-6
  3. distribution, and version : Debian GNU/Linux 11 bullseye
  4. Tag or Branch of iomemory-vsl : vsl4 / v5.12.1
  5. FIO device used, if applicabv5.12.1
    • fio-status
Found 1 VSL driver package:
   4.3.7 build 1205 Driver: loaded

Found 1 ioMemory device in this system

Adapter: ioMono  (driver 4.3.7)
        ioMemory SX300-6400, Product Number:MM86C, SN:--
        PCIe Power limit threshold: 24.75W
        Connected ioMemory modules:
          fct0: 03:00.0,        Product Number:MM86C, SN:--

fct0    Attached
        ioMemory Adapter Controller, Product Number:MM86C, SN:--
        PCI:03:00.0, Slot Number:6
        Firmware v8.9.9, rev 20200113 Public
        6400.00 GBytes device size
        Internal temperature: 36.91 degC, max 42.33 degC
        Reserve space status: Healthy; Reserves: 100.00%, warn at 10.00%
        Contained Virtual Partitions:
          fioa: ID:0, UUID:--

fioa    State: Online, Type: block device, Device: /dev/fioa
        ID:0, UUID:--
        6400.00 GBytes device size
  • lspci -b -nn
00:00.0 Host bridge [0600]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DMI2 [8086:2f00] (rev 02)
00:01.0 PCI bridge [0604]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 1 [8086:2f02] (rev 02)
00:02.0 PCI bridge [0604]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 2 [8086:2f04] (rev 02)
00:02.2 PCI bridge [0604]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 2 [8086:2f06] (rev 02)
00:03.0 PCI bridge [0604]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 3 [8086:2f08] (rev 02)
00:03.2 PCI bridge [0604]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 3 [8086:2f0a] (rev 02)
00:05.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Address Map, VTd_Misc, System Management [8086:2f28] (rev 02)
00:05.1 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Hot Plug [8086:2f29] (rev 02)
00:05.2 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 RAS, Control Status and Global Errors [8086:2f2a] (rev 02)
00:05.4 PIC [0800]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 I/O APIC [8086:2f2c] (rev 02)
00:11.0 Unassigned class [ff00]: Intel Corporation C610/X99 series chipset SPSR [8086:8d7c] (rev 05)
00:11.4 SATA controller [0106]: Intel Corporation C610/X99 series chipset sSATA Controller [AHCI mode] [8086:8d62] (rev 05)
00:16.0 Communication controller [0780]: Intel Corporation C610/X99 series chipset MEI Controller #1 [8086:8d3a] (rev 05)
00:16.1 Communication controller [0780]: Intel Corporation C610/X99 series chipset MEI Controller #2 [8086:8d3b] (rev 05)
00:1a.0 USB controller [0c03]: Intel Corporation C610/X99 series chipset USB Enhanced Host Controller #2 [8086:8d2d] (rev 05)
00:1c.0 PCI bridge [0604]: Intel Corporation C610/X99 series chipset PCI Express Root Port #1 [8086:8d10] (rev d5)
00:1c.7 PCI bridge [0604]: Intel Corporation C610/X99 series chipset PCI Express Root Port #8 [8086:8d1e] (rev d5)
00:1d.0 USB controller [0c03]: Intel Corporation C610/X99 series chipset USB Enhanced Host Controller #1 [8086:8d26] (rev 05)
00:1f.0 ISA bridge [0601]: Intel Corporation C610/X99 series chipset LPC Controller [8086:8d44] (rev 05)
00:1f.2 SATA controller [0106]: Intel Corporation C610/X99 series chipset 6-Port SATA Controller [AHCI mode] [8086:8d02] (rev 05)
01:00.0 Ethernet controller [0200]: Broadcom Inc. and subsidiaries NetXtreme II BCM57800 1/10 Gigabit Ethernet [14e4:168a] (rev 10)
01:00.1 Ethernet controller [0200]: Broadcom Inc. and subsidiaries NetXtreme II BCM57800 1/10 Gigabit Ethernet [14e4:168a] (rev 10)
01:00.2 Ethernet controller [0200]: Broadcom Inc. and subsidiaries NetXtreme II BCM57800 1/10 Gigabit Ethernet [14e4:168a] (rev 10)
01:00.3 Ethernet controller [0200]: Broadcom Inc. and subsidiaries NetXtreme II BCM57800 1/10 Gigabit Ethernet [14e4:168a] (rev 10)
02:00.0 RAID bus controller [0104]: Broadcom / LSI MegaRAID SAS-3 3108 [Invader] [1000:005d] (rev 02)
03:00.0 Mass storage controller [0180]: SanDisk ioMemory FHHL [1aed:3001]
07:00.0 PCI bridge [0604]: Renesas Technology Corp. SH7758 PCIe Switch [PS] [1912:001d]
08:00.0 PCI bridge [0604]: Renesas Technology Corp. SH7758 PCIe Switch [PS] [1912:001d]
09:00.0 PCI bridge [0604]: Renesas Technology Corp. SH7758 PCIe-PCI Bridge [PPB] [1912:001a]
0a:00.0 VGA compatible controller [0300]: Matrox Electronics Systems Ltd. G200eR2 [102b:0534] (rev 01)
7f:08.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 0 [8086:2f80] (rev 02)
7f:08.2 Performance counters [1101]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 0 [8086:2f32] (rev 02)
7f:08.3 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 0 [8086:2f83] (rev 02)
7f:09.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 1 [8086:2f90] (rev 02)
7f:09.2 Performance counters [1101]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 1 [8086:2f33] (rev 02)
7f:09.3 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 1 [8086:2f93] (rev 02)
7f:0b.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 R3 QPI Link 0 & 1 Monitoring [8086:2f81] (rev 02)
7f:0b.1 Performance counters [1101]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 R3 QPI Link 0 & 1 Monitoring [8086:2f36] (rev 02)
7f:0b.2 Performance counters [1101]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 R3 QPI Link 0 & 1 Monitoring [8086:2f37] (rev 02)
7f:0c.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers [8086:2fe0] (rev 02)
7f:0c.1 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers [8086:2fe1] (rev 02)
7f:0c.2 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers [8086:2fe2] (rev 02)
7f:0c.3 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers [8086:2fe3] (rev 02)
7f:0c.4 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers [8086:2fe4] (rev 02)
7f:0c.5 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers [8086:2fe5] (rev 02)
7f:0c.6 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers [8086:2fe6] (rev 02)
7f:0c.7 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers [8086:2fe7] (rev 02)
7f:0f.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Buffered Ring Agent [8086:2ff8] (rev 02)
7f:0f.1 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Buffered Ring Agent [8086:2ff9] (rev 02)
7f:0f.4 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 System Address Decoder & Broadcast Registers [8086:2ffc] (rev 02)
7f:0f.5 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 System Address Decoder & Broadcast Registers [8086:2ffd] (rev 02)
7f:0f.6 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 System Address Decoder & Broadcast Registers [8086:2ffe] (rev 02)
7f:10.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCIe Ring Interface [8086:2f1d] (rev 02)
7f:10.1 Performance counters [1101]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCIe Ring Interface [8086:2f34] (rev 02)
7f:10.5 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Scratchpad & Semaphore Registers [8086:2f1e] (rev 02)
7f:10.6 Performance counters [1101]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Scratchpad & Semaphore Registers [8086:2f7d] (rev 02)
7f:10.7 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Scratchpad & Semaphore Registers [8086:2f1f] (rev 02)
7f:12.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Home Agent 0 [8086:2fa0] (rev 02)
7f:12.1 Performance counters [1101]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Home Agent 0 [8086:2f30] (rev 02)
7f:12.2 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Home Agent 0 Debug [8086:2f70] (rev 02)
7f:13.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Target Address, Thermal & RAS Registers [8086... (rev 02)
7f:13.1 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Target Address, Thermal & RAS Registers [8086... (rev 02)
7f:13.2 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder [8086:2faa] (rev 02)
7f:13.3 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder [8086:2fab] (rev 02)
7f:13.4 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder [8086:2fac] (rev 02)
7f:13.5 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder [8086:2fad] (rev 02)
7f:13.6 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO Channel 0/1 Broadcast [8086:2fae] (rev 02)
7f:13.7 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO Global Broadcast [8086:2faf] (rev 02)
7f:14.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 0 Thermal Control [8086:2fb0] (rev 02)
7f:14.1 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 1 Thermal Control [8086:2fb1] (rev 02)
7f:14.2 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 0 ERROR Registers [8086:2fb2] (rev 02)
7f:14.3 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 1 ERROR Registers [8086:2fb3] (rev 02)
7f:14.4 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO (VMSE) 0 & 1 [8086:2fbc] (rev 02)
7f:14.5 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO (VMSE) 0 & 1 [8086:2fbd] (rev 02)
7f:14.6 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO (VMSE) 0 & 1 [8086:2fbe] (rev 02)
7f:14.7 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO (VMSE) 0 & 1 [8086:2fbf] (rev 02)
7f:15.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 2 Thermal Control [8086:2fb4] (rev 02)
7f:15.1 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 3 Thermal Control [8086:2fb5] (rev 02)
7f:15.2 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 2 ERROR Registers [8086:2fb6] (rev 02)
7f:15.3 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 3 ERROR Registers [8086:2fb7] (rev 02)
7f:16.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 1 Target Address, Thermal & RAS Registers [8086... (rev 02)
7f:16.6 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO Channel 2/3 Broadcast [8086:2f6e] (rev 02)
7f:16.7 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO Global Broadcast [8086:2f6f] (rev 02)
7f:17.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 1 Channel 0 Thermal Control [8086:2fd0] (rev 02)
7f:17.4 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO (VMSE) 2 & 3 [8086:2fb8] (rev 02)
7f:17.5 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO (VMSE) 2 & 3 [8086:2fb9] (rev 02)
7f:17.6 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO (VMSE) 2 & 3 [8086:2fba] (rev 02)
7f:17.7 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO (VMSE) 2 & 3 [8086:2fbb] (rev 02)
7f:1e.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Power Control Unit [8086:2f98] (rev 02)
7f:1e.1 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Power Control Unit [8086:2f99] (rev 02)
7f:1e.2 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Power Control Unit [8086:2f9a] (rev 02)
7f:1e.3 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Power Control Unit [8086:2fc0] (rev 02)
7f:1e.4 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Power Control Unit [8086:2f9c] (rev 02)
7f:1f.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 VCU [8086:2f88] (rev 02)
7f:1f.2 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 VCU [8086:2f8a] (rev 02)
80:01.0 PCI bridge [0604]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 1 [8086:2f02] (rev 02)
80:02.0 PCI bridge [0604]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 2 [8086:2f04] (rev 02)
80:03.0 PCI bridge [0604]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 3 [8086:2f08] (rev 02)
80:03.2 PCI bridge [0604]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 3 [8086:2f0a] (rev 02)
80:05.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Address Map, VTd_Misc, System Management [8086:2f28] (rev 02)
80:05.1 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Hot Plug [8086:2f29] (rev 02)
80:05.2 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 RAS, Control Status and Global Errors [8086:2f2a] (rev 02)
80:05.4 PIC [0800]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 I/O APIC [8086:2f2c] (rev 02)
81:00.0 Ethernet controller [0200]: Intel Corporation Ethernet 10G 2P X520 Adapter [8086:154d] (rev 01)
81:00.1 Ethernet controller [0200]: Intel Corporation Ethernet 10G 2P X520 Adapter [8086:154d] (rev 01)
ff:08.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 0 [8086:2f80] (rev 02)
ff:08.2 Performance counters [1101]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 0 [8086:2f32] (rev 02)
ff:08.3 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 0 [8086:2f83] (rev 02)
ff:09.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 1 [8086:2f90] (rev 02)
ff:09.2 Performance counters [1101]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 1 [8086:2f33] (rev 02)
ff:09.3 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 1 [8086:2f93] (rev 02)
ff:0b.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 R3 QPI Link 0 & 1 Monitoring [8086:2f81] (rev 02)
ff:0b.1 Performance counters [1101]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 R3 QPI Link 0 & 1 Monitoring [8086:2f36] (rev 02)
ff:0b.2 Performance counters [1101]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 R3 QPI Link 0 & 1 Monitoring [8086:2f37] (rev 02)
ff:0c.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers [8086:2fe0] (rev 02)
ff:0c.1 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers [8086:2fe1] (rev 02)
ff:0c.2 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers [8086:2fe2] (rev 02)
ff:0c.3 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers [8086:2fe3] (rev 02)
ff:0c.4 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers [8086:2fe4] (rev 02)
ff:0c.5 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers [8086:2fe5] (rev 02)
ff:0c.6 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers [8086:2fe6] (rev 02)
ff:0c.7 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers [8086:2fe7] (rev 02)
ff:0f.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Buffered Ring Agent [8086:2ff8] (rev 02)
ff:0f.1 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Buffered Ring Agent [8086:2ff9] (rev 02)
ff:0f.4 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 System Address Decoder & Broadcast Registers [8086:2ffc] (rev 02)
ff:0f.5 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 System Address Decoder & Broadcast Registers [8086:2ffd] (rev 02)
ff:0f.6 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 System Address Decoder & Broadcast Registers [8086:2ffe] (rev 02)
ff:10.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCIe Ring Interface [8086:2f1d] (rev 02)
ff:10.1 Performance counters [1101]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCIe Ring Interface [8086:2f34] (rev 02)
ff:10.5 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Scratchpad & Semaphore Registers [8086:2f1e] (rev 02)
ff:10.6 Performance counters [1101]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Scratchpad & Semaphore Registers [8086:2f7d] (rev 02)
ff:10.7 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Scratchpad & Semaphore Registers [8086:2f1f] (rev 02)
ff:12.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Home Agent 0 [8086:2fa0] (rev 02)
ff:12.1 Performance counters [1101]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Home Agent 0 [8086:2f30] (rev 02)
ff:12.2 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Home Agent 0 Debug [8086:2f70] (rev 02)
ff:13.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Target Address, Thermal & RAS Registers [8086... (rev 02)
ff:13.1 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Target Address, Thermal & RAS Registers [8086... (rev 02)
ff:13.2 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder [8086:2faa] (rev 02)
ff:13.3 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder [8086:2fab] (rev 02)
ff:13.4 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder [8086:2fac] (rev 02)
ff:13.5 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder [8086:2fad] (rev 02)
ff:13.6 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO Channel 0/1 Broadcast [8086:2fae] (rev 02)
ff:13.7 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO Global Broadcast [8086:2faf] (rev 02)
ff:14.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 0 Thermal Control [8086:2fb0] (rev 02)
ff:14.1 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 1 Thermal Control [8086:2fb1] (rev 02)
ff:14.2 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 0 ERROR Registers [8086:2fb2] (rev 02)
ff:14.3 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 1 ERROR Registers [8086:2fb3] (rev 02)
ff:14.4 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO (VMSE) 0 & 1 [8086:2fbc] (rev 02)
ff:14.5 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO (VMSE) 0 & 1 [8086:2fbd] (rev 02)
ff:14.6 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO (VMSE) 0 & 1 [8086:2fbe] (rev 02)
ff:14.7 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO (VMSE) 0 & 1 [8086:2fbf] (rev 02)
ff:15.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 2 Thermal Control [8086:2fb4] (rev 02)
ff:15.1 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 3 Thermal Control [8086:2fb5] (rev 02)
ff:15.2 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 2 ERROR Registers [8086:2fb6] (rev 02)
ff:15.3 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 0 Channel 3 ERROR Registers [8086:2fb7] (rev 02)
ff:16.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 1 Target Address, Thermal & RAS Registers [8086... (rev 02)
ff:16.6 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO Channel 2/3 Broadcast [8086:2f6e] (rev 02)
ff:16.7 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO Global Broadcast [8086:2f6f] (rev 02)
ff:17.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Integrated Memory Controller 1 Channel 0 Thermal Control [8086:2fd0] (rev 02)
ff:17.4 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO (VMSE) 2 & 3 [8086:2fb8] (rev 02)
ff:17.5 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO (VMSE) 2 & 3 [8086:2fb9] (rev 02)
ff:17.6 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO (VMSE) 2 & 3 [8086:2fba] (rev 02)
ff:17.7 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DDRIO (VMSE) 2 & 3 [8086:2fbb] (rev 02)
ff:1e.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Power Control Unit [8086:2f98] (rev 02)
ff:1e.1 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Power Control Unit [8086:2f99] (rev 02)
ff:1e.2 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Power Control Unit [8086:2f9a] (rev 02)
ff:1e.3 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Power Control Unit [8086:2fc0] (rev 02)
ff:1e.4 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Power Control Unit [8086:2f9c] (rev 02)
ff:1f.0 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 VCU [8086:2f88] (rev 02)
ff:1f.2 System peripheral [0880]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 VCU [8086:2f8a] (rev 02)

rpmbuild fails in Fedora 31

[root@localhost iomemory-vsl4]# rpmbuild -ba fio-driver.spec
warning: line 37: It's not recommended to have unversioned Obsoletes: Obsoletes: iodrive-driver-kmod, iodrive-driver, fio-driver
warning: line 37: It's not recommended to have unversioned Obsoletes: Obsoletes: iodrive-driver-kmod, iodrive-driver, fio-driver
error: Bad source: /root/rpmbuild/SOURCES/iomemory-vsl4-4.3.7.1205.tar.gz: No such file or directory

60-persistent-fio.rules doesnt work on proxmox

Bug description

I am trying to add 60-persistent-fio.rules into udev.
RemixVSL/iomemory-vsl#74

How to reproduce

What are the steps to reproduce the reported issue.

git clone https://github.com/snuf/iomemory-vsl4.git
cd iomemory-vsl4
make dkms

"reboot"

cp iomemory-vsl4/tools/udev/rules.d/60-persistent-fio.rules /etc/udev/rules.d/

"reboot"


takes forever to boot
and syslog contains this

Aug 25 03:31:32 pve systemd-udevd[574]: fioa1: Worker [588] processing SEQNUM=4954 is taking a long time
Aug 25 03:32:40 pve systemd-udevd[574]: fioa1: Worker [588] processing SEQNUM=4954 killed
Aug 25 03:32:40 pve systemd-udevd[574]: Worker [588] terminated by signal 9 (KILL)
Aug 25 03:32:40 pve systemd-udevd[574]: fioa1: Worker [588] failed

also, despite of persistant-fio.rules, I see this error on dmesg

[   11.889181] ================================================================================
[   11.889244] UBSAN: array-index-out-of-bounds in /var/lib/dkms/iomemory-vsl4/5.15.39-4-fe767c6/build/kcpu.c:257:29
[   11.889274] index 1 is out of range for type 'uint32_t [*]'
[   11.889292] CPU: 0 PID: 319 Comm: kworker/0:5 Tainted: P        W IO      5.15.39-4-pve #1
[   11.889294] Hardware name: Dell Inc. Precision 5820 Tower/002KVM, BIOS 1.11.1 04/24/2019
[   11.889296] Workqueue: events work_for_cpu_fn
[   11.889306] Call Trace:
[   11.889308]  <TASK>
[   11.889311]  dump_stack_lvl+0x4a/0x63
[   11.889320]  dump_stack+0x10/0x16
[   11.889322]  ubsan_epilogue+0x9/0x49
[   11.889324]  __ubsan_handle_out_of_bounds.cold+0x44/0x49
[   11.889327]  ? __alloc_pages+0x17b/0x320
[   11.889332]  kfio_map_cpus_to_read_queues+0x1b2/0x630 [iomemory_vsl4]
[   11.889386]  ? dma_direct_alloc+0xee/0x2c0
[   11.889391]  ifio_16f86.0f44428653ea0b4766f7b44db386e2dd47d.4.3.7.1205+0xb8/0xd0 [iomemory_vsl4]
[   11.889427]  ifio_25005.a659bcb9c7a6b0c8868f9462e81739ff7b7.4.3.7.1205+0xff/0x6e0 [iomemory_vsl4]
[   11.889460]  ifio_75996.b4e60ba8ffd03bc396fde18541f7e3f09f3.4.3.7.1205+0xa37/0x1550 [iomemory_vsl4]
[   11.889489]  ? kfio_vmalloc+0xe/0x20 [iomemory_vsl4]
[   11.889510]  ? vmalloc+0x21/0x30
[   11.889516]  ifio_d8156.024cd992cd73ed3fc5751d93a4015c5a808.4.3.7.1205+0x5f8/0x730 [iomemory_vsl4]
[   11.889544]  ? acpi_register_gsi_ioapic+0x94/0x180
[   11.889550]  ? __request_region+0x68/0xa0
[   11.889554]  ? __pci_request_region+0x17a/0x340
[   11.889559]  iodrive_pci_attach+0x2a/0x330 [iomemory_vsl4]
[   11.889586]  ? __pci_request_selected_regions+0x40/0x80
[   11.889590]  iodrive_pci_probe+0x70/0x160 [iomemory_vsl4]
[   11.889608]  local_pci_probe+0x48/0x90
[   11.889611]  work_for_cpu_fn+0x17/0x30
[   11.889615]  process_one_work+0x228/0x3d0
[   11.889617]  worker_thread+0x223/0x420
[   11.889619]  ? process_one_work+0x3d0/0x3d0
[   11.889621]  kthread+0x127/0x150
[   11.889624]  ? set_kthread_struct+0x50/0x50
[   11.889628]  ret_from_fork+0x1f/0x30
[   11.889633]  </TASK>
[   11.889634] ================================================================================

** poof, broken token **

Environment information

Information about the system the module is used on

  1. Linux kernel compiled against (uname -a)
    Linux pve 5.15.39-4-pve #1 SMP PVE 5.15.39-4 (Mon, 08 Aug 2022 15:11:15 +0200) x86_64 GNU/Linux

  2. The C compiler version used (gcc --version)
    gcc (Debian 10.2.1-6) 10.2.1 20210110

  3. distribution, and version (cat /etc/os-release)
    PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
    NAME="Debian GNU/Linux"
    VERSION_ID="11"
    VERSION="11 (bullseye)"
    VERSION_CODENAME=bullseye
    ID=debian
    HOME_URL="https://www.debian.org/"
    SUPPORT_URL="https://www.debian.org/support"
    BUG_REPORT_URL="https://bugs.debian.org/"

  4. Tag or Branch of iomemory-vsl4 that is being compiled
    main

  5. FIO device used, if applicable

    • fio-status
      Found 1 VSL driver package:
      4.3.7 build 1205 Driver: loaded

Found 1 ioMemory device in this system

Adapter: ioMono (driver 4.3.7)
HPE 1.6TB Read Intensive-2 HHHL PCIe Workload Accelerator, Product Number:831735-B21, SN:3UN740K031
PCIe Power limit threshold: 24.75W
Connected ioMemory modules:
fct0: 17:00.0, Product Number:831735-B21, SN:3UN740K031

fct0 Attached
ioMemory Adapter Controller, Product Number:831735-B21, SN:1521G0109
PCI:17:00.0, Slot Number:4
Firmware v8.9.9, rev 20180621 Public
1600.00 GBytes device size
Internal temperature: 50.69 degC, max 56.11 degC
Reserve space status: Healthy; Reserves: 100.00%, warn at 10.00%
Contained Virtual Partitions:
fioa: ID:0, UUID:c58ae67e-63e8-4dce-adfe-03b0c8e9a586

fioa State: Online, Type: block device, Device: /dev/fioa
ID:0, UUID:c58ae67e-63e8-4dce-adfe-03b0c8e9a586
1600.00 GBytes device size

  • lspci -b -nn
    0000:00:00.0 Host bridge [0600]: Intel Corporation Sky Lake-E DMI3 Registers [8086:2020] (rev 04)
    0000:00:04.0 System peripheral [0880]: Intel Corporation Sky Lake-E CBDMA Registers [8086:2021] (rev 04)
    0000:00:04.1 System peripheral [0880]: Intel Corporation Sky Lake-E CBDMA Registers [8086:2021] (rev 04)
    0000:00:04.2 System peripheral [0880]: Intel Corporation Sky Lake-E CBDMA Registers [8086:2021] (rev 04)
    0000:00:04.3 System peripheral [0880]: Intel Corporation Sky Lake-E CBDMA Registers [8086:2021] (rev 04)
    0000:00:04.4 System peripheral [0880]: Intel Corporation Sky Lake-E CBDMA Registers [8086:2021] (rev 04)
    0000:00:04.5 System peripheral [0880]: Intel Corporation Sky Lake-E CBDMA Registers [8086:2021] (rev 04)
    0000:00:04.6 System peripheral [0880]: Intel Corporation Sky Lake-E CBDMA Registers [8086:2021] (rev 04)
    0000:00:04.7 System peripheral [0880]: Intel Corporation Sky Lake-E CBDMA Registers [8086:2021] (rev 04)
    0000:00:05.0 System peripheral [0880]: Intel Corporation Sky Lake-E MM/Vt-d Configuration Registers [8086:2024] (rev 04)
    0000:00:05.2 System peripheral [0880]: Intel Corporation Sky Lake-E RAS [8086:2025] (rev 04)
    0000:00:05.4 PIC [0800]: Intel Corporation Sky Lake-E IOAPIC [8086:2026] (rev 04)
    0000:00:08.0 System peripheral [0880]: Intel Corporation Sky Lake-E Ubox Registers [8086:2014] (rev 04)
    0000:00:08.1 Performance counters [1101]: Intel Corporation Sky Lake-E Ubox Registers [8086:2015] (rev 04)
    0000:00:08.2 System peripheral [0880]: Intel Corporation Sky Lake-E Ubox Registers [8086:2016] (rev 04)
    0000:00:14.0 USB controller [0c03]: Intel Corporation 200 Series/Z370 Chipset Family USB 3.0 xHCI Controller [8086:a2af]
    0000:00:14.2 Signal processing controller [1180]: Intel Corporation 200 Series PCH Thermal Subsystem [8086:a2b1]
    0000:00:16.0 Communication controller [0780]: Intel Corporation 200 Series PCH CSME HECI #1 [8086:a2ba]
    0000:00:17.0 RAID bus controller [0104]: Intel Corporation C600/X79 series chipset SATA RAID Controller [8086:2826]
    0000:00:1c.0 PCI bridge [0604]: Intel Corporation 200 Series PCH PCI Express Root Port #1 [8086:a290] (rev f0)
    0000:00:1c.6 PCI bridge [0604]: Intel Corporation 200 Series PCH PCI Express Root Port #7 [8086:a296] (rev f0)
    0000:00:1f.0 ISA bridge [0601]: Intel Corporation C422 Chipset LPC/eSPI Controller [8086:a2d3]
    0000:00:1f.2 Memory controller [0580]: Intel Corporation 200 Series/Z370 Chipset Family Power Management Controller [8086:a2a1]
    0000:00:1f.3 Audio device [0403]: Intel Corporation 200 Series PCH HD Audio [8086:a2f0]
    0000:00:1f.4 SMBus [0c05]: Intel Corporation 200 Series/Z370 Chipset Family SMBus Controller [8086:a2a3]
    0000:00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection (5) I219-LM [8086:15e3]
    0000:02:00.0 PCI bridge [0604]: Texas Instruments XIO2001 PCI Express-to-PCI Bridge [104c:8240]
    0000:16:00.0 PCI bridge [0604]: Intel Corporation Sky Lake-E PCI Express Root Port A [8086:2030] (rev 04)
    0000:16:05.0 System peripheral [0880]: Intel Corporation Sky Lake-E VT-d [8086:2034] (rev 04)
    0000:16:05.2 System peripheral [0880]: Intel Corporation Sky Lake-E RAS Configuration Registers [8086:2035] (rev 04)
    0000:16:05.4 PIC [0800]: Intel Corporation Sky Lake-E IOxAPIC Configuration Registers [8086:2036] (rev 04)
    0000:16:08.0 System peripheral [0880]: Intel Corporation Sky Lake-E CHA Registers [8086:208d] (rev 04)
    0000:16:08.1 System peripheral [0880]: Intel Corporation Sky Lake-E CHA Registers [8086:208d] (rev 04)
    0000:16:08.2 System peripheral [0880]: Intel Corporation Sky Lake-E CHA Registers [8086:208d] (rev 04)
    0000:16:08.3 System peripheral [0880]: Intel Corporation Sky Lake-E CHA Registers [8086:208d] (rev 04)
    0000:16:08.4 System peripheral [0880]: Intel Corporation Sky Lake-E CHA Registers [8086:208d] (rev 04)
    0000:16:08.5 System peripheral [0880]: Intel Corporation Sky Lake-E CHA Registers [8086:208d] (rev 04)
    0000:16:08.6 System peripheral [0880]: Intel Corporation Sky Lake-E CHA Registers [8086:208d] (rev 04)
    0000:16:08.7 System peripheral [0880]: Intel Corporation Sky Lake-E CHA Registers [8086:208d] (rev 04)
    0000:16:09.0 System peripheral [0880]: Intel Corporation Sky Lake-E CHA Registers [8086:208d] (rev 04)
    0000:16:09.1 System peripheral [0880]: Intel Corporation Sky Lake-E CHA Registers [8086:208d] (rev 04)
    0000:16:0e.0 System peripheral [0880]: Intel Corporation Sky Lake-E CHA Registers [8086:208e] (rev 04)
    0000:16:0e.1 System peripheral [0880]: Intel Corporation Sky Lake-E CHA Registers [8086:208e] (rev 04)
    0000:16:0e.2 System peripheral [0880]: Intel Corporation Sky Lake-E CHA Registers [8086:208e] (rev 04)
    0000:16:0e.3 System peripheral [0880]: Intel Corporation Sky Lake-E CHA Registers [8086:208e] (rev 04)
    0000:16:0e.4 System peripheral [0880]: Intel Corporation Sky Lake-E CHA Registers [8086:208e] (rev 04)
    0000:16:0e.5 System peripheral [0880]: Intel Corporation Sky Lake-E CHA Registers [8086:208e] (rev 04)
    0000:16:0e.6 System peripheral [0880]: Intel Corporation Sky Lake-E CHA Registers [8086:208e] (rev 04)
    0000:16:0e.7 System peripheral [0880]: Intel Corporation Sky Lake-E CHA Registers [8086:208e] (rev 04)
    0000:16:0f.0 System peripheral [0880]: Intel Corporation Sky Lake-E CHA Registers [8086:208e] (rev 04)
    0000:16:0f.1 System peripheral [0880]: Intel Corporation Sky Lake-E CHA Registers [8086:208e] (rev 04)
    0000:16:1d.0 System peripheral [0880]: Intel Corporation Sky Lake-E CHA Registers [8086:2054] (rev 04)
    0000:16:1d.1 System peripheral [0880]: Intel Corporation Sky Lake-E CHA Registers [8086:2055] (rev 04)
    0000:16:1d.2 System peripheral [0880]: Intel Corporation Sky Lake-E CHA Registers [8086:2056] (rev 04)
    0000:16:1d.3 System peripheral [0880]: Intel Corporation Sky Lake-E CHA Registers [8086:2057] (rev 04)
    0000:16:1e.0 System peripheral [0880]: Intel Corporation Sky Lake-E PCU Registers [8086:2080] (rev 04)
    0000:16:1e.1 System peripheral [0880]: Intel Corporation Sky Lake-E PCU Registers [8086:2081] (rev 04)
    0000:16:1e.2 System peripheral [0880]: Intel Corporation Sky Lake-E PCU Registers [8086:2082] (rev 04)
    0000:16:1e.3 System peripheral [0880]: Intel Corporation Sky Lake-E PCU Registers [8086:2083] (rev 04)
    0000:16:1e.4 System peripheral [0880]: Intel Corporation Sky Lake-E PCU Registers [8086:2084] (rev 04)
    0000:16:1e.5 System peripheral [0880]: Intel Corporation Sky Lake-E PCU Registers [8086:2085] (rev 04)
    0000:16:1e.6 System peripheral [0880]: Intel Corporation Sky Lake-E PCU Registers [8086:2086] (rev 04)
    0000:17:00.0 Mass storage controller [0180]: SanDisk ioMemory HHHL [1aed:3002]
    0000:64:00.0 PCI bridge [0604]: Intel Corporation Sky Lake-E PCI Express Root Port A [8086:2030] (rev 04)
    0000:64:05.0 System peripheral [0880]: Intel Corporation Sky Lake-E VT-d [8086:2034] (rev 04)
    0000:64:05.2 System peripheral [0880]: Intel Corporation Sky Lake-E RAS Configuration Registers [8086:2035] (rev 04)
    0000:64:05.4 PIC [0800]: Intel Corporation Sky Lake-E IOxAPIC Configuration Registers [8086:2036] (rev 04)
    0000:64:08.0 System peripheral [0880]: Intel Corporation Sky Lake-E Integrated Memory Controller [8086:2066] (rev 04)
    0000:64:09.0 System peripheral [0880]: Intel Corporation Sky Lake-E Integrated Memory Controller [8086:2066] (rev 04)
    0000:64:0a.0 System peripheral [0880]: Intel Corporation Sky Lake-E Integrated Memory Controller [8086:2040] (rev 04)
    0000:64:0a.1 System peripheral [0880]: Intel Corporation Sky Lake-E Integrated Memory Controller [8086:2041] (rev 04)
    0000:64:0a.2 System peripheral [0880]: Intel Corporation Sky Lake-E Integrated Memory Controller [8086:2042] (rev 04)
    0000:64:0a.3 System peripheral [0880]: Intel Corporation Sky Lake-E Integrated Memory Controller [8086:2043] (rev 04)
    0000:64:0a.4 System peripheral [0880]: Intel Corporation Sky Lake-E Integrated Memory Controller [8086:2044] (rev 04)
    0000:64:0a.5 System peripheral [0880]: Intel Corporation Sky Lake-E LM Channel 1 [8086:2045] (rev 04)
    0000:64:0a.6 System peripheral [0880]: Intel Corporation Sky Lake-E LMS Channel 1 [8086:2046] (rev 04)
    0000:64:0a.7 System peripheral [0880]: Intel Corporation Sky Lake-E LMDP Channel 1 [8086:2047] (rev 04)
    0000:64:0b.0 System peripheral [0880]: Intel Corporation Sky Lake-E DECS Channel 2 [8086:2048] (rev 04)
    0000:64:0b.1 System peripheral [0880]: Intel Corporation Sky Lake-E LM Channel 2 [8086:2049] (rev 04)
    0000:64:0b.2 System peripheral [0880]: Intel Corporation Sky Lake-E LMS Channel 2 [8086:204a] (rev 04)
    0000:64:0b.3 System peripheral [0880]: Intel Corporation Sky Lake-E LMDP Channel 2 [8086:204b] (rev 04)
    0000:64:0c.0 System peripheral [0880]: Intel Corporation Sky Lake-E Integrated Memory Controller [8086:2040] (rev 04)
    0000:64:0c.1 System peripheral [0880]: Intel Corporation Sky Lake-E Integrated Memory Controller [8086:2041] (rev 04)
    0000:64:0c.2 System peripheral [0880]: Intel Corporation Sky Lake-E Integrated Memory Controller [8086:2042] (rev 04)
    0000:64:0c.3 System peripheral [0880]: Intel Corporation Sky Lake-E Integrated Memory Controller [8086:2043] (rev 04)
    0000:64:0c.4 System peripheral [0880]: Intel Corporation Sky Lake-E Integrated Memory Controller [8086:2044] (rev 04)
    0000:64:0c.5 System peripheral [0880]: Intel Corporation Sky Lake-E LM Channel 1 [8086:2045] (rev 04)
    0000:64:0c.6 System peripheral [0880]: Intel Corporation Sky Lake-E LMS Channel 1 [8086:2046] (rev 04)
    0000:64:0c.7 System peripheral [0880]: Intel Corporation Sky Lake-E LMDP Channel 1 [8086:2047] (rev 04)
    0000:64:0d.0 System peripheral [0880]: Intel Corporation Sky Lake-E DECS Channel 2 [8086:2048] (rev 04)
    0000:64:0d.1 System peripheral [0880]: Intel Corporation Sky Lake-E LM Channel 2 [8086:2049] (rev 04)
    0000:64:0d.2 System peripheral [0880]: Intel Corporation Sky Lake-E LMS Channel 2 [8086:204a] (rev 04)
    0000:64:0d.3 System peripheral [0880]: Intel Corporation Sky Lake-E LMDP Channel 2 [8086:204b] (rev 04)
    0000:65:00.0 VGA compatible controller [0300]: NVIDIA Corporation GM204 [GeForce GTX 980] [10de:13c0] (rev a1)
    0000:65:00.1 Audio device [0403]: NVIDIA Corporation GM204 High Definition Audio Controller [10de:0fbb] (rev a1)
    0000:b2:00.0 PCI bridge [0604]: Intel Corporation Sky Lake-E PCI Express Root Port A [8086:2030] (rev 04)
    0000:b2:05.0 System peripheral [0880]: Intel Corporation Sky Lake-E VT-d [8086:2034] (rev 04)
    0000:b2:05.2 System peripheral [0880]: Intel Corporation Sky Lake-E RAS Configuration Registers [8086:2035] (rev 04)
    0000:b2:05.4 PIC [0800]: Intel Corporation Sky Lake-E IOxAPIC Configuration Registers [8086:2036] (rev 04)
    0000:b2:05.5 RAID bus controller [0104]: Intel Corporation Volume Management Device NVMe RAID Controller [8086:201d] (rev 04)
    0000:b2:12.0 Performance counters [1101]: Intel Corporation Sky Lake-E M3KTI Registers [8086:204c] (rev 04)
    0000:b2:12.1 Performance counters [1101]: Intel Corporation Sky Lake-E M3KTI Registers [8086:204d] (rev 04)
    0000:b2:12.2 System peripheral [0880]: Intel Corporation Sky Lake-E M3KTI Registers [8086:204e] (rev 04)
    0000:b2:15.0 System peripheral [0880]: Intel Corporation Sky Lake-E M2PCI Registers [8086:2018] (rev 04)
    0000:b2:16.0 System peripheral [0880]: Intel Corporation Sky Lake-E M2PCI Registers [8086:2018] (rev 04)
    0000:b2:16.4 System peripheral [0880]: Intel Corporation Sky Lake-E M2PCI Registers [8086:2018] (rev 04)
    0000:b2:17.0 System peripheral [0880]: Intel Corporation Sky Lake-E M2PCI Registers [8086:2018] (rev 04)
    0000:b3:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Oland [Radeon HD 8570 / R5 430 OEM / R7 240/340 / Radeon 520 OEM] [1002:6611]
    0000:b3:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Oland/Hainan/Cape Verde/Pitcairn HDMI Audio [Radeon HD 7000 Series] [1002:aab0]
    10000:00:02.0 PCI bridge [0604]: Intel Corporation Sky Lake-E PCI Express Root Port C [8086:2032] (rev 04)
    10000:00:03.0 PCI bridge [0604]: Intel Corporation Sky Lake-E PCI Express Root Port D [8086:2033] (rev 04)

failing compiling on proxmox 5.11.7-1-pve

all sorts of compilation errors 5.11.7-1-pve0. compiles fine on 5.4.106-1-pve. unfortunately trying to get to 5.11 to take care of my networking issue.

/root/foo/iomemory-vsl4/driver_source/kfile.c: In function ‘kfio_create_proc_fops_entry’:
/root/foo/iomemory-vsl4/driver_source/kfile.c:225:47: error: passing argument 4 of ‘proc_create_data’ from incompatible pointer type [-Werror=incompatible-pointer-types]
return proc_create_data(name, mode, base, (struct file_operations *)fops, data);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /root/foo/iomemory-vsl4/driver_source/kfile.c:37:
./include/linux/proc_fs.h:104:31: note: expected ‘const struct proc_ops *’ but argument is of type ‘struct file_operations *’
extern struct proc_dir_entry *proc_create_data(const char *, umode_t,
^~~~~~~~~~~~~~~~
/root/foo/iomemory-vsl4/driver_source/kcpu.c: In function ‘__kfio_bind_task_to_cpumask’:
/root/foo/iomemory-vsl4/driver_source/kcpu.c:131:10: error: ‘struct task_struct’ has no member named ‘cpus_allowed’; did you mean ‘nr_cpus_allowed’?
tsk->cpus_allowed = *mask;
^~~~~~~~~~~~
nr_cpus_allowed
/root/foo/iomemory-vsl4/driver_source/kcpu.c: In function ‘kfio_map_cpus_to_read_queues’:
/root/foo/iomemory-vsl4/driver_source/kcpu.c:214:5: warning: ISO C90 forbids variable length array ‘node_hist’ [-Wvla]
uint32_t node_hist[nodes_possible], node_map[nodes_possible];
^~~~~~~~
/root/foo/iomemory-vsl4/driver_source/kcpu.c:214:5: warning: ISO C90 forbids variable length array ‘node_map’ [-Wvla]
make[4]: *** [scripts/Makefile.build:287: /root/foo/iomemory-vsl4/driver_source/kcpu.o] Error 1
make[4]: *** Waiting for unfinished jobs....
cc1: some warnings being treated as errors
make[4]: *** [scripts/Makefile.build:287: /root/foo/iomemory-vsl4/driver_source/kfile.o] Error 1
/root/foo/iomemory-vsl4/driver_source/kblock.c: In function ‘linux_bdev_update_stats’:
/root/foo/iomemory-vsl4/driver_source/kblock.c:959:9: error: implicit declaration of function ‘part_stat_lock’; did you mean ‘virt_spin_lock’? [-Werror=implicit-function-declaration]
part_stat_lock();
^~~~~~~~~~~~~~
virt_spin_lock
/root/foo/iomemory-vsl4/driver_source/kblock.c:960:9: error: implicit declaration of function ‘part_stat_inc’; did you mean ‘param_set_int’? [-Werror=implicit-function-declaration]
part_stat_inc(GD_PART0, ios[1]);
^~~~~~~~~~~~~
param_set_int
/root/foo/iomemory-vsl4/driver_source/kblock.c:960:33: error: ‘ios’ undeclared (first use in this function); did you mean ‘insl’?
part_stat_inc(GD_PART0, ios[1]);
^~~
insl
/root/foo/iomemory-vsl4/driver_source/kblock.c:960:33: note: each undeclared identifier is reported only once for each function it appears in
/root/foo/iomemory-vsl4/driver_source/kblock.c:961:9: error: implicit declaration of function ‘part_stat_add’; did you mean ‘page_ref_add’? [-Werror=implicit-function-declaration]
part_stat_add(GD_PART0, sectors[1], totalsize >> 9);
^~~~~~~~~~~~~
page_ref_add
/root/foo/iomemory-vsl4/driver_source/kblock.c:961:33: error: ‘sectors’ undeclared (first use in this function); did you mean ‘sector_t’?
part_stat_add(GD_PART0, sectors[1], totalsize >> 9);
^~~~~~~
sector_t
/root/foo/iomemory-vsl4/driver_source/kblock.c:962:33: error: ‘nsecs’ undeclared (first use in this function)
part_stat_add(GD_PART0, nsecs[1], kfio_div64_64(duration * HZ, FIO_USEC_PER_SEC));
^~~~~
/root/foo/iomemory-vsl4/driver_source/kblock.c:963:9: error: implicit declaration of function ‘part_stat_unlock’; did you mean ‘bit_spin_unlock’? [-Werror=implicit-function-declaration]
part_stat_unlock();
^~~~~~~~~~~~~~~~
bit_spin_unlock
/root/foo/iomemory-vsl4/driver_source/kblock.c: In function ‘linux_bdev_update_inflight’:
/root/foo/iomemory-vsl4/driver_source/kblock.c:994:9: error: implicit declaration of function ‘part_stat_set_all’; did you mean ‘part_start_io_acct’? [-Werror=implicit-function-declaration]
part_stat_set_all(GD_PART0, in_flight);
^~~~~~~~~~~~~~~~~
part_start_io_acct
cc1: some warnings being treated as errors
make[4]: *** [scripts/Makefile.build:287: /root/foo/iomemory-vsl4/driver_source/kblock.o] Error 1
make[3]: *** [Makefile:1834: /root/foo/iomemory-vsl4/driver_source] Error 2
make[3]: Leaving directory '/usr/src/linux-headers-5.11.7-1-pve'
make[2]: *** [Makefile:134: modules] Error 2
make[2]: Leaving directory '/root/foo/iomemory-vsl4/driver_source'
ERROR:
make[1]: *** [debian/rules:102: build-arch-stamp] Error 1
make[1]: Leaving directory '/root/foo/iomemory-vsl4'
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2
make: *** [Makefile:14: dpkg] Error 2`

Build failed with Linux 5.15 and 5.16 on Slackware64 15.0

Bug description

Build failed with Linux 5.15 and 5.16 on Slackware64 15.0. Build normally with Linux 5.13.19.

How to reproduce

git clone https://github.com/snuf/iomemory-vsl4.git
cd iomemory-vsl4
cp tools/udev/rules.d/60-persistent-fio.rules /lib/udev/rules.d/
cp root/etc/ld.so.conf.d/fio.conf /etc/ld.so.conf.d/
cp -r root/usr/lib/* /usr/lib/
make module
**
/usr/src/iomemory-vsl4-ga03d9e0/root/usr/src/iomemory-vsl4-4.3.7/include/kblock_meta.h:58:20: error: implicit declaration of function ‘bdgrab’; did you mean ‘igrab’? [-Werror=implicit-function-declaration]
   58 |   #define GET_BDEV bdgrab(disk->gd->part0);
      |                    ^~~~~~
/usr/src/iomemory-vsl4-ga03d9e0/root/usr/src/iomemory-vsl4-4.3.7/kblock.c:814:26: note: in expansion of macro ‘GET_BDEV’
  814 |             linux_bdev = GET_BDEV;
      |                          ^~~~~~~~
/usr/src/iomemory-vsl4-ga03d9e0/root/usr/src/iomemory-vsl4-4.3.7/kblock.c:814:24: warning: assignment to ‘struct block_device *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
  814 |             linux_bdev = GET_BDEV;
      |                        ^
/usr/src/iomemory-vsl4-ga03d9e0/root/usr/src/iomemory-vsl4-4.3.7/kblock.c:894:40: error: ‘struct block_device’ has no member named ‘bd_mutex’
  894 |                  mutex_lock(&linux_bdev->bd_mutex);
      |                                        ^~
/usr/src/iomemory-vsl4-ga03d9e0/root/usr/src/iomemory-vsl4-4.3.7/kblock.c:895:42: error: ‘struct block_device’ has no member named ‘bd_mutex’
  895 |                  mutex_unlock(&linux_bdev->bd_mutex);
      |                                          ^~
**

Possible solution

I believe bdgrab was dropped in Linux 5.15. For example in this commit message

Environment information

Information about the system the module is used on

  1. Linux: 5.15.27 and 5.16.17
  2. Compiler: GCC 11.2.0
  3. OS: Slackware64 15.0
  4. Source branch: main
  5. Device (using 5.13.19):
root@hv32:~# fio-status

Found 1 VSL driver package:
   4.3.7 build 1205 Driver: loaded

Found 2 ioMemory devices in this system

Adapter: ioMono  (driver 4.3.7)
        IBM 3200GB Enterprise Value io3 Flash Adapter for System x, Product Number:00D8432, SN:11S00D8436Y050EB4C9039
        PCIe Power limit threshold: 74.75W
        Connected ioMemory modules:
          fct0: 11:00.0,        Product Number:00D8432, SN:11S00D8436Y050EB4C9039

fct0    Attached
        ioMemory Adapter Controller, Product Number:00D8432, SN:1447G0149
        PCI:11:00.0, Slot Number:9
        Firmware v8.9.8, rev 20161119 Public
        3200.00 GBytes device size
        Internal temperature: 37.90 degC, max 43.80 degC
        Reserve space status: Healthy; Reserves: 100.00%, warn at 10.00%
        Contained Virtual Partitions:
          fioa: ID:0, UUID:a068be9b-9ba8-4937-b544-850259b1bc30

fioa    State: Online, Type: block device, Device: /dev/fioa
        ID:0, UUID:a068be9b-9ba8-4937-b544-850259b1bc30
        3200.00 GBytes device size

Adapter: ioMono  (driver 4.3.7)
        IBM 3200GB Enterprise Value io3 Flash Adapter for System x, Product Number:00D8432, SN:11S00D8436Y050EB4C9046
        PCIe Power limit threshold: 74.75W
        Connected ioMemory modules:
          fct1: 41:00.0,        Product Number:00D8432, SN:11S00D8436Y050EB4C9046

fct1    Attached
        ioMemory Adapter Controller, Product Number:00D8432, SN:1447G0172
        PCI:41:00.0, Slot Number:8
        Firmware v8.9.8, rev 20161119 Public
        3200.00 GBytes device size
        Internal temperature: 46.76 degC, max 53.65 degC
        Reserve space status: Healthy; Reserves: 100.00%, warn at 10.00%
        Contained Virtual Partitions:
          fiob: ID:0, UUID:5dc81890-7ade-4db5-8e91-3566e1714fc2

fiob    State: Online, Type: block device, Device: /dev/fiob
        ID:0, UUID:5dc81890-7ade-4db5-8e91-3566e1714fc2
        3200.00 GBytes device size

Block Allocation Queue Uses Deprecated Functions

Bug description

I'm trying to compile the driver on a slightly newer kernel (5.8.13) and have hammered out most of the issues, except for the block queue requests.

NOTE: This might better fit a feature request. If so, feel free to move it over.

How to reproduce

NOTE: I've made a few modifications to the driver on my own fork.

clone https://github.com/juchong/iomemory-vsl4.git
cd iomemory-vsl4
git checkout dkms_mkdeb_mkrpm
make dkms

Error Log:

/var/lib/dkms/iomemory-vsl4/5.6.1_29_g2e84756/build/kcpu.c: In function ‘kfio_map_cpus_to_read_queues’:
/var/lib/dkms/iomemory-vsl4/5.6.1_29_g2e84756/build/kcpu.c:214:5: warning: ISO C90 forbids variable length array ‘node_hist’ [-Wvla]
  214 |     uint32_t node_hist[nodes_possible], node_map[nodes_possible];
      |     ^~~~~~~~
/var/lib/dkms/iomemory-vsl4/5.6.1_29_g2e84756/build/kcpu.c:214:5: warning: ISO C90 forbids variable length array ‘node_map’ [-Wvla]
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.6.1_29_g2e84756/build/kcsr.o
  SHIPPED /var/lib/dkms/iomemory-vsl4/5.6.1_29_g2e84756/build/kfio/x86_64_cc102_libkfio.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.6.1_29_g2e84756/build/module_param.o
/var/lib/dkms/iomemory-vsl4/5.6.1_29_g2e84756/build/kblock.c: In function ‘kfio_alloc_queue’:
/var/lib/dkms/iomemory-vsl4/5.6.1_29_g2e84756/build/kblock.c:1600:10: error: implicit declaration of function ‘blk_alloc_queue_node’; did you mean ‘blk_alloc_queue’? [-Werror=implicit-function-declaration]
 1600 |     rq = blk_alloc_queue_node(GFP_NOIO, node);
      |          ^~~~~~~~~~~~~~~~~~~~
      |          blk_alloc_queue
/var/lib/dkms/iomemory-vsl4/5.6.1_29_g2e84756/build/kblock.c:1600:8: warning: assignment to ‘struct request_queue *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
 1600 |     rq = blk_alloc_queue_node(GFP_NOIO, node);
      |        ^
/var/lib/dkms/iomemory-vsl4/5.6.1_29_g2e84756/build/kblock.c:1604:9: error: implicit declaration of function ‘blk_queue_make_request’; did you mean ‘blk_mq_make_request’? [-Werror=implicit-function-declaration]
 1604 |         blk_queue_make_request(rq, kfio_make_request);
      |         ^~~~~~~~~~~~~~~~~~~~~~
      |         blk_mq_make_request
cc1: some warnings being treated as errors

Possible solution

It looks like the block functions were re-worked in 5.8.x. More info here.

Environment information

Information about the system the module is used on

  1. Linux kernel compiled against: 5.8.13-Unraid
  2. The C compiler version used: Debian 10.2.0-9
  3. Distribution and version: Slackware 14.2 x86_64
  4. Tag or Branch of iomemory-vsl4 that is being compiled: dkms_mkdeb_mkrpm
  5. FIO device used, if applicable: OEM ioMemory SX350 6.4TB

Debian 10.3 error make module

Bug description

SHIPPED /usr/src/iomemory-vsl4/driver_source/kfio/x86_64_cc83_libkfio.o
CC [M] /usr/src/iomemory-vsl4/driver_source/module_param.o
/usr/src/iomemory-vsl4/driver_source/kblock.c: In function ‘linux_bdev_expose_disk’:
/usr/src/iomemory-vsl4/driver_source/kblock.c:669:24: error: implicit declaration of function ‘blk_mq_init_sq_queue’; did you mean ‘blk_mq_init_queue’? [-Werror=implicit-function-declaration]
disk->rq = blk_mq_init_sq_queue(&disk->tag_set, &fio_mq_ops, 256, BLK_MQ_F_SHOULD_MERGE);
^~~~~~~~~~~~~~~~~~~~
blk_mq_init_queue
/usr/src/iomemory-vsl4/driver_source/kblock.c:669:22: warning: assignment to ‘struct request_queue ’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
disk->rq = blk_mq_init_sq_queue(&disk->tag_set, &fio_mq_ops, 256, BLK_MQ_F_SHOULD_MERGE);
^
/usr/src/iomemory-vsl4/driver_source/kblock.c: In function ‘linux_bdev_update_stats’:
/usr/src/iomemory-vsl4/driver_source/kblock.c:957:41: error: macro "part_stat_inc" requires 3 arguments, but only 2 given
part_stat_inc(&gd->part0, ios[1]);
^
/usr/src/iomemory-vsl4/driver_source/kblock.c:957:9: error: ‘part_stat_inc’ undeclared (first use in this function); did you mean ‘part_stat_show’?
part_stat_inc(&gd->part0, ios[1]);
^~~~~~~~~~~~~
part_stat_show
/usr/src/iomemory-vsl4/driver_source/kblock.c:957:9: note: each undeclared identifier is reported only once for each function it appears in
/usr/src/iomemory-vsl4/driver_source/kblock.c:958:61: error: macro "part_stat_add" requires 4 arguments, but only 3 given
part_stat_add(&gd->part0, sectors[1], totalsize >> 9);
^
/usr/src/iomemory-vsl4/driver_source/kblock.c:958:9: error: ‘part_stat_add’ undeclared (first use in this function); did you mean ‘part_stat_show’?
part_stat_add(&gd->part0, sectors[1], totalsize >> 9);
^~~~~~~~~~~~~
part_stat_show
/usr/src/iomemory-vsl4/driver_source/kblock.c:959:91: error: macro "part_stat_add" requires 4 arguments, but only 3 given
part_stat_add(&gd->part0, nsecs[1], kfio_div64_64(duration * HZ, FIO_USEC_PER_SEC));
^
/usr/src/iomemory-vsl4/driver_source/kblock.c:966:41: error: macro "part_stat_inc" requires 3 arguments, but only 2 given
part_stat_inc(&gd->part0, ios[0]);
^
/usr/src/iomemory-vsl4/driver_source/kblock.c:967:61: error: macro "part_stat_add" requires 4 arguments, but only 3 given
part_stat_add(&gd->part0, sectors[0], totalsize >> 9);
^
/usr/src/iomemory-vsl4/driver_source/kblock.c:968:91: error: macro "part_stat_add" requires 4 arguments, but only 3 given
part_stat_add(&gd->part0, nsecs[0], kfio_div64_64(duration * HZ, FIO_USEC_PER_SEC));
^
/usr/src/iomemory-vsl4/driver_source/kblock.c:946:21: warning: unused variable ‘gd’ [-Wunused-variable]
struct gendisk
gd = disk->gd;
^~
/usr/src/iomemory-vsl4/driver_source/kblock.c: In function ‘kfio_alloc_queue’:
/usr/src/iomemory-vsl4/driver_source/kblock.c:1599:10: error: too few arguments to function ‘blk_alloc_queue_node’
rq = blk_alloc_queue_node(GFP_NOIO, node);
^~~~~~~~~~~~~~~~~~~~
In file included from /usr/src/iomemory-vsl4/driver_source/port-internal.h:59,
from /usr/src/iomemory-vsl4/driver_source/kblock.c:36:
/usr/src/linux-headers-4.19.0-8-common/include/linux/blkdev.h:1282:23: note: declared here
struct request_queue *blk_alloc_queue_node(gfp_t gfp_mask, int node_id,

How to reproduce

git clone https://github.com/snuf/iomemory-vsl4
cd iomemory-vsl4/
git checkout v5.6.1

Posible solution

Environment information

  1. Linux 4.19.0-8-amd64 #1 SMP Debian 4.19.98-1 (2020-01-26) x86_64 GNU/Linux
  2. gcc (Debian 8.3.0-6) 8.3.0
  3. debian 10.3
  4. git checkout v5.6.1
  5. 27:00.0 Mass storage controller [0180]: SanDisk ioMemory HHHL [1aed:3002]

make dkms fails under Proxmox 6.1

Adding this for tracking and historical purposes. Already fixed in code-cleanup.

root@pve1:/home/temp/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7# ./module_operations.sh -n "iomemory-vsl4" -v "5c84dd5" -d -D

  • getopts :n✌️pdhD opt
  • shift 6
  • sanity_check
  • '[' '!' -e Makefile ']'
  • MODULE_DIR=iomemory-vsl4-4.3.7
  • MODULE_VER=4.3.7
  • MODULE_FILE=iomemory-vsl4.ko
    ++ get_rel_ver 5c84dd5
    ++ version=5c84dd5
    +++ git tag
    ++ release=v5.6.0
    ++ '[' 5c84dd5 == '' ']'
    ++ '[' 5c84dd5 == '' -a v5.6.0 == '' ']'
    ++ '[' v5.6.0 '!=' '' ']'
    ++ echo v5.6.0
  • RELEASE_VER=v5.6.0
  • '[' iomemory-vsl4 == '' ']'
  • '[' 1 == 0 -a 0 == 0 ']'
  • '[' 1 == 1 ']'
  • check_root
  • [[ 0 -ne 0 ]]
  • DKMS_DIR=/usr/src/iomemory-vsl4-v5.6.0
    ++ dkms_ver iomemory-vsl4
    ++ name=iomemory-vsl4
    +++ dkms status
    +++ grep iomemory-vsl4
    +++ cut -d, -f2
    +++ sed -e 's/ //'
    ++ ver='v5.6.0: added'
    ++ '[' 0 '!=' 0 ']'
    ++ echo v5.6.0: added
  • DKMS_VER='v5.6.0: added'
  • patchLicenseVersion v5.6.0-4.3.7
  • tag=v5.6.0-4.3.7
  • src=license.c
  • echo 'Adding module version v5.6.0-4.3.7 to source license.c'
    Adding module version v5.6.0-4.3.7 to source license.c
  • grep -q MODULE_VERSION license.c
  • '[' 0 == 0 ']'
    ++ perl -sne 'print "s/$2/$tag/\n" if /(MODULE_VERSION)("([\d\w._-]+)")/' -- -tag=v5.6.0-4.3.7 license.c
    ++ head -1
  • replace=s/v5.6.0-4.3.7/v5.6.0-4.3.7/
  • sed -i s/v5.6.0-4.3.7/v5.6.0-4.3.7/ license.c
  • '[' 'v5.6.0: added' '!=' '' ']'
  • dkms_remove iomemory-vsl4 v5.6.0: added
  • name=iomemory-vsl4
  • ver=v5.6.0:
  • echo 'Removing iomemory-vsl4/v5.6.0: from DKMS'
    Removing iomemory-vsl4/v5.6.0: from DKMS
  • dkms remove iomemory-vsl4/v5.6.0: --all
    Error! There are no instances of module: iomemory-vsl4
    v5.6.0: located in the DKMS tree.

DMKS make rpm boot disk fails

Bug description

Describe the issue, or paste the full error encountered here.

How to reproduce

What are the steps to reproduce the reported issue.

1st part works flawlessly

git clone https://github.com/snuf/iomemory-vsl4
cd iomemory-vsl4/
git checkout v5.7.0
Branch 'v5.7.0' set up to track remote branch 'v5.7.0' from 'origin'.
Switched to a new branch 'v5.7.0'
make dkms
[...]
DKMS: install completed.
make[1]: Leaving directory '/root/builds/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7'

dkms status
iomemory-vsl4, v5.6.1-24-g9830822, 4.18.0-193.14.2.el8_2.x86_64, x86_64: installed

~issue fillows:

dkms mkdriverdisk -d redhat3 --media tar -m iomemory-vsl4 -v v5.6.1-24-g9830822

Using /etc/dkms/template-dkms-redhat-kmod.spec
creating source tarball...iomemory-vsl4-v5.6.1-24-g9830822/
[...]
iomemory-vsl4-v5.6.1-24-g9830822/include/fio/public/
iomemory-vsl4-v5.6.1-24-g9830822/include/fio/public/fioapi.h

rpmbuild...(bad exit status: 1)

Error! There was a problem creating your kmod.
error: line 4: Illegal char '-' (0x2d) in: Version: v5.6.1-24-g9830822
Building target platforms: x86_64
Building for target x86_64

Possible solution

Environment information

Information about the system the module is used on
1.Linux drive3.localdomain 4.18.0-193.14.2.el8_2.x86_64 #1 SMP Sun Jul 26 03:54:29 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
2. gcc (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5)
3. NAME="CentOS Linux"
VERSION="8 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="8"

  1. v5.7.0
  2. FIO device used, if applicable
    Dell ioDrive2 1205GB MLC, Product Number:DG1MH, SN:US0DG1MH760512810084
    External Power: NOT connected
    PCIe Power limit threshold: 24.75W
    Connected ioMemory modules:
    fct0: Product Number:DG1MH,
    • lspci -b -nn
      01:00.0 Mass storage controller [0180]: SanDisk ioDrive2 [1aed:2001] (rev 04)

Size reported to the OS smaller than the actual?

Bug description

$ fio-status -a

Found 1 VSL driver package:
4.3.7 build 1205 Driver: loaded

Found 1 ioMemory device in this system

Adapter: ioMono (driver 4.3.7)
ioMemory SX350-3200, Product Number:SDFADAMOS-3T20-SF1, SN:1711D01B7, FIO SN:1711D01B7
ioMemory Adapter Controller, PN:5491-72374-3200G
Product UUID:d38c7ed4-874a-5e7a-abf7-9117a2171f33
PCIe Bus voltage: avg 12.21V
PCIe Bus current: avg 0.64A
PCIe Bus power: avg 7.83W
PCIe Power limit threshold: 24.75W
PCIe slot available power: 25.00W
PCIe negotiated link: 8 lanes at 5.0 Gt/sec each, 4000.00 MBytes/sec total
Connected ioMemory modules:
fct0: 03:00.0, Product Number:SDFADAMOS-3T20-SF1, SN:1711D01B7

fct0 Attached
ioMemory Adapter Controller, Product Number:SDFADAMOS-3T20-SF1, SN:1711D01B7
ioMemory Adapter Controller, PN:5491-72374-3200G
Microcode Versions: App:0.0.15.0
Powerloss protection: protected
PCI:03:00.0, Slot Number:2
Vendor:1aed, Device:3002, Sub vendor:1aed, Sub device:3002
Firmware v8.9.9, rev 20190313 Public
2560.00 GBytes device size
Format: v501, 625000000 sectors of 4096 bytes
PCIe slot available power: 25.00W
PCIe negotiated link: 8 lanes at 5.0 Gt/sec each, 4000.00 MBytes/sec total
Internal temperature: 43.31 degC, max 48.72 degC
Internal voltage: avg 1.01V, max 1.02V
Aux voltage: avg 1.78V, max 1.80V
Reserve space status: Healthy; Reserves: 100.00%, warn at 10.00%
Active media: 100.00%
Rated PBW: 11.00 PB, 99.83% remaining
Lifetime data volumes:
Physical bytes written: 18,225,007,081,504
Physical bytes read : 9,757,190,920,192
RAM usage:
Current: 274,637,696 bytes
Peak : 274,637,696 bytes
Contained Virtual Partitions:
fioa: ID:0, UUID:9a9d4471-91e3-924a-8224-b1e2919a9b82

fioa State: Online, Type: block device, Device: /dev/fioa
ID:0, UUID:9a9d4471-91e3-924a-8224-b1e2919a9b82
2560.00 GBytes device size
Format: 625000000 sectors of 4096 bytes
Sectors In Use: 70
Max Physical Sectors Allowed: 625000000
Min Physical Sectors Reserved: 625000000

Notice the 2560.00 GBytes device size.

How to reproduce

Used the guide from here: https://forum.proxmox.com/threads/configuring-fusion-io-sandisk-sx300-sx350-and-px600-cards-with-proxmox-6-1-kernel-5-x-tested-up-to-5-6.68642/

I'm using SDFADAMOS-3T20-SF1

Possible solution

I assume there is a hard limit of how big the drive can be and 3.2TB exceeds it.

Environment information

Information about the system the module is used on

  1. Linux kernel compiled against (uname -a): Linux dc6 5.4.60-1-pve #1 SMP PVE 5.4.60-2 (Fri, 04 Sep 2020 10:24:50 +0200) x86_64 GNU/Linux
  2. The C compiler version used (gcc --version): gcc (Debian 8.3.0-6) 8.3.0
  3. distribution, and version (cat /etc/os-release): Debian GNU/Linux 10 (buster)
  4. Tag or Branch of iomemory-vsl4 that is being compiled: v5.6.1

SX300-3200 failed to start

Bug description

SX300-3200 failed to start

How to reproduce

sudo dmesg

[    7.507881] fioinf ioDrive 0000:07:00.0: SMP controller Microcode APP  version 0.44.0 0
[    9.428132] fioinf ioDrive 0000:07:00.0: Product UUID is 7f57d177-4e29-5705-9403-3eb459984417
[    9.428137] fioinf ioDrive 0000:07:00.0: Required PCIE bandwidth 4.000 GBytes per sec
[    9.428138] fioinf ioDrive 0000:07:00.0: Board serial number is 1423G0148
[    9.428139] fioinf ioDrive 0000:07:00.0: Adapter serial number is 1423G0148
[    9.428143] fioinf ioDrive 0000:07:00.0: Default capacity        3200.000 GBytes
[    9.428144] fioinf ioDrive 0000:07:00.0: Default sector size     4096 bytes
[    9.428145] fioinf ioDrive 0000:07:00.0: Rated endurance         11.00 PBytes
[    9.428146] fioinf ioDrive 0000:07:00.0: 85C temp range hardware found
[    9.428147] fioinf ioDrive 0000:07:00.0: Maximum capacity        3200.000 GBytes
[    9.428178] fioinf ioDrive 0000:07:00.0: PCIe Slot reported power limit: 75000mWatts
[    9.428179] fioinf ioDrive 0000:07:00.0: PCIe Adapter power limit: 75000mWatts
[    9.428180] fioinf ioDrive 0000:07:00.0: PCIe Adapter power Throttle point: 74750mWatts
[    9.428190] fioinf ioDrive 0000:07:00.0: Firmware Archive Information:
[    9.428191] fioinf ioDrive 0000:07:00.0:   * Name        = ioMemory Firmware 8.9.9.20200113
[    9.428192] fioinf ioDrive 0000:07:00.0:   * Description = ioMemory Firmware 8.9.9.20200113 Archive
[    9.428192] fioinf ioDrive 0000:07:00.0:   * Version     = 8.9.9.0
[    9.428194] fioinf ioDrive 0000:07:00.0:   * Date        = 01/13/2020  Rev 20200113
[    9.428195] fioinf ioDrive 0000:07:00.0: Firmware version 8.9.9 118194 (0x802409 0x1cdb2)
[    9.428197] fioinf ioDrive 0000:07:00.0: Platform version 41 
[    9.428198] fioinf ioDrive 0000:07:00.0: Firmware VCS version 118194 [0x1cdb2]
[    9.428206] fioinf ioDrive 0000:07:00.0: Firmware VCS uid 0xea8892fee031ff5085ff47b5d3b4717e7dd4b603
[    9.449682] fioinf ioDrive 0000:07:00.0: Powercut flush: Supported and Enabled.
[    9.900929] fioinf ioDrive 0000:07:00.0: Loading microcode image 1.0.9 rev 100764 with flags 0x00010100
[    9.901022] fioinf ioDrive 0000:07:00.0: Microcode loaded (0).
[    9.979180] fioinf ioDrive 0000:07:00.0: Multiple queues enabled
[    9.999113] fioinf ioDrive 0000:07:00.0: PCIe power monitor enabled (master). Limit set to 74.750 watts.
[    9.999115] fioinf ioDrive 0000:07:00.0: Thermal monitoring: Enabled
[    9.999116] fioinf ioDrive 0000:07:00.0: Hardware temperature alarm set for 85C.
[   10.145338] fioinf ioDrive 0000:07:00.0: Starting device ioMemory SX300-3200 0000:07:00.0
[   10.145533] fioinf ioMemory SX300-3200 0000:07:00.0: Unable to map request
[   10.145536] fioinf ioMemory SX300-3200 0000:07:00.0: Request page program 000000008bd216e2 invalid -22
[   11.445929] fioerr ioMemory SX300-3200 0000:07:00.0: 12314 Device is unavailable.
[   11.445950] fioerr ioDrive 0000:07:00.0: 12295 Driver start failed with error -11: Try again
[   11.445953] fioinf ioDrive 0000:07:00.0: Controller failed to start (error -11)
[   11.446102] fioerr ioDrive 0000:07:00.0: 12297 Unable to attach PCI (-11).

Possible solution

Is a solution know, or type any plausible suggestions here, if none leave clear.

Environment information

Information about the system the module is used on

  1. Linux chiahome 5.10.16-051016-generic #202102131334 SMP Sat Feb 13 14:19:45 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
  2. Ubuntu 20.04
  3. v5.12.1
  4. FIO device used, if applicable
    SX300-3200
    07:00.0 Mass storage controller [0180]: SanDisk ioMemory HHHL [1aed:3002]

Fix dpkg and module versions to match driver

fio still shows old version

fio-status -a
Found 1 VSL driver package:
4.3.7 build 1205 Driver: loaded
...

dpkg builds with old version numbers

root@pve1:/home/temp/iomemory-vsl4# ls -a ..
.
..
deb
fio-preinstall_4.3.7.1205-1.0_amd64.deb
fio-sysvinit_4.3.7.1205-1.0_all.deb
fio-util_4.3.7.1205-1.0_amd64.deb
iomemory-vsl4
iomemory-vsl4_4.3.7.1205-1.0_amd64.buildinfo
iomemory-vsl4_4.3.7.1205-1.0_amd64.changes
iomemory-vsl4_4.3.7.1205-1.0.dsc
iomemory-vsl4_4.3.7.1205-1.0.tar.gz
iomemory-vsl4-5.3.18-3-pve_4.3.7.1205-1.0_amd64.deb
iomemory-vsl4-config-5.3.18-3-pve_4.3.7.1205-1.0_amd64.deb
iomemory-vsl4-di-5.3.18-3-pve_4.3.7.1205-1.0_amd64.udeb
iomemory-vsl4-initrd-5.3.18-3-pve_4.3.7.1205-1.0_amd64.deb
iomemory-vsl4-source_4.3.7.1205-1.0_amd64.deb

Missing files when compiling?

Bug description

Compilation issue on unRAID (Slackware)

How to reproduce

What are the steps to reproduce the reported issue.

git clone https://github.com/snuf/iomemory-vsl4.git
cd /iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/
git checkout 86d697c246677a4f5c95c04f714a4fabbdf56070
make

Here's what I get when trying to compile:

root@Tower:~/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7# make gpl
sed -i 's/Proprietary/GPL/g' license.c
if [ "92" -gt "92" ];then \
        if [ ! -f "kfio/x86_64_cc92_libkfio.o_shipped" ];then \
                cp kfio/x86_64_cc92_libkfio.o_shipped kfio/x86_64_cc92_libkfio.o_shipped; \
        fi \
fi
./kfio_config.sh -a x86_64 -o include/fio/port/linux/kfio_config.h -k /lib/modules/4.19.107-Unraid/build -p -d /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/kfio_config -l 0 -s /lib/modules/4.19.107-Unraid/source
Detecting Kernel Flags
Config dir         : /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/kfio_config
Output file        : include/fio/port/linux/kfio_config.h
Kernel output dir  : /lib/modules/4.19.107-Unraid/build
Kernel source dir  : /lib/modules/4.19.107-Unraid/source
Starting tests:
  1601746574.718  KFIOC_HAS_GLOBAL_REGS_POINTER...
  1601746574.724  KFIOC_HAS_SYSRQ_KEY_OP_ENABLE_MASK...
  1601746574.731  KFIOC_FOPS_USE_LOCKED_IOCTL...
  1601746574.738  KFIOC_HAS_RQ_POS_BYTES...
  1601746574.747  KFIOC_NUMA_MAPS...
  1601746574.755  KFIOC_HAS_SCSI_QD_CHANGE_FN...
  1601746574.764  KFIOC_X_HAS_COARSE_REAL_TS...
  1601746574.772  KFIOC_X_PROC_CREATE_DATA_WANTS_PROC_OPS...
  1601746574.783  KFIOC_X_TASK_HAS_CPUS_MASK...
Started tests, waiting for completions...
  1601746576.844  KFIOC_HAS_GLOBAL_REGS_POINTER=0
  1601746576.871  KFIOC_HAS_SYSRQ_KEY_OP_ENABLE_MASK=0
  1601746576.898  KFIOC_FOPS_USE_LOCKED_IOCTL=0
  1601746576.924  KFIOC_HAS_RQ_POS_BYTES=0
  1601746576.951  KFIOC_NUMA_MAPS=0
  1601746576.978  KFIOC_HAS_SCSI_QD_CHANGE_FN=0
  1601746577.004  KFIOC_X_HAS_COARSE_REAL_TS=0
  1601746577.031  KFIOC_X_PROC_CREATE_DATA_WANTS_PROC_OPS=0
  1601746577.058  KFIOC_X_TASK_HAS_CPUS_MASK=0
Finished
1601746577.071  Exiting
Preserving configdir due to '-p' option: /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/kfio_config

Adding module version v5.6.1-4.3.7 to source license.c

make \
    -j8 \
-C /lib/modules/4.19.107-Unraid/build \
FIO_DRIVER_NAME=iomemory-vsl4 \
FUSION_DRIVER_DIR=/root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7 \
M=/root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7 \
EXTRA_CFLAGS+="-I/root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/include -DBUILDING_MODULE -DLINUX_IO_SCHED -Wall" \
INSTALL_MOD_DIR=extra/fio \
INSTALL_MOD_PATH= \
KFIO_LIB=kfio/x86_64_cc92_libkfio.o_shipped \
modules
make[1]: Entering directory '/usr/src/linux-4.19.107-Unraid'

  WARNING: Symbol version dump ./Module.symvers
           is missing; modules will have no dependencies and modversions.

  CC [M]  /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/main.o
  CC [M]  /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/dbgset.o
  CC [M]  /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/license.o
  CC [M]  /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/pci.o
  CC [M]  /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/sysrq.o
  CC [M]  /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/driver_init.o
  CC [M]  /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/kfio.o
  CC [M]  /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/kmsg.o
  CC [M]  /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/six_lock.o
In file included from ./include/linux/mmzone.h:19,
                 from ./include/linux/gfp.h:6,
                 from ./include/linux/slab.h:15,
                 from /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/include/fio/port/linux/kfio_config.h:41,
                 from /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/include/fio/port/kfio_config.h:39,
                 from /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/port-internal-boss.h:62,
                 from /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/dbgset.c:30:
./include/linux/page-flags-layout.h:6:10: fatal error: generated/bounds.h: No such file or directory
    6 | #include <generated/bounds.h>
      |          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [scripts/Makefile.build:303: /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/dbgset.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from ./include/linux/mmzone.h:19,
                 from ./include/linux/gfp.h:6,
                 from ./include/linux/slab.h:15,
                 from /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/include/fio/port/linux/kfio_config.h:41,
                 from /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/include/fio/port/kfio_config.h:39,
                 from /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/sysrq.c:33:
./include/linux/page-flags-layout.h:6:10: fatal error: generated/bounds.h: No such file or directory
    6 | #include <generated/bounds.h>
      |          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [scripts/Makefile.build:303: /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/sysrq.o] Error 1
In file included from ./include/linux/mmzone.h:19,
                 from ./include/linux/gfp.h:6,
                 from ./include/linux/slab.h:15,
                 from /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/include/fio/port/linux/kfio_config.h:41,
                 from /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/include/fio/port/kfio_config.h:39,
                 from /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/port-internal-boss.h:62,
                 from /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/port-internal.h:57,
                 from /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/main.c:30:
./include/linux/page-flags-layout.h:6:10: fatal error: generated/bounds.h: No such file or directory
    6 | #include <generated/bounds.h>
      |          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
In file included from ./include/linux/mmzone.h:19,
                 from ./include/linux/gfp.h:6,
                 from ./include/linux/umh.h:4,
                 from ./include/linux/kmod.h:22,
                 from ./include/linux/module.h:13,
                 from /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/license.c:1:
./include/linux/page-flags-layout.h:6:10: fatal error: generated/bounds.h: No such file or directory
    6 | #include <generated/bounds.h>
      |          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [scripts/Makefile.build:303: /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/main.o] Error 1
In file included from ./include/linux/mmzone.h:19,
                 from ./include/linux/gfp.h:6,
                 from ./include/linux/umh.h:4,
                 from ./include/linux/kmod.h:22,
                 from ./include/linux/module.h:13,
                 from /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/kfio.c:34:
./include/linux/page-flags-layout.h:6:10: fatal error: generated/bounds.h: No such file or directory
    6 | #include <generated/bounds.h>
      |          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
In file included from ./include/linux/mmzone.h:19,
                 from ./include/linux/gfp.h:6,
                 from ./include/linux/umh.h:4,
                 from ./include/linux/kmod.h:22,
                 from ./include/linux/module.h:13,
                 from /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/driver_init.c:28:
./include/linux/page-flags-layout.h:6:10: fatal error: generated/bounds.h: No such file or directory
    6 | #include <generated/bounds.h>
      |          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [scripts/Makefile.build:303: /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/license.o] Error 1
make[2]: *** [scripts/Makefile.build:303: /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/kfio.o] Error 1
make[2]: *** [scripts/Makefile.build:303: /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/driver_init.o] Error 1
In file included from ./arch/x86/include/asm/realmode.h:15,
                 from ./arch/x86/include/asm/acpi.h:33,
                 from ./arch/x86/include/asm/fixmap.h:29,
                 from ./arch/x86/include/asm/apic.h:10,
                 from ./arch/x86/include/asm/smp.h:13,
                 from ./include/linux/smp.h:64,
                 from ./include/linux/percpu.h:7,
                 from ./include/linux/context_tracking_state.h:5,
                 from ./include/linux/vtime.h:5,
                 from ./include/linux/hardirq.h:8,
                 from ./include/linux/interrupt.h:11,
                 from /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/pci.c:30:
./arch/x86/include/asm/io.h:44:10: fatal error: asm/early_ioremap.h: No such file or directory
   44 | #include <asm/early_ioremap.h>
      |          ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [scripts/Makefile.build:303: /root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/pci.o] Error 1
make[1]: *** [Makefile:1522: _module_/root/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7] Error 2
make[1]: Leaving directory '/usr/src/linux-4.19.107-Unraid'
make: *** [Makefile:127: modules] Error 2

Environment information

Information about the system the module is used on

  1. Linux kernel compiled against (uname -a): 4.19.107
  2. The C compiler version used (gcc --version)v5.3
  3. distribution, and version (cat /etc/os-release) unRAID (Slackware)
  4. Tag or Branch of iomemory-vsl4 that is being compiled master
  5. FIO device used, if applicable
    • fio-status
    • lspci -b -nn

Compile errors under Fedora 30 running Kernel 5.0.9.300

Bug description

make[2]: Entering directory '/usr/src/kernels/5.0.9-301.fc30.x86_64'
CC [M] /var/lib/dkms/iomemory-vsl4/v5.6.0/build/main.o
CC [M] /var/lib/dkms/iomemory-vsl4/v5.6.0/build/dbgset.o
CC [M] /var/lib/dkms/iomemory-vsl4/v5.6.0/build/license.o
CC [M] /var/lib/dkms/iomemory-vsl4/v5.6.0/build/pci.o
CC [M] /var/lib/dkms/iomemory-vsl4/v5.6.0/build/sysrq.o
CC [M] /var/lib/dkms/iomemory-vsl4/v5.6.0/build/driver_init.o
CC [M] /var/lib/dkms/iomemory-vsl4/v5.6.0/build/kfio.o
CC [M] /var/lib/dkms/iomemory-vsl4/v5.6.0/build/errno.o
CC [M] /var/lib/dkms/iomemory-vsl4/v5.6.0/build/state.o
CC [M] /var/lib/dkms/iomemory-vsl4/v5.6.0/build/kmsg.o
CC [M] /var/lib/dkms/iomemory-vsl4/v5.6.0/build/six_lock.o
CC [M] /var/lib/dkms/iomemory-vsl4/v5.6.0/build/kcache.o
CC [M] /var/lib/dkms/iomemory-vsl4/v5.6.0/build/kfile.o
CC [M] /var/lib/dkms/iomemory-vsl4/v5.6.0/build/kmem.o
CC [M] /var/lib/dkms/iomemory-vsl4/v5.6.0/build/kscatter.o
CC [M] /var/lib/dkms/iomemory-vsl4/v5.6.0/build/ktime.o
CC [M] /var/lib/dkms/iomemory-vsl4/v5.6.0/build/sched.o
CC [M] /var/lib/dkms/iomemory-vsl4/v5.6.0/build/cdev.o
CC [M] /var/lib/dkms/iomemory-vsl4/v5.6.0/build/kscsi.o
CC [M] /var/lib/dkms/iomemory-vsl4/v5.6.0/build/kscsi_host.o
CC [M] /var/lib/dkms/iomemory-vsl4/v5.6.0/build/kblock.o
CC [M] /var/lib/dkms/iomemory-vsl4/v5.6.0/build/kcpu.o
CC [M] /var/lib/dkms/iomemory-vsl4/v5.6.0/build/kcondvar.o
CC [M] /var/lib/dkms/iomemory-vsl4/v5.6.0/build/common_kinfo.o
CC [M] /var/lib/dkms/iomemory-vsl4/v5.6.0/build/kinfo.o
CC [M] /var/lib/dkms/iomemory-vsl4/v5.6.0/build/kinit.o
/var/lib/dkms/iomemory-vsl4/v5.6.0/build/kcpu.c: In function ‘__kfio_bind_task_to_cpumask’:
/var/lib/dkms/iomemory-vsl4/v5.6.0/build/kcpu.c:129:4: error: ‘struct task_struct’ has no member named ‘cpus_mask’
129 | tsk->cpus_mask = *mask;
| ^~
/var/lib/dkms/iomemory-vsl4/v5.6.0/build/kcpu.c: In function ‘kfio_map_cpus_to_read_queues’:
/var/lib/dkms/iomemory-vsl4/v5.6.0/build/kcpu.c:213:5: warning: ISO C90 forbids variable length array ‘node_hist’ [-Wvla]
213 | uint32_t node_hist[nodes_possible], node_map[nodes_possible];
| ^~~~~~~~
/var/lib/dkms/iomemory-vsl4/v5.6.0/build/kcpu.c:213:5: warning: ISO C90 forbids variable length array ‘node_map’ [-Wvla]
make[3]: *** [scripts/Makefile.build:277: /var/lib/dkms/iomemory-vsl4/v5.6.0/build/kcpu.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [Makefile:1580: module/var/lib/dkms/iomemory-vsl4/v5.6.0/build] Error 2
make[2]: Leaving directory '/usr/src/kernels/5.0.9-301.fc30.x86_64'
make[1]: *** [Makefile:134: modules] Error 2

How to reproduce

Posible solution

Environment information

No rule to make target

Bug description

Trying to build dkms, but fails.

make dkms / fails
make dpkg / fails
make module / works
dkms build -m iomemory-vsl4 -v 5.10.0-15-fe767c6 / works

How to reproduce

What are the steps to reproduce the reported issue.

git clone https://github.com/snuf/iomemory-vsl4.git
cd iomemory-vsl4
make dkms

Shell output

root@nas1:/opt/iomemory-vsl4# make dkms
cd root/usr/src/iomemory-vsl4-4.3.7 && \
  	make clean
make[1]: Entering directory '/opt/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7'
make \
        -j8 \
	-C /lib/modules/5.10.0-15-amd64/build \
	FIO_DRIVER_NAME=iomemory-vsl4 \
	FUSION_DRIVER_DIR=/opt/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7 \
	M=/opt/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7 \
	EXTRA_CFLAGS+="-I/opt/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7/include -DBUILDING_MODULE -DLINUX_IO_SCHED -Wall" \
	KFIO_LIB=kfio/x86_64_cc102_libkfio.o_shipped \
	clean
make[2]: Entering directory '/usr/src/linux-headers-5.10.0-15-amd64'
make[2]: Leaving directory '/usr/src/linux-headers-5.10.0-15-amd64'
rm -rf include/fio/port/linux/kfio_config.h kfio_config
make[1]: Leaving directory '/opt/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7'
cd root/usr/src/iomemory-vsl4-4.3.7 && \
	make dkms
make[1]: Entering directory '/opt/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7'
./module_operations.sh -n "iomemory-vsl4" -v "fe767c6" -d
Adding module version 5.10.0-15-fe767c6-4.3.7 to source license.c
/usr/src/iomemory-vsl4-5.10.0-15-fe767c6 already exists.
Warning:   patched with  not 5.10.0-15-fe767c6-4.3.7
Warning:   patched with  not 5.10.0-15-fe767c6-4.3.7
Warning:   patched with  not 5.10.0-15-fe767c6-4.3.7
Ok:  already patched with 5.10.0-15-fe767c6-4.3.7
Ok:  already patched with 5.10.0-15-fe767c6-4.3.7
Ok:  already patched with 5.10.0-15-fe767c6-4.3.7
Ok:  already patched with 5.10.0-15-fe767c6-4.3.7
Ok:  already patched with 5.10.0-15-fe767c6-4.3.7
Ok:  already patched with 5.10.0-15-fe767c6-4.3.7
Ok:  already patched with 5.10.0-15-fe767c6-4.3.7
Ok:  already patched with 5.10.0-15-fe767c6-4.3.7
Ok:  already patched with 5.10.0-15-fe767c6-4.3.7
Ok:  already patched with 5.10.0-15-fe767c6-4.3.7
Ok:  already patched with 5.10.0-15-fe767c6-4.3.7
Adding, buidling and installing iomemory-vsl4/5.10.0-15-fe767c6 with DKMS

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
cleaning build area...
'make' DKMS_KERNEL_VERSION=5.10.0-15-amd64.....(bad exit status: 2)
Error! Bad return status for module build on kernel: 5.10.0-15-amd64 (x86_64)
Consult /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/make.log for more information.
make[1]: *** [Makefile:121: dkms] Error 10
make[1]: Leaving directory '/opt/iomemory-vsl4/root/usr/src/iomemory-vsl4-4.3.7'
make: *** [Makefile:8: dkms] Error 2

Last lines of make.log

Preserving configdir due to '-p' option: /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/kfio_config
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
/bin/sh: 1: make[2]:: not found
/bin/sh: 1: make[2]:: not found
make \
    -j8 \
-C /lib/modules/5.10.0-15-amd64/build \
FIO_DRIVER_NAME=iomemory-vsl4 \
FUSION_DRIVER_DIR=/var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build \
M=/var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build \
EXTRA_CFLAGS+="-I/var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/include -DBUILDING_MODULE -DLINUX_IO_SCHED -Wall" \
INSTALL_MOD_DIR=extra/fio \
INSTALL_MOD_PATH= \
KFIO_LIB=kfio/x86_64_cc_libkfio.o_shipped \
modules
make[3]: Entering directory '/usr/src/linux-headers-5.10.0-15-amd64'
printf '#include "linux/module.h"\nMODULE_LICENSE("GPL");\n' >/var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/license.c
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/main.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/dbgset.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/license.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/pci.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/sysrq.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/driver_init.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/kfio.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/errno.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/state.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/kmsg.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/six_lock.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/kcache.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/kfile.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/kmem.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/kscatter.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/ktime.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/sched.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/cdev.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/kscsi.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/kscsi_host.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/kblock.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/kcpu.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/kcondvar.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/common_kinfo.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/kinfo.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/kinit.o
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/kfio_common.o
/var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/kcpu.c: In function ‘kfio_map_cpus_to_read_queues’:
/var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/kcpu.c:214:5: warning: ISO C90 forbids variable length array ‘node_hist’ [-Wvla]
  214 |     uint32_t node_hist[nodes_possible], node_map[nodes_possible];
      |     ^~~~~~~~
/var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/kcpu.c:214:5: warning: ISO C90 forbids variable length array ‘node_map’ [-Wvla]
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/khotplug.o
make[5]: *** No rule to make target '/var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/kfio/x86_64_cc_libkfio.o', needed by '/var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/iomemory-vsl4.o'.  Stop.
make[5]: *** Waiting for unfinished jobs....
  CC [M]  /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build/kcsr.o
make[4]: *** [/usr/src/linux-headers-5.10.0-15-common/Makefile:1846: /var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build] Error 2
make[3]: *** [/usr/src/linux-headers-5.10.0-15-common/Makefile:185: __sub-make] Error 2
make[3]: Leaving directory '/usr/src/linux-headers-5.10.0-15-amd64'
make[2]: *** [Makefile:136: modules] Error 2
make[2]: Leaving directory '/var/lib/dkms/iomemory-vsl4/5.10.0-15-fe767c6/build'

dkms build

root@nas1:/opt/iomemory-vsl4# dkms build -m iomemory-vsl4 -v 5.10.0-15-fe767c6

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
cleaning build area...
'make' DKMS_KERNEL_VERSION=5.10.0-15-amd64.....
cleaning build area...

DKMS: build completed.

Environment information

Information about the system the module is used on

  1. Linux kernel compiled against (uname -a): 5.10.0-15-amd64
  2. The C compiler version used (gcc --version) gcc (Debian 10.2.1-6) 10.2.1 20210110
  3. distribution, and version (cat /etc/os-release) Debian GNU/Linux 11 (bullseye)
  4. Tag or Branch of iomemory-vsl4 that is being compiled main
  5. FIO device used, if applicable
    • fio-status
    • lspci -b -nn

iostat shows weird numbers

Bug description

Running iostat on iomemory device shows weird counters.
For example, here are a few consecutive runs:

root@pve:/usr/local/src/iomemory-vsl4# iostat -d /dev/fioa
Linux 5.4.106-1-pve (pve)       14.05.21        _x86_64_        (24 CPU)

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
fioa          9683204258164,84 2420801064541,21 2420801064541,21 868082074056920076 868082074056920076

root@pve:/usr/local/src/iomemory-vsl4# iostat -d /dev/fioa
Linux 5.4.106-1-pve (pve)       14.05.21        _x86_64_        (24 CPU)

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
fioa          19366345868794,82 4841586467198,70 4841586467198,70 1736164148113840152 1736164148113840152

root@pve:/usr/local/src/iomemory-vsl4# iostat -d /dev/fioa
Linux 5.4.106-1-pve (pve)       14.05.21        _x86_64_        (24 CPU)

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
fioa              0,00         0,00         0,00        128          0

How to reproduce

Just make some reads/writes to iomemory device and run iostat /dev/fioa

Environment information

Information about the system the module is used on

  1. Linux kernel compiled against (uname -a): Linux pve 5.4.106-1-pve #1 SMP PVE 5.4.106-1 (Fri, 19 Mar 2021 11:08:47 +0100) x86_64 GNU/Linux
  2. The C compiler version used (gcc --version): gcc (Debian 8.3.0-6) 8.3.0
  3. distribution, and version (cat /etc/os-release): Proxmox VE 6.4
  4. Tag or Branch of iomemory-vsl4 that is being compiled: tag: v5.12.0
  5. FIO device used, if applicable
    • fio-status:
# fio-status

Found 2 VSL driver packages:
   4.3.7 build 1205 Driver: loaded
   3.2.16 build 1731 Driver: not loaded

Found 1 ioMemory device in this system

Adapter: ioMono  (driver 4.3.7)
        ioMemory SX350-1600, Product Number:SDFADAMOS-1T60-SF1, SN:1521G0367, FIO SN:1521G0367
        External Power Threshold Override: 74.75W
        PCIe Power limit threshold: 74.75W
        Connected ioMemory modules:
          fct0: 84:00.0,        Product Number:SDFADAMOS-1T60-SF1, SN:1521G0367

fct0    Attached
        ioMemory Adapter Controller, Product Number:SDFADAMOS-1T60-SF1, SN:1521G0367
        PCI:84:00.0
        Firmware v8.9.9, rev 20180423 Public
        1600.00 GBytes device size
        Internal temperature: 45.28 degC, max 50.69 degC
        Reserve space status: Healthy; Reserves: 100.00%, warn at 10.00%
        Contained Virtual Partitions:
          fioa: ID:0, UUID:c7c241a4-9f79-4ae1-9900-da43e0692f1a

fioa    State: Online, Type: block device, Device: /dev/fioa
        ID:0, UUID:c7c241a4-9f79-4ae1-9900-da43e0692f1a
        1600.00 GBytes device size
  • lspci -b -nn
84:00.0 Mass storage controller [0180]: SanDisk ioMemory HHHL [1aed:3002]

make clean isn't cleaning /var/lib/dkms/iomemory-vsl4/v5.6.0/build/ on Fedora 30

Steps to reproduce:

git checkout code-cleanup
make dkms
make clean
git checkout fix-cpus_mask
make dkms

... compile still fails

/var/lib/dkms/iomemory-vsl4/v5.6.0/build/kcpu.c: In function ‘__kfio_bind_task_to_cpumask’:
/var/lib/dkms/iomemory-vsl4/v5.6.0/build/kcpu.c:128:8: error: ‘struct task_struct’ has no member named ‘cpus_mask’
  128 |     tsk->cpus_mask = *mask;
      |        ^~

git diff:

--- a/var/lib/dkms/iomemory-vsl4/v5.6.0/build/kcpu.c
+++ b/root/usr/src/iomemory-vsl4-4.3.7/kcpu.c
@@ -125,7 +125,12 @@ int kfio_create_kthread_on_cpu(fusion_kthread_func_t func, void *data,

 static void __kfio_bind_task_to_cpumask(struct task_struct *tsk, cpumask_t *mask)
 {
+
+#if KFIOC_X_TASK_HAS_CPUS_MASK
     tsk->cpus_mask = *mask;
+#else
+    tsk->cpus_allowed = *mask;
+#endif
     tsk->nr_cpus_allowed = cpumask_weight(mask);
 }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.