remixvsl / iomemory-vsl4 Goto Github PK
View Code? Open in Web Editor NEWUpdated Fusion-io iomemory VSL4 Linux (version 4.3.7) driver for recent kernels.
Updated Fusion-io iomemory VSL4 Linux (version 4.3.7) driver for recent kernels.
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.
git clone https://github.com/snuf/iomemory-vsl4.git
cd iomemory-vsl4
git checkout <tag or some-branch>
make rpm
or
make dkms
Information about the system the module is used on
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
[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
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)
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.
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.
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
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
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
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
Information about the system the module is used on
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
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) ...
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
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 **
Is a solution know, or type any plausible suggestions here, if none leave clear.
Information about the system the module is used on
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
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.
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
Tag or Branch of iomemory-vsl4 that is being compiled
v5.12.1 - Boop Noodle
FIO device used, if applicable
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.
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
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.
Information about the system the module is used on
The fusioIO is used as data dir for a PostgreSQL database.
The issue occure when trying to restore the database with PgBackrest.
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.
Unknown
Information about the system the module is used on
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
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)
[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
I am trying to add 60-persistent-fio.rules into udev.
RemixVSL/iomemory-vsl#74
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 **
Information about the system the module is used on
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
The C compiler version used (gcc --version)
gcc (Debian 10.2.1-6) 10.2.1 20210110
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/"
Tag or Branch of iomemory-vsl4 that is being compiled
main
FIO device used, if applicable
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
Right now make dkms only works off of the source root, which is unintuitive for people unfamiliar with the project.
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. Build normally with Linux 5.13.19.
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);
| ^~
**
I believe bdgrab was dropped in Linux 5.15. For example in this commit message
Information about the system the module is used on
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
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.
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
It looks like the block functions were re-worked in 5.8.x. More info here.
Information about the system the module is used on
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,
git clone https://github.com/snuf/iomemory-vsl4
cd iomemory-vsl4/
git checkout v5.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.
Describe the issue, or paste the full error encountered here.
What are the steps to reproduce the reported issue.
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
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
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"
Right now the only way is to manually edit the iomemory-vsl4.conf file in /etc/modprobe.d/. This is again unintuitive and poorly documented. The best example is raising the power limit to 75W on PCIE 3.0 systems from the default capped 25W.
$ fio-status -a
Found 1 VSL driver package:
4.3.7 build 1205 Driver: loadedFound 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:1711D01B7fct0 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-b1e2919a9b82fioa 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.
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
I assume there is a hard limit of how big the drive can be and 3.2TB exceeds it.
Information about the system the module is used on
SX300-3200 failed to start
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).
Is a solution know, or type any plausible suggestions here, if none leave clear.
Information about the system the module is used on
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
Compilation issue on unRAID (Slackware)
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
Information about the system the module is used on
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
The team is aware of this issue and will work on it over time. There were significant kernel changes to the block layer and this will be a fairly major fix. Please use Linux kernel 5.14 or older for now.
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
What are the steps to reproduce the reported issue.
git clone https://github.com/snuf/iomemory-vsl4.git
cd iomemory-vsl4
make dkms
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
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'
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.
Information about the system the module is used on
5.10.0-15-amd64
gcc (Debian 10.2.1-6) 10.2.1 20210110
Debian GNU/Linux 11 (bullseye)
main
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
Just make some reads/writes to iomemory device and run iostat /dev/fioa
Information about the system the module is used on
# 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
84:00.0 Mass storage controller [0180]: SanDisk ioMemory HHHL [1aed:3002]
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);
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.