View Issue Details

IDProjectCategoryView StatusLast Update
0001112channel: elrepo/el8nvidia-detectpublic2021-06-24 03:19
Reportergbrandl Assigned Topperry  
PrioritynormalSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
Platformx86-64OSCentOSOS Version8.4
Summary0001112: nvidia-detect fails to detect NVIDIA Corporation GK107GL [Quadro 410]
DescriptionSince the upgrade to 8.4, nvidia-detect does not find the given card anymore, saying "No NVIDIA devices were found."

The machine is a HP Z420, relevant `lspci` output:

# lspci | grep VGA
05:00.0 VGA compatible controller: NVIDIA Corporation GK107GL [Quadro 410] (rev a1)
# lspci -n | grep 05:00.0
05:00.0 0300: 10de:0fff (rev a1)

The PCI ID `10de:0fff` is listed in `nvidia-detect -l` as being supported by the newest driver.
Steps To ReproduceInstall nvidia-detect on a HP Z420 workstation, call `nvidia-detect`.
TagsNo tags attached.

Activities

pperry

2021-06-23 11:48

administrator   ~0007694

Last edited: 2021-06-23 11:49

What is the version of nvidia-detect?

Please show output from 'nvidia-detect -v'

What was the last version that works for you?

gbrandl

2021-06-23 12:20

reporter   ~0007695

Sorry, forgot to add the version. It is nvidia-detect-460.73.01-1.el8.x86_64

# nvidia-detect -v
Probing for supported NVIDIA devices...
No NVIDIA devices were found.

I can't tell you the last working version; we only run it once on install. This came up when installing a fresh machine after the 8.4 bump. The machines are all the same make and model, though, and contain the same NVidia card.

I did try with the older version available in the repo (nvidia-detect-440.64-1.el8.x86_64), but that is not working either.

gbrandl

2021-06-23 12:33

reporter   ~0007696

OK, I got the source from the SRPM, and debugged the problem. It looks like the code does not call `pci_fill_info` on the returned pci_dev structs, and therefore all the info fields (device_class, vendor_id, device_id etc.) are zero.

I don't know why this was not required previously, maybe it is an incompatibility in the pci-utils package.

The following patch seems to fix the issue:

--- nvidia-detect.c 2021-05-11 14:09:41.698807061 +0200
+++ nvidia-detect.c.new 2021-06-23 18:31:27.085090004 +0200
@@ -460,6 +460,7 @@
 
        /* Iterate over all devices */
        for (dev=pacc->devices; dev; dev=dev->next) {
+ pci_fill_info(dev, PCI_FILL_IDENT | PCI_FILL_CLASS);
 
                if ((dev->device_class & 0xff00) == 0x0300) {

pperry

2021-06-23 12:57

administrator   ~0007698

I confirm the issue. Thanks for the patch.

We used to call pci_fill_info(), but dropped it very early on (2013) as it was not required to get the device_class. It would appear that has changed with the update to pciutils-3.7.0.

I'll run some tests and get a fix built this evening for you to test.

Thanks again

pperry

2021-06-23 15:22

administrator   ~0007699

Updated packages including your patch have been built and should be available on mirror sites shortly.

nvidia-detect-460.84-1.el8.elrepo.x86_64.rpm
nvidia-detect-460.84-1.el7.elrepo.x86_64.rpm

Thanks again for the patch.

gbrandl

2021-06-24 01:32

reporter   ~0007700

Can confirm that the new c8 package works again. Thanks for the super fast response!

pperry

2021-06-24 03:19

administrator   ~0007701

You're welcome!

Thanks for the feedback - closed as fixed.

Issue History

Date Modified Username Field Change
2021-06-23 10:02 gbrandl New Issue
2021-06-23 10:02 gbrandl Status new => assigned
2021-06-23 10:02 gbrandl Assigned To => pperry
2021-06-23 11:48 pperry Note Added: 0007694
2021-06-23 11:48 pperry Note Edited: 0007694
2021-06-23 11:49 pperry Note Edited: 0007694
2021-06-23 12:20 gbrandl Note Added: 0007695
2021-06-23 12:33 gbrandl Note Added: 0007696
2021-06-23 12:57 pperry Note Added: 0007698
2021-06-23 15:22 pperry Note Added: 0007699
2021-06-24 01:32 gbrandl Note Added: 0007700
2021-06-24 03:19 pperry Note Added: 0007701
2021-06-24 03:19 pperry Status assigned => resolved
2021-06-24 03:19 pperry Resolution open => fixed