diff --git a/internal/onload_device/fingerprint.go b/internal/onload_device/fingerprint.go index aeb93c7..c05441f 100644 --- a/internal/onload_device/fingerprint.go +++ b/internal/onload_device/fingerprint.go @@ -99,6 +99,7 @@ func (d *OnloadDevicePlugin) getFingerprintData() (*FingerprintData, error) { for _, dev := range deviceInfos { for _, deviceType := range deviceTypes { // create pseudo-devices for non-exclusive access + d.logger.Info("Fingerprinted NIC device", "deviceType", deviceType, "iface", dev.Interface) devices = append(devices, makePsuedoDeviceFingerprints(d.config.NumPsuedoNIC, deviceType, dev)...) } } @@ -107,6 +108,7 @@ func (d *OnloadDevicePlugin) getFingerprintData() (*FingerprintData, error) { if d.config.ProbePPS { if devs, err := ProbePPS(); err == nil { for _, dev := range devs { + d.logger.Info("Fingerprinted PPS device", "deviceType", deviceType_PPS, "iface", dev.Interface) devices = append(devices, makePsuedoDeviceFingerprints(d.config.NumPsuedoPPS, deviceType_PPS, dev)...) } } else { @@ -116,6 +118,7 @@ func (d *OnloadDevicePlugin) getFingerprintData() (*FingerprintData, error) { if d.config.ProbePTP { if devs, err := ProbePTP(); err == nil { for _, dev := range devs { + d.logger.Info("Fingerprinted PTP device", "deviceType", deviceType_PTP, "iface", dev.Interface) devices = append(devices, makePsuedoDeviceFingerprints(d.config.NumPsuedoPTP, deviceType_PTP, dev)...) } } else { @@ -138,7 +141,7 @@ func makePsuedoDeviceFingerprints(numPsuedoDevices int, deviceType string, devIn deviceID := fmt.Sprintf("%s-%d", devInfo.Interface, i) fingprintDevices = append(fingprintDevices, &FingerprintDeviceData{ Interface: deviceID, - Model: devInfo.Interface, // hard to know actual Model, so allow Interface as specifier + Model: devInfo.Interface, // hard to know actual Model, so use Interface as specifier DeviceType: deviceType, Vendor: devInfo.Vendor, PCIBusID: devInfo.PCIBusID, @@ -277,11 +280,10 @@ func (d *OnloadDevicePlugin) deviceGroupFromFingerprintData(groupName string, de dev := deviceList[0] // safe, we checked above deviceGroup := &device.DeviceGroup{ - Vendor: dev.Vendor, - Type: dev.DeviceType, - Name: groupName, - Devices: devices, - // TODO: what are common attributes? + Vendor: dev.Vendor, + Type: dev.DeviceType, + Name: groupName, + Devices: devices, Attributes: map[string]*structs.Attribute{}, } diff --git a/internal/onload_device/probes.go b/internal/onload_device/probes.go index 9241a85..addb2f4 100644 --- a/internal/onload_device/probes.go +++ b/internal/onload_device/probes.go @@ -142,8 +142,9 @@ func ProbePPS() ([]DeviceInfo, error) { } var devs []DeviceInfo for _, ppsDevice := range ppsDevices { + iface := strings.TrimPrefix(ppsDevice, "/dev/") devs = append(devs, DeviceInfo{ - Interface: ppsDevice, + Interface: iface, Vendor: vendor_None, // TODO: this is discoverable? PCIBusID: "", // TODO: this is discoverable? }) @@ -159,8 +160,9 @@ func ProbePTP() ([]DeviceInfo, error) { } var devs []DeviceInfo for _, ptpDevice := range ptpDevices { + iface := strings.TrimPrefix(ptpDevice, "/dev/") devs = append(devs, DeviceInfo{ - Interface: ptpDevice, + Interface: iface, Vendor: vendor_None, // TODO: this is discoverable? PCIBusID: "", // TODO: this is discoverable? }) diff --git a/internal/onload_device/reserve.go b/internal/onload_device/reserve.go index 78fb917..bf5f342 100644 --- a/internal/onload_device/reserve.go +++ b/internal/onload_device/reserve.go @@ -104,27 +104,24 @@ func (d *OnloadDevicePlugin) Reserve(deviceIDs []string) (*device.ContainerReser Mounts: []*device.Mount{}, Devices: []*device.DeviceSpec{}, } - // Add devices for _, deviceID := range deviceIDs { device, ok := d.devices[deviceID] if !ok { - d.logger.Warn("Device not known", "deviceID", deviceID) + d.logger.Warn("Reserving a device not known", "deviceID", deviceID) continue } + switch device.DeviceType { - case deviceType_Onload: - case deviceType_ZF: - case deviceType_OnloadZF: + case deviceType_Onload, deviceType_ZF, deviceType_OnloadZF: // updates resp d.logger.Info("Reserving onload device", "deviceID", deviceID, "deviceType", device.DeviceType) d.reserveOnloadDevice(resp, device.DeviceType, deviceID) - case deviceType_PTP: - case deviceType_PPS: + case deviceType_PTP, deviceType_PPS: d.logger.Info("Reserving timekeeping device", "deviceID", deviceID, "deviceType", device.DeviceType) - d.reserveTimekeepingDevice(resp, device.DeviceType, device.Interface) + d.reserveTimekeepingDevice(resp, device.DeviceType, device.Model) default: - d.logger.Warn("DeviceType not known", "deviceType", device.DeviceType, "deviceID", deviceID) + d.logger.Warn("Reserving a DeviceType not known", "deviceType", device.DeviceType, "deviceID", deviceID) continue }