On Tue, Apr 02, 2024 at 09:07:55PM -0600, Keith Busch wrote: > On Tue, Apr 02, 2024 at 10:07:25PM +0000, Kamaljit Singh wrote: > > Your question about the nvme-cli version makes me wonder if there is a > > version compatibility matrix (nvme-cli vs kernel) somewhere you could > > point me to? I didn't see such info in the nvme-cli release notes. > > I don't believe there's ever been an intentional incompatibility for > nvme-cli vs. kernel versions. Most of the incompatibility problems come > from sysfs dependencies, but those should not be necessary for the core > passthrough commands on any version pairing. > > And yeah, there should be sane fallbacks for older kernels in case a new > feature introduces a regression, but it's not always perfect. We try to > fix them as we learn about them, so bug reports on the github are useful > for tracking that. Indeed, all new features are auto detected. So if the kernel provides them, nvme-cli/libnvme will be able to use them. Obviously, sometimes there are some regressions but we avoid to increase the minimum kernel dependency. Many things are also behind CONFIG options, thus the only viable way is to auto detect features. Note, these new features are almost all exclusive in the fabric code base. The PCI related bits are pretty stable. > > For example, I've seen issues with newer than nvme-cli v1.16 on Ubuntu > > 22.04 (stock & newer kernels). From a compatibility perspective I do > > wonder whether circumventing a distro's package manager and directly > > installing newer nvme-cli versions might be a bad idea. This could > > possibly become dire if there were intentional version dependencies > > across the stack. > > The struggle is real, isn't it? New protocol features are added upstream > faster than distro package updates provide their users. On the other > hand, distros may be cautious to potential instability. We got a lot of request to provide up to data binaries for old distros. For this reason we have an AppImage binary to play around. So if you want to play with the latest greatest, it's fairly simple to do so.