2012-10-09 00:36:16

by Shuah Khan

[permalink] [raw]
Subject: [PATCH] virt/kvm: change kvm_assign_device() to print return value when iommu_attach_device() fails

Change existing kernel error message to include return value from
iommu_attach_device() when it fails. This will help debug device
assignment failures more effectively.

Signed-off-by: Shuah Khan <[email protected]>
---
virt/kvm/iommu.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/virt/kvm/iommu.c b/virt/kvm/iommu.c
index 037cb67..18e1e30 100644
--- a/virt/kvm/iommu.c
+++ b/virt/kvm/iommu.c
@@ -168,11 +168,7 @@ int kvm_assign_device(struct kvm *kvm,

r = iommu_attach_device(domain, &pdev->dev);
if (r) {
- printk(KERN_ERR "assign device %x:%x:%x.%x failed",
- pci_domain_nr(pdev->bus),
- pdev->bus->number,
- PCI_SLOT(pdev->devfn),
- PCI_FUNC(pdev->devfn));
+ dev_err(&pdev->dev, "kvm assign device failed ret %d", r);
return r;
}

--
1.7.9.5



2012-10-10 18:20:58

by Shuah Khan

[permalink] [raw]
Subject: Re: [PATCH] virt/kvm: change kvm_assign_device() to print return value when iommu_attach_device() fails

On Wed, Oct 10, 2012 at 10:51 AM, Marcelo Tosatti <[email protected]> wrote:
> On Mon, Oct 08, 2012 at 06:36:11PM -0600, Shuah Khan wrote:
>> Change existing kernel error message to include return value from
>> iommu_attach_device() when it fails. This will help debug device
>> assignment failures more effectively.
>>
>> Signed-off-by: Shuah Khan <[email protected]>
>> ---
>> virt/kvm/iommu.c | 6 +-----
>> 1 file changed, 1 insertion(+), 5 deletions(-)
>>
>> diff --git a/virt/kvm/iommu.c b/virt/kvm/iommu.c
>> index 037cb67..18e1e30 100644
>> --- a/virt/kvm/iommu.c
>> +++ b/virt/kvm/iommu.c
>> @@ -168,11 +168,7 @@ int kvm_assign_device(struct kvm *kvm,
>>
>> r = iommu_attach_device(domain, &pdev->dev);
>> if (r) {
>> - printk(KERN_ERR "assign device %x:%x:%x.%x failed",
>> - pci_domain_nr(pdev->bus),
>> - pdev->bus->number,
>> - PCI_SLOT(pdev->devfn),
>> - PCI_FUNC(pdev->devfn));
>> + dev_err(&pdev->dev, "kvm assign device failed ret %d", r);
>> return r;
>> }
>
> Why removal of domain,bus,slot,func from the message?
>

dev_err() includes that information like this:

pci 0000:00:1d.0: assign device failed ret 0

Without the removal of domain,bus,slot,func from the message:

It will look like:

pci 0000:00:1d.0: assign device 0:0:1d.0 failed ret 0

Initially I left it in there and after testing, realized it is
duplicate information and decided to remove it.

-- Shuah

2012-10-10 18:12:55

by Marcelo Tosatti

[permalink] [raw]
Subject: Re: [PATCH] virt/kvm: change kvm_assign_device() to print return value when iommu_attach_device() fails

On Mon, Oct 08, 2012 at 06:36:11PM -0600, Shuah Khan wrote:
> Change existing kernel error message to include return value from
> iommu_attach_device() when it fails. This will help debug device
> assignment failures more effectively.
>
> Signed-off-by: Shuah Khan <[email protected]>
> ---
> virt/kvm/iommu.c | 6 +-----
> 1 file changed, 1 insertion(+), 5 deletions(-)
>
> diff --git a/virt/kvm/iommu.c b/virt/kvm/iommu.c
> index 037cb67..18e1e30 100644
> --- a/virt/kvm/iommu.c
> +++ b/virt/kvm/iommu.c
> @@ -168,11 +168,7 @@ int kvm_assign_device(struct kvm *kvm,
>
> r = iommu_attach_device(domain, &pdev->dev);
> if (r) {
> - printk(KERN_ERR "assign device %x:%x:%x.%x failed",
> - pci_domain_nr(pdev->bus),
> - pdev->bus->number,
> - PCI_SLOT(pdev->devfn),
> - PCI_FUNC(pdev->devfn));
> + dev_err(&pdev->dev, "kvm assign device failed ret %d", r);
> return r;
> }

Why removal of domain,bus,slot,func from the message?

2012-10-10 18:45:37

by Marcelo Tosatti

[permalink] [raw]
Subject: Re: [PATCH] virt/kvm: change kvm_assign_device() to print return value when iommu_attach_device() fails

On Mon, Oct 08, 2012 at 06:36:11PM -0600, Shuah Khan wrote:
> Change existing kernel error message to include return value from
> iommu_attach_device() when it fails. This will help debug device
> assignment failures more effectively.
>
> Signed-off-by: Shuah Khan <[email protected]>

Applied, thanks.