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

Re: PIRQ handling and PVH dom0?


  • To: Alex Olson <this.is.a0lson@xxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>
  • Date: Wed, 2 Mar 2022 17:49:14 +0000
  • Accept-language: en-GB, en-US
  • 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=jV+HGttWRMg/h9om4MtM6jMgMtGYDbiSm1WHHdoSZ5E=; b=Ghkx1yYj2RHQpLvU+Cl1SyF9AsJW2ZnMWBHTjfo1cBsK85PLJLV+AK1emB+p2DorGC5pBCd9DL1xzwrbiEg7FAK0PAKoqTikd1Yq0Sp92zIqe8AMGK7854PPYFxxck0OFEv/J4jUV1B/FkSzAsGrD0oegSliUKz/vllY1xMmX65QUXf7LL1awyTfrkonRt1JPA2KbhEMYC4STpbxyNmdz+FQNC7+TOURJ2HbbNsNsigWc2Vviq4xClt0Rqe4xOhlyATyiaMW64Q2wmZ3Zt+zmxSNk0OyCI0fpuL0Dc1PCydcu/zYEvouFcxjgFX0T/Xc3N2y6sbKTKTMXzxj8JkFsQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BxWHlRa4/0ZxsI2LKm/aSXIPLjtfc9m/FG7Xu8YxFJw1MqgIkf4FN2X8zBBk/NAerPqSBIrKhI2C6zdb3SzS65wqNj4K7op4F3WqVV0NbiS3k3pIBZRkgKg9rxVCxErCrUqaiP8syU6iIQHdzrw2efNAzfv/k15Z23bJA19Su12zvdltt4IdphjmomHoi634NY+WgjEYc8an4VmGC2+BFt8n0tOwVc9bhpUPxK3PNlh/hH6ZUFgt76XGoGY5ibQPB/sIcqa5l7SUGJt5ee2EJh4/uqXkixPjCutJCdZcD45GpqCFvhxgWcMA+Zay/kUDTos8sXnZ3IS4ND3Us3OJeA==
  • Authentication-results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
  • Cc: Roger Pau Monne <roger.pau@xxxxxxxxxx>
  • Delivery-date: Wed, 02 Mar 2022 17:49:53 +0000
  • Ironport-data: A9a23:NRy+MauTIJm4bto1RnNrUb8PDufnVEBeMUV32f8akzHdYApBsoF/q tZmKTzQM62OYmSgLt9/OYq38x4Hv8DTzd9lTFY5qiFjRnlB+JbJXdiXEBz9bniYRiHhoOOLz Cm8hv3odp1coqr0/0/1WlTZhSAgk/nOHNIQMcacUsxLbVYMpBwJ1FQyw4bVvqYy2YLjW1jV4 4upyyHiEATNNwBcYzp8B52r8HuDjNyq0N/PlgVjDRzjlAa2e0g9VPrzF4noR5fLatA88tqBb /TC1NmEElbxpH/BPD8HfoHTKSXmSpaKVeSHZ+E/t6KK2nCurQRquko32WZ1he66RFxlkvgoo Oihu6BcRi8HMZTLuMQ2fSV4KCBkep8bypGeGT+g5Jn7I03uKxMAwt1rBUAye4YZ5vx2ESdF8 vlwxDIlN07ZwbjsmfTiF7cq1p9LwMrDZevzvllJyz3DAOlgapfEW6jQvvdT3Ssqh9AIFvHbD yYcQWQyM0+ZP0UWUrsRIIwRk+uKp3XiSCxFklTLq4E86mXv5QMkhdABN/KKI4fXFK25hH2wt m/Aumj0HBweHNie0iaetGKhgPfVmiH2U55UE6e3ntZ2gFyIgG0IThROUUC8p9G2j0e/X5RUL El8x8Y1hfFsrgrxFIC7BkDm5i7f1vIBZzZOO8M10Qat6oH63yaiB3JDfGNzRoUe89BjEFTGy WS1t9/uADVutpicRnSc6qqYoFuOBMQFEYMRTXRaFFVYurEPtKl210uSFYg7TMZZm/WoQWmY/ tyckMQpa1z/Z+Yv3r7zw13IiinESnPhHl9svVW/so5IA2pEiG+Zi26AtACzARVodt/xory9U J4swZL2AAcmV8zlqcB1aL9RdIxFHt7cWNEmvXZhHoM66xOm8GO5cIZb7VlWfRk1bJ9aIWe4P haC42u9AaO/2lPwN8ebhKrrVqwXIVXIT4y5Bpg4kPIUCnSOSON31H43PhPBt4wcuEMtjbs+K f+mnTWEVh4n5VBc5GPuHY81iOZzrghnnD+7bc2rnnyPjOvFDFbIGOhtDbd7Rr1ghE9yiF6Oq Ig32grj40g3bdASlQGMqd9DdQ1RdCNjbX00wuQOHtO+zsNdMDhJI9fawK87epwjmKJQl+zS+ Wq6VFMew1367UAr4y3VApy/QNsDhapCkE8=
  • Ironport-hdrordr: A9a23:Det6j6vM5lwIRdFCyHMEVZ5O7skC1oMji2hC6mlwRA09TyXGra 6TdaUguiMc1gx8ZJh5o6H9BEGBKUmskaKceeEqTPmftXrdyRSVxeZZnMrfKlzbamLDH4tmtJ uIHJIOcOEYYWIK7/oSpTPIburIo+P3sJxA592utEuFJDsCA8oLgmcJaTpzUHcGPjWubaBJTq Z0jfA3wAZIDE5nF/hTcUN1OdQryee78a7OUFojPVoK+QOOhTSn5PrRCB6DxCoTVDtJ3PML7X XFuxaR3NThj9iLjjvnk0PD5ZVfn9XsjvFZAtaXt8QTIjLwzi61eYVaXaGYtjxdmpDs1L9qqq iIn/4TBbU115rjRBDynfIr4Xi47N8a0Q6n9bZfuwq6nSW2fkNgNyMLv/MmTvKQ0TtQgDg76t MX44vRjeslMfuL9h6Nl+TgRlVkkFG5rmEllvNWh3tDUZEGYLsUtoAH+lhJea1wVh4SxbpXWN WGNvusr8q+sGnqGEzxry1q2pihT34zFhCJTgwLvdGUySFfmDR8w1EDzMISk38c/NZlIqM0q9 jsI+BtjvVDX8UWZaVyCKMIRta2EHXERVbJPHiJKVrqGakbMzbGqoLx4r8y+Oa2EaZ4gacaid DEShdVpGQyc0XhBYmH24BK6AnERCGnUTHk2qhlltFEU33HNczW2AG4OSUTepGb0oci6+XgKo KOBK4=
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHYLlrY/dua2GHNF0yeezsM7bCSAKysXvKA
  • Thread-topic: PIRQ handling and PVH dom0?

On 02/03/2022 17:27, Alex Olson wrote:
> I further attempted to see how far PVH dom0 can get but had a general 
> question regarding what is not yet implemented... 
>
> With an initial version of Roger's recent "vpci/msix: fix PBA access" patches 
> and after refreshing his earlier 2018 patchset "vpci: add support for SR-IOV 
> capability" regarding SR-IOV support for PVH dom0, I was able to get both 
> physical functions and virtual functions of an SR-IOV network card to operate 
> correctly in PVH dom0.
>
> However, it looks like any PCI-passthrough for HVM domUs with PVH dom0 is not 
> yet implemented. I see the "PHYSDEVOP_map_pirq" call fails since the 
> "emulation_flags" for dom0 do not include "XEN_X86_EMU_USE_PIRQ"...
>
>       libxl: error: libxl_pci.c:1461:pci_add_dm_done: Domain 
> 1:xc_physdev_map_pirq irq=17 (error=-1): Function not implemented             
>                                                                               
>                                                                               
>                                                                               
>                                                   
>       libxl: error: libxl_pci.c:1781:device_pci_add_done: Domain 
> 1:libxl__device_pci_add failed for PCI device 0:5:0.1 (rc -3)                 
>                                                                               
>                                                                               
>                                                                               
>                                               
>       libxl: error: libxl_create.c:1895:domcreate_attach_devices: Domain 
> 1:unable to add pci devices                                              
>
>
> What is PVH dom0 missing at a conceptual level for PCI passthrough to domUs?  
> I naively assumed that an HVM domU guest wouldn't care much whether dom0 was 
> PV or PVH in terms of passthrough device IRQ handling...
>
> Thanks

Hmm.  xen/arch/x86/hvm/hypercall.c hvm_physdev_op() filters map/unmap
pirq based on currd.

But this is buggy.  It should read the physdev_map_pirq_t parameter and
look at the domid parameter.  What qemu here is doing is trying to map a
pirq on behalf of the target domain, not on behalf of dom0.

~Andrew

 


Rackspace

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