Hi Jianfeng, On 01/09/2018 02:18 PM, Maxime Coquelin wrote:
Intel VT-d supports different address widths for the IOVAs, from 39 bits to 56 bits.While recent processors support at least 48 bits, VT-d emulation currently only supports 39 bits. It makes DMA mapping to fail in this case when using VA as IOVA mode, as user-space virtual addresses uses up to 47 bits (see kernel's Documentation/x86/x86_64/mm.txt). This patch parses VT-d CAP register value available in sysfs, and forbid VA as IOVA mode if the GAW is 39 bits or unknown. Fixes: f37dfab21c98 ("drivers/net: enable IOVA mode for Intel PMDs") Cc: [email protected] Signed-off-by: Maxime Coquelin <[email protected]> --- Changes in v2: ============== - Rework pci_one_device_iommu_support_va #ifdefery (Stephen) - Don't inline introduced functions (Stephen) drivers/bus/pci/linux/pci.c | 108 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 99 insertions(+), 9 deletions(-)
Could you please try the patch and confirm it does not break your --no-huge usecase? Are you fine with the fix? Thanks, Maxime

