-
System information: Distribution Centos 8.2
ZFS 2.0.0 fails to use Intel QAT compression. QAT: qat1.7.l.4.11.0-00001 (latest from intel)
ZFS: [root@dellqat zfs_latest]# git status nothing to commit, working tree clean
(tried also various reboots...)
Tested with various methods: dd, standard cp & mv, iozone Please note the strange: Seems compression is not there at all. |
Beta Was this translation helpful? Give feedback.
Replies: 11 comments 2 replies
-
Also |
Beta Was this translation helpful? Give feedback.
-
It is the module loading order,
solves the problem, in the sense that the qat module is used correctly in compression. Hence, the question arise about the module loading ordering, because zfs seems to load before qat Do you have any suggestion on how to proceed? |
Beta Was this translation helpful? Give feedback.
-
You should be able to use the modprobe.d cat /etc/modprobe.d/zfs.conf
softdep zfs pre: qat |
Beta Was this translation helpful? Give feedback.
-
Thanks for the answer, but qat needs an userspace program "adf_ctl" in order to start its engines. |
Beta Was this translation helpful? Give feedback.
-
I see. You might be able to additionally leverage the modprobe.d
|
Beta Was this translation helpful? Give feedback.
-
I sort of got it working with a custom initramfs with dracut... You must exclude the dracut modules for zfs: You then add a custom module for qat:
inside 89qat you put two files:
and
both files shall be chmod 755. you then rebuild the image with dracut: which create the "foobar.img" initramfs image for the current kernel. I don't know why but the modules don't load in the correct order Maybe someone with more experience with dracut may help? |
Beta Was this translation helpful? Give feedback.
-
@behlendorf |
Beta Was this translation helpful? Give feedback.
-
Also, it is unclear when the zfs module will be loaded at boot time, from dmesg I see it after initramfs, but have you any pointer on the way it is configured to load zfs module at boot time ? For the Centos 8 of course. It seems it depends on the distribution the way the module loading process happens |
Beta Was this translation helpful? Give feedback.
-
Normally the way the module loading happens is through the udev rule I'd like to be more help, but I'm not that familiar with the specifics of dracut. |
Beta Was this translation helpful? Give feedback.
-
@behlendorf - i just ran into this, and my ZFS is built-in... is there any way to trigger use of QAT at runtime (safely)? |
Beta Was this translation helpful? Give feedback.
-
I think we could modify the udev rule sed -i 's|/sbin/modprobe zfs|/sbin/modprobe qat_api\&\&/sbin/modprobe spl\&\&/sbin/modprobe zfs|g' /usr/lib/udev/rules.d/90-zfs.rules I tested it in |
Beta Was this translation helpful? Give feedback.
It is the module loading order,
after reboot, issuing
solves the problem, in the sense that the qat module is used correctly in compression.
Hence, the question arise about the module loading ordering, because zfs seems to load before qat
and qat is initialised in userspace by the qat_service.
Do you have any suggestion on how to proceed?
Maybe with a custom initramfs?
Does zfs modify the initramfs?