Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Add logging to vfio code
[vpp.git]
/
src
/
vlib
/
linux
/
vfio.c
diff --git
a/src/vlib/linux/vfio.c
b/src/vlib/linux/vfio.c
index
956b4ab
..
53eed8b
100644
(file)
--- a/
src/vlib/linux/vfio.c
+++ b/
src/vlib/linux/vfio.c
@@
-38,6
+38,7
@@
static int
map_regions (vlib_main_t * vm, int fd)
{
vlib_physmem_main_t *vpm = &physmem_main;
map_regions (vlib_main_t * vm, int fd)
{
vlib_physmem_main_t *vpm = &physmem_main;
+ linux_vfio_main_t *lvm = &vfio_main;
vlib_physmem_region_t *pr;
struct vfio_iommu_type1_dma_map dm = { 0 };
int i;
vlib_physmem_region_t *pr;
struct vfio_iommu_type1_dma_map dm = { 0 };
int i;
@@
-54,8
+55,17
@@
map_regions (vlib_main_t * vm, int fd)
dm.vaddr = pointer_to_uword (pr->mem) + (i << pr->log2_page_size);
dm.size = 1 << pr->log2_page_size;
dm.iova = dm.vaddr;
dm.vaddr = pointer_to_uword (pr->mem) + (i << pr->log2_page_size);
dm.size = 1 << pr->log2_page_size;
dm.iova = dm.vaddr;
+ vlib_log_debug (lvm->log_default, "map DMA va:0x%lx iova:%lx "
+ "size:0x%lx", dm.vaddr, dm.iova, dm.size);
+
if ((rv = ioctl (fd, VFIO_IOMMU_MAP_DMA, &dm)))
if ((rv = ioctl (fd, VFIO_IOMMU_MAP_DMA, &dm)))
- return rv;
+ {
+ vlib_log_err (lvm->log_default, "map DMA va:0x%lx iova:%lx "
+ "size:0x%lx failed, error %s (errno %d)",
+ dm.vaddr, dm.iova, dm.size, strerror (errno),
+ errno);
+ return rv;
+ }
}
});
/* *INDENT-ON* */
}
});
/* *INDENT-ON* */
@@
-220,6
+230,8
@@
linux_vfio_init (vlib_main_t * vm)
linux_vfio_main_t *lvm = &vfio_main;
int fd;
linux_vfio_main_t *lvm = &vfio_main;
int fd;
+ lvm->log_default = vlib_log_register_class ("vfio", 0);
+
fd = open ("/dev/vfio/vfio", O_RDWR);
/* check if iommu is available */
fd = open ("/dev/vfio/vfio", O_RDWR);
/* check if iommu is available */
@@
-233,9
+245,15
@@
linux_vfio_init (vlib_main_t * vm)
else
{
if (ioctl (fd, VFIO_CHECK_EXTENSION, VFIO_TYPE1_IOMMU) == 1)
else
{
if (ioctl (fd, VFIO_CHECK_EXTENSION, VFIO_TYPE1_IOMMU) == 1)
- lvm->flags |= LINUX_VFIO_F_HAVE_IOMMU;
+ {
+ lvm->flags |= LINUX_VFIO_F_HAVE_IOMMU;
+ vlib_log_info (lvm->log_default, "type 1 IOMMU mode supported");
+ }
if (ioctl (fd, VFIO_CHECK_EXTENSION, VFIO_NOIOMMU_IOMMU) == 1)
if (ioctl (fd, VFIO_CHECK_EXTENSION, VFIO_NOIOMMU_IOMMU) == 1)
- lvm->flags |= LINUX_VFIO_F_HAVE_NOIOMMU;
+ {
+ lvm->flags |= LINUX_VFIO_F_HAVE_NOIOMMU;
+ vlib_log_info (lvm->log_default, "NOIOMMU mode supported");
+ }
}
}
}
}