@@ -226,14 +226,27 @@ func (m mdev) Type() (string, error) {
226226 if err != nil {
227227 return "" , fmt .Errorf ("unable to read mdev_type name for mdev %s: %v" , m , err )
228228 }
229- // file in the format: [NVIDIA|GRID] <vGPU type>
230- mdevTypeStr := strings .TrimSpace (string (mdevType ))
231- mdevTypeSplit := strings .SplitN (mdevTypeStr , " " , 2 )
232- if len (mdevTypeSplit ) != 2 {
233- return "" , fmt .Errorf ("unable to parse mdev_type name %s for mdev %s" , mdevTypeStr , m )
229+ typeName , err := parseMdevTypeName (string (mdevType ))
230+ if err != nil {
231+ return "" , fmt .Errorf ("unable to parse mdev_type name for mdev %s: %v" , m , err )
234232 }
235233
236- return mdevTypeSplit [1 ], nil
234+ return typeName , nil
235+ }
236+
237+ // parseMdevTypeName extracts the vGPU type name from a string that may contain
238+ // product prefixes.
239+ // Examples:
240+ // - "NVIDIA A100-4C" -> "A100-4C".
241+ // - "NVIDIA RTX Pro 6000 Blackwell DC-48C" -> "DC-48C"
242+ func parseMdevTypeName (rawName string ) (string , error ) {
243+ nameStr := strings .TrimSpace (rawName )
244+ nameSplit := strings .Split (nameStr , " " )
245+ typeName := nameSplit [len (nameSplit )- 1 ]
246+ if typeName == "" {
247+ return "" , fmt .Errorf ("unable to parse mdev_type name from: %s" , rawName )
248+ }
249+ return typeName , nil
237250}
238251
239252func (m mdev ) driver () (string , error ) {
@@ -280,13 +293,10 @@ func (m *nvmdev) NewParentDevice(devicePath string) (*ParentDevice, error) {
280293 if err != nil {
281294 return nil , fmt .Errorf ("unable to read file %s: %v" , path , err )
282295 }
283- // file in the format: [NVIDIA|GRID] <vGPU type>
284- nameStr := strings .TrimSpace (string (name ))
285- nameSplit := strings .SplitN (nameStr , " " , 2 )
286- if len (nameSplit ) != 2 {
287- return nil , fmt .Errorf ("unable to parse mdev_type name %s at path %s" , nameStr , path )
296+ nameStr , err := parseMdevTypeName (string (name ))
297+ if err != nil {
298+ return nil , fmt .Errorf ("unable to parse mdev_type name at path %s: %v" , path , err )
288299 }
289- nameStr = nameSplit [len (nameSplit )- 1 ]
290300
291301 mdevTypesMap [nameStr ] = filepath .Dir (path )
292302 }
0 commit comments