Alvaro Karsz
2023-Feb-01 15:20 UTC
[PATCH] vhost-vdpa: print error when vhost_vdpa_alloc_domain fails
Add a print explaining why vhost_vdpa_alloc_domain failed if the device
is not IOMMU cache coherent capable.
Without this print, we have no hint why the operation failed.
For example:
$ virsh start <domain>
error: Failed to start domain <domain>
error: Unable to open '/dev/vhost-vdpa-<idx>' for vdpa device:
Unknown error 524
Suggested-by: Eugenio Perez Martin <eperezma at redhat.com>
Signed-off-by: Alvaro Karsz <alvaro.karsz at solid-run.com>
---
drivers/vhost/vdpa.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c
index 23db92388393..56287506aa0d 100644
--- a/drivers/vhost/vdpa.c
+++ b/drivers/vhost/vdpa.c
@@ -1151,8 +1151,11 @@ static int vhost_vdpa_alloc_domain(struct vhost_vdpa *v)
if (!bus)
return -EFAULT;
- if (!device_iommu_capable(dma_dev, IOMMU_CAP_CACHE_COHERENCY))
+ if (!device_iommu_capable(dma_dev, IOMMU_CAP_CACHE_COHERENCY)) {
+ dev_err(&v->dev,
+ "Failed to allocate domain, device is not IOMMU cache coherent
capable\n");
return -ENOTSUPP;
+ }
v->domain = iommu_domain_alloc(bus);
if (!v->domain)
--
2.34.1
Michael S. Tsirkin
2023-Feb-01 15:52 UTC
[PATCH] vhost-vdpa: print error when vhost_vdpa_alloc_domain fails
On Wed, Feb 01, 2023 at 05:20:18PM +0200, Alvaro Karsz wrote:> Add a print explaining why vhost_vdpa_alloc_domain failed if the device > is not IOMMU cache coherent capable. > > Without this print, we have no hint why the operation failed. > > For example: > > $ virsh start <domain> > error: Failed to start domain <domain> > error: Unable to open '/dev/vhost-vdpa-<idx>' for vdpa device: > Unknown error 524 > > Suggested-by: Eugenio Perez Martin <eperezma at redhat.com> > Signed-off-by: Alvaro Karsz <alvaro.karsz at solid-run.com>I'm not sure this is a good idea. Userspace is not supposed to be able to trigger dev_err.> --- > drivers/vhost/vdpa.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c > index 23db92388393..56287506aa0d 100644 > --- a/drivers/vhost/vdpa.c > +++ b/drivers/vhost/vdpa.c > @@ -1151,8 +1151,11 @@ static int vhost_vdpa_alloc_domain(struct vhost_vdpa *v) > if (!bus) > return -EFAULT; > > - if (!device_iommu_capable(dma_dev, IOMMU_CAP_CACHE_COHERENCY)) > + if (!device_iommu_capable(dma_dev, IOMMU_CAP_CACHE_COHERENCY)) { > + dev_err(&v->dev, > + "Failed to allocate domain, device is not IOMMU cache coherent capable\n"); > return -ENOTSUPP; > + } > > v->domain = iommu_domain_alloc(bus); > if (!v->domain) > -- > 2.34.1
Alvaro Karsz
2023-Feb-02 08:42 UTC
[PATCH v2] vhost-vdpa: print warning when vhost_vdpa_alloc_domain fails
Add a print explaining why vhost_vdpa_alloc_domain failed if the device
is not IOMMU cache coherent capable.
Without this print, we have no hint why the operation failed.
For example:
$ virsh start <domain>
error: Failed to start domain <domain>
error: Unable to open '/dev/vhost-vdpa-<idx>' for vdpa device:
Unknown error 524
Suggested-by: Eugenio Perez Martin <eperezma at redhat.com>
Signed-off-by: Alvaro Karsz <alvaro.karsz at solid-run.com>
---
v2:
- replace dev_err with dev_warn_once.
drivers/vhost/vdpa.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c
index 23db92388393..135f8aa70fb2 100644
--- a/drivers/vhost/vdpa.c
+++ b/drivers/vhost/vdpa.c
@@ -1151,8 +1151,11 @@ static int vhost_vdpa_alloc_domain(struct vhost_vdpa *v)
if (!bus)
return -EFAULT;
- if (!device_iommu_capable(dma_dev, IOMMU_CAP_CACHE_COHERENCY))
+ if (!device_iommu_capable(dma_dev, IOMMU_CAP_CACHE_COHERENCY)) {
+ dev_warn_once(&v->dev,
+ "Failed to allocate domain, device is not IOMMU cache coherent
capable\n");
return -ENOTSUPP;
+ }
v->domain = iommu_domain_alloc(bus);
if (!v->domain)
--
2.34.1