From b67df474258e4787ecf7da40443bb74a3627949b Mon Sep 17 00:00:00 2001 From: Simon Michnowicz <simon.michnowicz@monash.edu> Date: Mon, 8 Apr 2019 17:58:49 +1000 Subject: [PATCH] modified detection of pci bus id's to account for baremetal machines have a different format --- roles/gpu/files/scripts/nvidia-xconf-gen.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/roles/gpu/files/scripts/nvidia-xconf-gen.py b/roles/gpu/files/scripts/nvidia-xconf-gen.py index 7cd9cb55..6993d333 100755 --- a/roles/gpu/files/scripts/nvidia-xconf-gen.py +++ b/roles/gpu/files/scripts/nvidia-xconf-gen.py @@ -29,8 +29,18 @@ def grab_card_ids(): cards = [] for line in p.stdout.readlines(): - line = line.rstrip().split(":")[2] - pcibus_num = int(re.sub('[.:]', '', line).rstrip("0"),16) + stripped_line = line.rstrip().split(":")[2] + #check for different format of pcibus_id. This happens on baremetals + # i.e. 00000000:06:00.0 not 00000000:00:06.0 + pcibus_id = re.sub('[.:]', '', stripped_line).rstrip("0") + if not pcibus_id: # empty string, try the other way + stripped_line = line.rstrip().split(":")[1] + pcibus_id = re.sub('[.:]', '', stripped_line).rstrip("0") + if not pcibus_id: + print("Error in grab_card_ids: we can not parse the line {}".format(line)) + print("Command that generated it is: {}".format(cmd)) + system.exit(1) + pcibus_num = int(pcibus_id,16) card = "PCI:0:{}:0".format(str(pcibus_num)) cards.append(card) return cards -- GitLab