Hi Maxime, > -----Original Message----- > From: Maxime Coquelin [mailto:maxime.coque...@redhat.com] > Sent: Friday, January 12, 2018 4:20 AM > To: Tan, Jianfeng > Cc: dev@dpdk.org; sta...@dpdk.org; santosh.shu...@caviumnetworks.com; > Burakov, Anatoly; tho...@monjalon.net; step...@networkplumber.org; > pet...@redhat.com > Subject: Re: [PATCH v2] bus/pci: forbid VA as IOVA mode if IOMMU address > width too small > > 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).
Yes, I also notice this issue on some of Intel platform with limited width for IOVA. But I was always suggesting to use --base-virtaddr to work around. > > > > 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: sta...@dpdk.org > > Signed-off-by: Maxime Coquelin <maxime.coque...@redhat.com> > > --- > > > > 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? I've tested the --no-huge case, it still works on my xeon E5 server. I'll add my Tested-by to the original patch. > > Are you fine with the fix? Forbidding such usage seems a little overkill to me actually. How about just making it as a warning like: "IOMMU only support 39-bit IOVA address, you might want to use --base-virtaddr to restrict the range of virtual address (IOVA)" Thanks, Jianfeng > > Thanks, > Maxime