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

RE: Linux pin_user_pages_fast fails on Xen


  • To: "Stabellini, Stefano" <stefano.stabellini@xxxxxxx>
  • From: "NK, JESHWANTHKUMAR (JESHWANTH KUMAR)" <JESHWANTHKUMAR.NK@xxxxxxx>
  • Date: Wed, 14 Sep 2022 05:55:51 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=8hvt5w/5N7F1waSWEQjT0FDXkcIy0ZJfe/mRHfozCXc=; b=TFd+xdDsYvklve5fVugOw84/t+XrwW/t02syGmlutf3ZHPnoO155fqHVczA9o5zGU4zXU3CFs1XsXbGietwxCM+7a4D7qHjwbbxAXFLDeircmrGUKqHx36mvqWDgkh/opINA59vuRHprLDkK4n9iHQhETjZ3RxHZuY7UVVA5UuVj6tt8QZodCakI+UqGOj2QCZYQ4i2DD9Iwk2+mzE/hO5mcoFqhPRJe6OTRfPFD94gYHTknP/QraCGoLWHauBjBgOM9pOCb4QZVtTKi+Lus9AFxFEtQbThqTZ/4Up50/eWW3YvMyF8HnMZ73udjmaczxTKSDgaDHciIj7ZvM1w8oA==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=B1hd5NzTcH5votb7d4p9u27VB+RcWboZf2YORpTrwgfdpL1t5Z3AjJu2XsaLfXlmcB0zV2mWUR+eCOOtgt6BxemhjLvfI/M6Jl5t+TiJG9iQI9kk56MJf+tZcml88CEc42mbQqpoKvVNxtJ3CskqoUFTmN4zv6p2IOYNhycuR6t3jNaJi9CoX+Rxrco6n9rlnQLO04FAknuqGCSl/ee3gFQXRE5irKrerCAq8IHEpFk7TTMIFv21SUJxJBSXjSZSmeEmzcIG954SEx0NVPpxcWf0tmdZi5SGijf1owTc8Ay/vewzpMeUYmy6c0l9C3BIamEtUyMNlcHTCDb2gfAb3g==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com;
  • 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: Wed, 14 Sep 2022 05:56:18 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Msip_label_4342314e-0df4-4b58-84bf-38bed6170a0f_actionid: 420cdc04-f722-4214-aaf5-bc769e6bc339
  • Msip_label_4342314e-0df4-4b58-84bf-38bed6170a0f_contentbits: 0
  • Msip_label_4342314e-0df4-4b58-84bf-38bed6170a0f_enabled: true
  • Msip_label_4342314e-0df4-4b58-84bf-38bed6170a0f_method: Standard
  • Msip_label_4342314e-0df4-4b58-84bf-38bed6170a0f_name: General
  • Msip_label_4342314e-0df4-4b58-84bf-38bed6170a0f_setdate: 2022-09-14T05:55:48Z
  • Msip_label_4342314e-0df4-4b58-84bf-38bed6170a0f_siteid: 3dd8961f-e488-4e60-8e11-a82d994e183d
  • Msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2022-09-14T05:54:39Z; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Method=Standard; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Name=General; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=0f1e805e-0243-482c-8c24-1dd1e468d677; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=1
  • Thread-index: AQHYw/FtbHk6dXjix0qU8E4gYrQhY63WppaAgADmKYCAAIgNAIAEgvEAgABFGKCAAA00AIABH/CAgABrF7A=
  • Thread-topic: Linux pin_user_pages_fast fails on Xen

[AMD Official Use Only - General]

Hi Stefano,

Thanks for the suggestion,

>Do you know if it works if you remove VM_IO | VM_PFNMAP from privcmd_mmap?
>> Gave a try, looks like the DomU doesn't boot without these two flags.

Regards,
Jeshwanth

-----Original Message-----
From: Stefano Stabellini <stefano.stabellini@xxxxxxx> 
Sent: Wednesday, September 14, 2022 5:01 AM
To: NK, JESHWANTHKUMAR (JESHWANTH KUMAR) <JESHWANTHKUMAR.NK@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

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®.