mirror of
https://github.com/torvalds/linux.git
synced 2026-05-05 23:05:25 -04:00
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:
committed by
Alex Williamson
parent
6c74d9830d
commit
c48545442e
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user