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

Re: [PATCH 3/6] VT-d: don't leak domid mapping on error path


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • Date: Fri, 12 Nov 2021 15:35:34 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.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=b0bzl3Qa7MhO23SqKi3jN9f4lzmHAWw3lTDuxg0RuoE=; b=QTvKJWajtYoQk52WEnYyk0ujf281uJh06pwJiKhC7Y4ab6hYs6/RC7UXBDahbJkhau+owCP3GWgd3NQL1TnduwYcAE1Yj1uHCNuTnyrgJCPbQsxERc4srPDgZpQUldnqZDOhIuatncWStlB8eqQfzkcpM9y+OBx+NveSIMBk/YTibQ4LPyHI3hgNXDl2k1j6P5P5EnjHVg6Vd6F8I1qD0LOvlkzrVrdBXGvguORL1qTAJadZ/owbn4a29yAkpUoCFnSFRt8TonQNRAr1UeOT4AOwcCGGKEFowwuoLx/Et9ZeKpw4YjUHzSECJ66jPFf3melJ4ywpUk3MjMDHK/UFxg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=els3Vky/lXho2/I5HHdAh+PlkGkAqe8v6Sr7uxrMPlnpnmRCZhNzXGs7UlfaJZ1bkLbqcA2xeA6itNqg+WGGLRAf9ScygJm/n19TDW7iqhMGalCDvuc7p0HXQ4DDJFCAHd1PXOddoq4qm0FiCKLtWYsL1wQFQJ2BuoGVZAG93uXJ+JVwk+iKzt2UdNe0FqqDbRGt4NI6Mh2Xn9IqOqHmgYhXUVo74nwDP/ma6wgja27i7ekjCqwgsEJ/8ySVNRBge6X/CNMF7aWePywry9fH3SOD9b4FSUErW0QiGCJd+xFWsMVaDP9E4DK9NyOC46XarlPb2yj6PzkJUg111fRcKA==
  • Authentication-results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
  • Cc: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Kevin Tian <kevin.tian@xxxxxxxxx>
  • Delivery-date: Fri, 12 Nov 2021 14:36:02 +0000
  • Ironport-data: A9a23:dVfNHaubGhzg3K1mf6s2g0o/aufnVLdZMUV32f8akzHdYApBsoF/q tZmKWCOOKuIYGPwKYp0Poq0/R4D6MLWm4diSwFl+ChkRXtE+JbJXdiXEBz9bniYRiHhoOOLz Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHhJZS5LwbZj29cx2ILhWWthh PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ Npl5aG2EDgIOP32uP0zdAt3Hn55ZIwa0eqSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DJoQQt2sm1TjEJf0nXYrCU+PB4towMDIY258RRKqDO pVxhTxHXBH+akxrIFMuWK0anMWsuHTfX2FlkQfAzUYwyzeKl1EguFT3C/LWd8KLQ4NJn0+ej mPA42n9RBodMbS32TeDt36hmOLLtSf6Q54JUq218OZwh1+ezXBVDwcZPXO5q/Skjk+1W/pEN lcZvCEpqMAPGFeDF4enGUfi+Tjd40BaC4E4//AGBB+lmpfSujm4ADg+bidvT84JuZAxHB12/ wrc9z/2PgBHvLqQQHOb076bqzKuJCQYRVM/iT84oRgtuIe6/txq5v7bZpM6SfPu0IWpcd3l6 2nS9HBWulkFsSIcO0xXF3jjiinkmJXGRxVdCu7/DjP8tVMRiGJIiuWVBbnnARRocNnxorqp5 iFsdy2iAAYmV8zleMulGrVlIV1Rz6zZWAAweHY2d3Xbyxyj+mS4Yadb6yxkKUFiP64sIGGyP hGO51kKv84OZhNGiJObharrVqzGKoC6RbzYug38NIISMvCdiifblM2RWaJg9z+0yxV9+U3OE ZyabdytHR4n5VdPl1KLqxMm+eZznEgWnDqLLbiilkjP+efONRa9FOZeWHPTP79R0U9xiFiMm zqpH5DRkEs3vSyXSnS/zLP/2nhWdyVmXs6v9JQMHgNBSyI/cFwc5zbq6epJU6RunrhPl/eO+ Xe4W0RCz0H4i2GBIgKPAk2Popu2NXqmhX5kbyEqI3iy3H0vPdSm4KsFLsNldrg77u1zi/VzS qBdKcmHB/1OTBXB+igcMsah/NAzKkzziFLcJTehbRg+Y4VkG17D9Oj7c1a97yIJFCe265cz+ uXyygPBTJMfbA1+F8KKOum3xla8sCFFyuJ/VkfFOPdJf0Do/NQ4IiD9lKZvccoNNQ/C1n2R0 APPWUUUouzEookU9tjVhP/b89f1QrUmRkcDRjvV97e7MyXe71GP+44YXbbaZy3ZWUP15L6mO bdfwcbjPaBVh11NqYd9TepmlPps+9v1qrZG5Q14B3GXPU+zA7ZtL3Taj8lCsqpBmu1QtQesA x/d/9BbPfOCOd//EU5XLw0gN7zR2fYRkzjUzPI0PESlu3MnoOvZCR1fb0uWlShQDLppK4d0k +4utfkf5xG7lhd3YM2NiTpZ9jjUI3ENO0n9Wkr23GM/ZtIX92x/
  • Ironport-hdrordr: A9a23:demt/q6o6wTgXr4H+APXwVmBI+orL9Y04lQ7vn2ZFiY7TiXIra yTdaoguCMc6AxxZJkh8erwX5VoZUmsj6KdhrNhQItKPTOWw1dASbsN0WKM+UyDJ8STzJ856U 4kSdkDNDSSNykKsS+Z2njALz9I+rDum8rJ9ISuv0uFDzsaE52Ihz0JdDpzeXcGIjWua6BJcK Z1saF81kWdkDksH4mG7j5vZZm2m/T70LbdJTIWDR8u7weDyRuu9b7BChCdmjMTSSlGz7sO+X XM11WR3NTtj9iLjjvnk0PD5ZVfn9XsjvNFGcy3k8AQbhHhkByhaohNU6CL+Bo1vOaswlA3l8 SkmWZtA+1Dr1fqOk2lqxrk3AftlB4o9n/Z0FedxUDupMToLQhKQ/ZptMZ8SF/0+kAgtNZz3O ZgxGSCradaChvGgWDU+8XIfwsCrDv1nVMS1cooy1BPW4oXb7Fc6aYF+llOLZsGFCXmrKg6De hVCt3G7vo+SyLaU5nghBgs/DWQZAV3Iv/fKXJy/vB9kgIm0kyR9nFoh/D2xRw7hdUAo5ot3Z WMDk0nrsAJciYsV9MOOA42e7rANoX8e2O+DIusGyWTKEgmAQOHl3el2sR+2AmVEKZ4u6fa3q 6xCW9liQ==
  • Ironport-sdr: LL4Xjlm3zi9E2zPopdqTFN2d1IW82PinG/Vr+Z60pysarJb3QtBKJYRjzyqZwRAa+DWdrcA8wR qqoMsHT+6AP/+03w1nD73QtMW5lbrCHAwE8I1nGe4VXebjp+5R2BBeZnqQuuEqNFB3nssVoW2G djF8+CsCIJ8KrTQ16hXQ4QJqrk1ObeDHsz5DIucs5KIYGPERtg8bctPj79nFaMdjePCBOgRCsv lqYs4c1cHLAX0PCjlvL5NUpi2pN9UnLPIENfvs9EMESKO96eECC8cMhSN6a7o0gw/9+r89siqM WX4Mx47mvF9T4RmyXZv5TGTa
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On Fri, Nov 12, 2021 at 02:45:14PM +0100, Jan Beulich wrote:
> On 12.11.2021 14:42, Roger Pau Monné wrote:
> > On Fri, Nov 12, 2021 at 10:48:43AM +0100, Jan Beulich wrote:
> >> While domain_context_mapping() invokes domain_context_unmap() in a sub-
> >> case of handling DEV_TYPE_PCI when encountering an error, thus avoiding
> >> a leak, individual calls to domain_context_mapping_one() aren't
> >> similarly covered. Such a leak might persist until domain destruction.
> >> Leverage that these cases can be recognized by pdev being non-NULL.
> > 
> > Would it help to place the domid cleanup in domain_context_unmap_one,
> > as that would then cover calls from domain_context_unmap and the
> > failure path in domain_context_mapping_one.
> 
> I don't think that would work (without further convolution), because of
> the up to 3 successive calls in DEV_TYPE_PCI handling. Cleanup may happen
> only on the first map's error path or after the last unmap.

Hm, I see. And AFAICT that's because some devices that get assigned to
a guest iommu context are not actually assigned to the guest (ie:
pdev->domain doesn't get set, neither the device is added to the
per-domain list), which makes them invisible to
any_pdev_behind_iommu.

I dislike that the domid is added in domain_context_mapping_one, while
the cleanup is not done in domain_context_unmap_one, and that some
devices context could be using the domain id without being assigned to
the domain.

Thanks, Roger.



 


Rackspace

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