vfio: selftests: Prefix logs with device BDF where relevant

Prefix log messages with the device's BDF where relevant. This will help
understanding VFIO selftests logs when tests are run with multiple
devices.

Reviewed-by: Alex Mastro <amastro@fb.com>
Tested-by: Alex Mastro <amastro@fb.com>
Reviewed-by: Raghavendra Rao Ananta <rananta@google.com>
Signed-off-by: David Matlack <dmatlack@google.com>
Link: https://lore.kernel.org/r/20251126231733.3302983-9-dmatlack@google.com
Signed-off-by: Alex Williamson <alex@shazbot.org>
This commit is contained in:
David Matlack
2025-11-26 23:17:23 +00:00
committed by Alex Williamson
parent 6c74d9830d
commit c48545442e
4 changed files with 30 additions and 25 deletions

View File

@@ -70,7 +70,7 @@ static int dsa_probe(struct vfio_pci_device *device)
return -EINVAL;
if (dsa_int_handle_request_required(device)) {
printf("Device requires requesting interrupt handles\n");
dev_info(device, "Device requires requesting interrupt handles\n");
return -EINVAL;
}
@@ -91,23 +91,23 @@ static void dsa_check_sw_err(struct vfio_pci_device *device)
return;
}
fprintf(stderr, "SWERR: 0x%016lx 0x%016lx 0x%016lx 0x%016lx\n",
dev_err(device, "SWERR: 0x%016lx 0x%016lx 0x%016lx 0x%016lx\n",
err.bits[0], err.bits[1], err.bits[2], err.bits[3]);
fprintf(stderr, " valid: 0x%x\n", err.valid);
fprintf(stderr, " overflow: 0x%x\n", err.overflow);
fprintf(stderr, " desc_valid: 0x%x\n", err.desc_valid);
fprintf(stderr, " wq_idx_valid: 0x%x\n", err.wq_idx_valid);
fprintf(stderr, " batch: 0x%x\n", err.batch);
fprintf(stderr, " fault_rw: 0x%x\n", err.fault_rw);
fprintf(stderr, " priv: 0x%x\n", err.priv);
fprintf(stderr, " error: 0x%x\n", err.error);
fprintf(stderr, " wq_idx: 0x%x\n", err.wq_idx);
fprintf(stderr, " operation: 0x%x\n", err.operation);
fprintf(stderr, " pasid: 0x%x\n", err.pasid);
fprintf(stderr, " batch_idx: 0x%x\n", err.batch_idx);
fprintf(stderr, " invalid_flags: 0x%x\n", err.invalid_flags);
fprintf(stderr, " fault_addr: 0x%lx\n", err.fault_addr);
dev_err(device, " valid: 0x%x\n", err.valid);
dev_err(device, " overflow: 0x%x\n", err.overflow);
dev_err(device, " desc_valid: 0x%x\n", err.desc_valid);
dev_err(device, " wq_idx_valid: 0x%x\n", err.wq_idx_valid);
dev_err(device, " batch: 0x%x\n", err.batch);
dev_err(device, " fault_rw: 0x%x\n", err.fault_rw);
dev_err(device, " priv: 0x%x\n", err.priv);
dev_err(device, " error: 0x%x\n", err.error);
dev_err(device, " wq_idx: 0x%x\n", err.wq_idx);
dev_err(device, " operation: 0x%x\n", err.operation);
dev_err(device, " pasid: 0x%x\n", err.pasid);
dev_err(device, " batch_idx: 0x%x\n", err.batch_idx);
dev_err(device, " invalid_flags: 0x%x\n", err.invalid_flags);
dev_err(device, " fault_addr: 0x%lx\n", err.fault_addr);
VFIO_FAIL("Software Error Detected!\n");
}
@@ -256,7 +256,7 @@ static int dsa_completion_wait(struct vfio_pci_device *device,
if (status == DSA_COMP_SUCCESS)
return 0;
printf("Error detected during memcpy operation: 0x%x\n", status);
dev_info(device, "Error detected during memcpy operation: 0x%x\n", status);
return -1;
}

View File

@@ -51,7 +51,7 @@ static int ioat_probe(struct vfio_pci_device *device)
r = 0;
break;
default:
printf("ioat: Unsupported version: 0x%x\n", version);
dev_info(device, "ioat: Unsupported version: 0x%x\n", version);
r = -EINVAL;
}
return r;
@@ -135,13 +135,13 @@ static void ioat_handle_error(struct vfio_pci_device *device)
{
void *registers = ioat_channel_registers(device);
printf("Error detected during memcpy operation!\n"
" CHANERR: 0x%x\n"
" CHANERR_INT: 0x%x\n"
" DMAUNCERRSTS: 0x%x\n",
readl(registers + IOAT_CHANERR_OFFSET),
vfio_pci_config_readl(device, IOAT_PCI_CHANERR_INT_OFFSET),
vfio_pci_config_readl(device, IOAT_PCI_DMAUNCERRSTS_OFFSET));
dev_info(device, "Error detected during memcpy operation!\n"
" CHANERR: 0x%x\n"
" CHANERR_INT: 0x%x\n"
" DMAUNCERRSTS: 0x%x\n",
readl(registers + IOAT_CHANERR_OFFSET),
vfio_pci_config_readl(device, IOAT_PCI_CHANERR_INT_OFFSET),
vfio_pci_config_readl(device, IOAT_PCI_DMAUNCERRSTS_OFFSET));
ioat_reset(device);
}

View File

@@ -50,6 +50,9 @@
VFIO_LOG_AND_EXIT(_fmt, ##__VA_ARGS__); \
} while (0)
#define dev_info(_dev, _fmt, ...) printf("%s: " _fmt, (_dev)->bdf, ##__VA_ARGS__)
#define dev_err(_dev, _fmt, ...) fprintf(stderr, "%s: " _fmt, (_dev)->bdf, ##__VA_ARGS__)
struct iommu_mode {
const char *name;
const char *container_path;
@@ -172,6 +175,7 @@ struct iommu {
};
struct vfio_pci_device {
const char *bdf;
int fd;
int group_fd;

View File

@@ -843,6 +843,7 @@ struct vfio_pci_device *vfio_pci_device_init(const char *bdf, struct iommu *iomm
VFIO_ASSERT_NOT_NULL(iommu);
device->iommu = iommu;
device->bdf = bdf;
if (iommu->mode->container_path)
vfio_pci_container_setup(device, bdf);