[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] xen/arm: fix gnttab_need_iommu_mapping

  • To: Julien Grall <julien@xxxxxxx>
  • From: Rahul Singh <Rahul.Singh@xxxxxxx>
  • Date: Mon, 8 Feb 2021 18:19:04 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UkXB6+yAzqlmMcIig7zwuWmEpB7pxu6engCf19nVC9Y=; b=kNrwFaTsZdFBJnN0EltAnZ14dosOkMIoNty0bj4Bmyu1WMdIz+fK6fE0BrprsolCLGkcQAIgDUE1jbghlzq4WtrX+XdHOSXltrra5pYIlhbxnI5VQTjSIJYlYWd7q7SKwGyGJNRxr8TGg9NLs4dw0pBshKP49qq32iJW8n0cDxmlvbM3MH8v4hFm4dUJUbHN8bo8+iuaNOOHWBUOo9sOp58NM9FVywv91V04RXNZb1PoIhwA2iQ7xl1VRd766j1xxyrVv28pgaHfjQYa6af545MFYnnblFswE0VNScIRbmm5f50c+Jd8+sjn0RLh4AWMpH00zglgdF4QzJKjl7DFag==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Z0EDkC7a5RkBLT1NtqDnWQIreSgwJ6mivuZEySCcBOoexhcxm7WQYOX9ua7UCD3t8k3huNBe8j/yVjEYV0fCbNjnYAcor/jav8xdk9QF5ch7yt0PF/61vp3uDEz1aMC+RW6uWkybgWLQAgu+zO4cTbkpuOyc/A+ABCkpxOPZqOsElGUDC2wG5FkNYOzFHWDCl1KC94swfD4wApEBv2uHCYi8IyMAv4f3HEfsqFteVpaq/lUzuTAk6B+5kQKBjf/3dnHwpCA0+wavdot1S5QUl8heosggPM9ZYQHTpTCZKmX+r+gpaW5CrE5BzSbVXQyjS1R1GPjONeO5AOLix9Ip0Q==
  • Authentication-results-original: xen.org; dkim=none (message not signed) header.d=none;xen.org; dmarc=none action=none header.from=arm.com;
  • Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx>, "lucmiccio@xxxxxxxxx" <lucmiccio@xxxxxxxxx>, xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Bertrand Marquis <Bertrand.Marquis@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>
  • Delivery-date: Mon, 08 Feb 2021 18:19:23 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Nodisclaimer: true
  • Original-authentication-results: xen.org; dkim=none (message not signed) header.d=none;xen.org; dmarc=none action=none header.from=arm.com;
  • Thread-index: AQHW/CCVIBhvrRIcEE2wSNDNMu6y5KpOkgeAgAABdICAAAIFgA==
  • Thread-topic: [PATCH] xen/arm: fix gnttab_need_iommu_mapping

Hello Julien,

> On 8 Feb 2021, at 6:11 pm, Julien Grall <julien@xxxxxxx> wrote:
> On 08/02/2021 18:06, Rahul Singh wrote:
>>> On 6 Feb 2021, at 12:38 am, Stefano Stabellini <sstabellini@xxxxxxxxxx> 
>>> wrote:
>>> Commit 91d4eca7add broke gnttab_need_iommu_mapping on ARM.
>>> The offending chunk is:
>>> #define gnttab_need_iommu_mapping(d)                    \
>>> -    (is_domain_direct_mapped(d) && need_iommu(d))
>>> +    (is_domain_direct_mapped(d) && need_iommu_pt_sync(d))
>>> On ARM we need gnttab_need_iommu_mapping to be true for dom0 when it is
>>> directly mapped, like the old check did, but the new check is always
>>> false.
>>> In fact, need_iommu_pt_sync is defined as dom_iommu(d)->need_sync and
>>> need_sync is set as:
>>>    if ( !is_hardware_domain(d) || iommu_hwdom_strict )
>>>        hd->need_sync = !iommu_use_hap_pt(d);
>>> iommu_hwdom_strict is actually supposed to be ignored on ARM, see the
>>> definition in docs/misc/xen-command-line.pandoc:
>>>    This option is hardwired to true for x86 PVH dom0's (as RAM belonging to
>>>    other domains in the system don't live in a compatible address space), 
>>> and
>>>    is ignored for ARM.
>>> But aside from that, the issue is that iommu_use_hap_pt(d) is true,
>>> hence, hd->need_sync is false, and gnttab_need_iommu_mapping(d) is false
>>> too.
>>> As a consequence, when using PV network from a domU on a system where
>>> IOMMU is on from Dom0, I get:
>>> (XEN) smmu: /smmu@fd800000: Unhandled context fault: fsr=0x402, 
>>> iova=0x8424cb148, fsynr=0xb0001, cb=0
>>> [   68.290307] macb ff0e0000.ethernet eth0: DMA bus error: HRESP not OK
>> I also observed the IOMMU fault when DOMU guest is created and great table 
>> is used when IOMMU is enabled. I fixed the error in different way but I am 
>> not sure if you also observing the same error. I submitted the patch to 
>> pci-passthrough integration branch. Please have a look once if that make 
>> sense.
> I belive this is the same error as Stefano has observed. However, your patch 
> will unfortunately not work if you have a system with a mix of protected and 
> non-protected DMA-capable devices.

Yes you are right thats what I though when I fixed the error but then I thought 
in different direction if IOMMU is enabled system wise every device should be 
protected by IOMMU. My understanding might be wrong.


> Cheers,
> -- 
> Julien Grall



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.