Skip to contentSkip to conversation

pci passthrough error about insufficient iommu width

DISCUSSION Nishank Trivedi 3 participants 5 messages Aug 6, 2014 – Aug 7, 2014 KVM

lore
Share & tools
lore
#0 lore raw

Hi

I'm trying to do a pci-passthrough of Intel 82599 10GbE card, with guest having 8G of memory. I see following error -

intel_iommu_map: iommu width (48) is not sufficient for the mapped address (fffffffffe001000) kvm_iommu_map_address:iommu failed to map pfn=45800

I checked IOMMU capability register and SAGAW as well as MGAW are 48bits for both IOMMU.

# dmesg | grep ecap
dmar: IOMMU 0: reg_base_addr dfff0000 ver 1:0 cap d2078c106f0462 ecap f020fe
dmar: IOMMU 1: reg_base_addr bfff0000 ver 1:0 cap d2078c106f0462 ecap f020fe
# cat /proc/cpuinfo | grep "address sizes"
address sizes   : 46 bits physical, 48 bits virtual

In DMAR table, I see host address width set to "2D", i.e. 46bit, which is ok as it is same as physical address size. Any suggestions on what might be going wrong here?

Thanks,
nt

#1 lore raw
Quoted 16 lines · Nishank Trivedi

Hi

I'm trying to do a pci-passthrough of Intel 82599 10GbE card, with guest having 8G of memory. I see following error -

intel_iommu_map: iommu width (48) is not sufficient for the mapped address (fffffffffe001000)
kvm_iommu_map_address:iommu failed to map pfn=45800

I checked IOMMU capability register and SAGAW as well as MGAW are 48bits for both IOMMU.

# dmesg | grep ecap
dmar: IOMMU 0: reg_base_addr dfff0000 ver 1:0 cap d2078c106f0462 ecap f020fe
dmar: IOMMU 1: reg_base_addr bfff0000 ver 1:0 cap d2078c106f0462 ecap f020fe
Quoted 6 lines
# cat /proc/cpuinfo | grep "address sizes"
address sizes   : 46 bits physical, 48 bits virtual

In DMAR table, I see host address width set to "2D", i.e. 46bit, which is ok as it is same as physical address size. Any suggestions on what might be going wrong here?

Try vfio-pci instead of pci-assign

#2 lore raw

I encountered the same "IOMMU width is not sufficient" issue. Using VFIO works ok for me.

Quoted 30 lines · Alex Williamson
Quoted 16 lines · Nishank Trivedi

Hi

I'm trying to do a pci-passthrough of Intel 82599 10GbE card, with guest having 8G of memory. I see following error -

intel_iommu_map: iommu width (48) is not sufficient for the mapped address (fffffffffe001000)
kvm_iommu_map_address:iommu failed to map pfn=45800

I checked IOMMU capability register and SAGAW as well as MGAW are 48bits for both IOMMU.

# dmesg | grep ecap
dmar: IOMMU 0: reg_base_addr dfff0000 ver 1:0 cap d2078c106f0462 ecap f020fe
dmar: IOMMU 1: reg_base_addr bfff0000 ver 1:0 cap d2078c106f0462 ecap f020fe
Quoted 6 lines
# cat /proc/cpuinfo | grep "address sizes"
address sizes   : 46 bits physical, 48 bits virtual

In DMAR table, I see host address width set to "2D", i.e. 46bit, which is ok as it is same as physical address size. Any suggestions on what might be going wrong here?

Try vfio-pci instead of pci-assign

--
To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#3 lore raw
Quoted 3 lines · William Tu
Quoted 3 lines

Try vfio-pci instead of pci-assign

Thanks Alex, William. Using vfio worked.
So does that mean pci-assign is being deprecated?

#4 lore raw
Quoted 7 lines · Nishank Trivedi
Quoted 3 lines · William Tu
Quoted 3 lines

Try vfio-pci instead of pci-assign

Thanks Alex, William. Using vfio worked.
So does that mean pci-assign is being deprecated?

Yes, vfio is meant to replace pci-assign with a better device ownership model, better security, better separation from KVM, support for multiple architectures, etc. There are no concrete plans to remove pci-assign, but as you can see, it's not as well tested or maintained as vfio. Thanks,

Alex