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