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

RE: Linux pin_user_pages_fast fails on Xen


  • To: "NK, JESHWANTHKUMAR (JESHWANTH KUMAR)" <JESHWANTHKUMAR.NK@xxxxxxx>
  • From: Stefano Stabellini <stefano.stabellini@xxxxxxx>
  • Date: Tue, 13 Sep 2022 16:31:21 -0700
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=oracle.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=QCPA0ryzlmb4HnFaXCJB1t+nX8fM+ivDm5BLBBIaYDI=; b=JB0xswc86nZDekwoiCM8dIqXCHrpK8+61XCAz2UOUeGSaPARD4mcI1RNtyt+HyBrVXXhPNMPyDfLxOzesiDDZ5wXTVRSORJkhzTfedjEhtiNkw4Fr7w21/gjTyJ4w9OtuJMjBTLd9caabhI2fz8E17TM3NBSHTDXCRXdepKXD8RFaJIeIjwpkrO5pI4nAzDMC8Pj0P5Z7Omoeu6uQar3qS1eKFl6ShNX5izjWxhfYykKfnOcyVpGDLND9Wpe8LY0+6wLIrV84rqM2pNV5wn3yw77etvHA1GJBpYzXB5TAHztgL91/95VpZ6i9TtEC1X1HfUyYTOI2Jb2h/iksam95w==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NHDuGO44ST1aD1iZ5Eyif8BG8RNk67h8Upg9hZH+zD6QDCxPxTY09DS1M8rDCpdWMdBHoE8cUXTGPkaPHMfbTjuYK+F3V/hB1J+i8MdPWm/bNYWfYOg9+zAIJ4/LY+IjOpHJTAmaGa4SrisuVnp4c8FzOm4xoFpXmkwx4EHHrqj8yvojNXA0HHOq+HxJKeAUCfcC1HAEr5eES1jpTNZBr9IyfKJdTVp9Bo51TNBmpuZaMpQL690me1UiRnmko3/DHhR2TIfnhYUHo1QElQd8dA8c4XkZP1JAC+ip0SfSj6YGJDL+D4KM5EOo6WcoKAo7guz8Rl6SCpW5UTpMcI5Aag==
  • Cc: "Stabellini, Stefano" <stefano.stabellini@xxxxxxx>, "boris.ostrovsky@xxxxxxxxxx" <boris.ostrovsky@xxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, "Rangasamy, Devaraj" <Devaraj.Rangasamy@xxxxxxx>, "Pandeshwara krishna, Mythri" <Mythri.Pandeshwarakrishna@xxxxxxx>, "SK, SivaSangeetha (Siva Sangeetha)" <SivaSangeetha.SK@xxxxxxx>, "Thomas, Rijo-john" <Rijo-john.Thomas@xxxxxxx>, "jgross@xxxxxxxx" <jgross@xxxxxxxx>
  • Delivery-date: Tue, 13 Sep 2022 23:31:38 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

The problem is that drivers/xen/privcmd.c:privcmd_mmap sets VM_IO |
VM_PFNMAP, and either flag would cause check_vma_flags to return
-EFAULT.

Do you know if it works if you remove VM_IO | VM_PFNMAP from
privcmd_mmap?

Juergen, do you think the flags are necessary and useful? Any
suggestions?


On Mon, 12 Sep 2022, NK, JESHWANTHKUMAR (JESHWANTH KUMAR) wrote:
> Missed to update the Flag details:
> 
> Flag for DMA Mapped VA - 0x0C0644BB
> Flag for Local VA        -  0x08100073
> 
> 
> VM_IO and VM_PFNMAP  - Set in DMA mapped VA but not in local VA.
> 
> Regards,
> Jeshwanth
> 
> -----Original Message-----
> From: NK, JESHWANTHKUMAR (JESHWANTH KUMAR) 
> Sent: Tuesday, September 13, 2022 11:05 AM
> To: 'Stefano Stabellini' <stefano.stabellini@xxxxxxx>
> Cc: Stabellini, Stefano <stefano.stabellini@xxxxxxx>; 
> boris.ostrovsky@xxxxxxxxxx; xen-devel@xxxxxxxxxxxxxxxxxxxx; Rangasamy, 
> Devaraj <Devaraj.Rangasamy@xxxxxxx>; Pandeshwara krishna, Mythri 
> <Mythri.Pandeshwarakrishna@xxxxxxx>; SK, SivaSangeetha (Siva Sangeetha) 
> <SivaSangeetha.SK@xxxxxxx>; Thomas, Rijo-john <Rijo-john.Thomas@xxxxxxx>; 
> jgross@xxxxxxxx
> Subject: RE: Linux pin_user_pages_fast fails on Xen
> 
> [AMD Official Use Only - General]
> 
> Hi Stefano,
> 
> https://elixir.bootlin.com/linux/v5.16/source/mm/gup.c#L975 is the -EFAULT 
> returning for our current use case.
> 
> access_ok is fine.
> 
> Regards,
> Jeshwanth
> 
> -----Original Message-----
> From: Stefano Stabellini <stefano.stabellini@xxxxxxx>
> Sent: Tuesday, September 13, 2022 6:56 AM
> To: NK, JESHWANTHKUMAR (JESHWANTH KUMAR) <JESHWANTHKUMAR.NK@xxxxxxx>
> Cc: Stabellini, Stefano <stefano.stabellini@xxxxxxx>; 
> boris.ostrovsky@xxxxxxxxxx; xen-devel@xxxxxxxxxxxxxxxxxxxx; NK, 
> JESHWANTHKUMAR (JESHWANTH KUMAR) <JESHWANTHKUMAR.NK@xxxxxxx>; Rangasamy, 
> Devaraj <Devaraj.Rangasamy@xxxxxxx>; Pandeshwara krishna, Mythri 
> <Mythri.Pandeshwarakrishna@xxxxxxx>; SK, SivaSangeetha (Siva Sangeetha) 
> <SivaSangeetha.SK@xxxxxxx>; Thomas, Rijo-john <Rijo-john.Thomas@xxxxxxx>; 
> jgross@xxxxxxxx
> Subject: Re: Linux pin_user_pages_fast fails on Xen
> 
> On Sat, 10 Sep 2022, Juergen Gross wrote:
> > On 09.09.22 22:25, Stefano Stabellini wrote:
> > > On Fri, 9 Sep 2022, Juergen Gross wrote:
> > > > On 09.09.22 04:11, Stefano Stabellini wrote:
> > > > > Adding more people in CC
> > > > > 
> > > > > On Thu, 8 Sep 2022, Stefano Stabellini wrote:
> > > > > > Hi Juergen,
> > > > > > 
> > > > > > A colleague is seeing a failure on x86 in Linux Dom0. The 
> > > > > > failure is pin_user_pages_fast with addresses that correspond 
> > > > > > to foreign memory
> > > > > > pages:
> > > > > > 
> > > > > > - QEMU maps a domU address using dma_memory_map
> > > > > > (xen_map_cache)
> > > > > > - QEMU calls an IOCTL to the TEE subsystem with the Virtual Address
> > > > > >     returned by dma_memory_map
> > > > > > - Linux tee_shm_register->pin_user_pages_fast Returns -14 - 
> > > > > > drivers/tee/tee_shm.c
> > > > > > 
> > > > > > Once upon a time it used to be the case that 
> > > > > > get_user_pages_fast would fail on Xen because we didn't have a 
> > > > > > struct page corresponding to foreign memory mappings. But that 
> > > > > > hasn't been the case for years now.
> > > > > > 
> > > > > > Any other ideas why it would fail?
> > > > 
> > > > I think we can expect that access_ok() isn't failing.
> > > > 
> > > > I assume the mapping was done allowing writes (sorry for paranoia mode)?
> > >   I was told it was verified: QEMU could read and write to the VA 
> > > returned by dma_memory_map. From /proc/<qemu-pid>/maps, the VA 
> > > assigned after the mapping is pointing to /dev/xen/privcmd.
> > > 
> > > 
> > > > Other than that I'm not having enough memory management skills. It 
> > > > might be related to mmap()-ed foreign pages having _PAGE_SPECIAL 
> > > > set, though.
> > > 
> > > Do we still set PAGE_SPECIAL for foreign mapped pages? It looks like 
> > > it is not there anymore? If PAGE_SPECIAL is not there, then they 
> > > really should look like regular pages?
> > 
> > See the call of pte_mkspecial() in remap_area_pfn_pte_fn() (mmu_pv.c).
> 
> The kernel version is 5.16 and the return code is -EFAULT. Is it the 
> following -EFAULT the one that triggers?
> 
> mm/gup.c:internal_get_user_pages_fast:
> 
>       if (unlikely(!access_ok((void __user *)start, len)))
>               return -EFAULT;
> 



 


Rackspace

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