[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH RFC v2] vPCI: account for hidden devices
- To: Jan Beulich <jbeulich@xxxxxxxx>
- From: Roger Pau Monné <roger.pau@xxxxxxxxxx>
- Date: Wed, 24 May 2023 17:56:55 +0200
- 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=qOuUxbvUgvn+5VOn2eOqg0nklFLGERDRMTjiWI5GnQc=; b=f+e8P04hOsLu1y4TkTZ80z7tFkK/hO8bCrSCnMGf2xAecz4Wk0jsZ1qoWZExmgJ0meTcDTgYlPrQpyIg2V5VYLol2P0De7i1bcKE8gcVZ/Sv82JGnB5kEuYs13bxE3UFufTRhf7ggr1R4Lm0DZuGamXrSJERaegJ+Hy7CBfoUF4vbbHtQ9Lft0DZMsu2bfNLuoNTsF9QHW4NT1x0bAygrb3up7Q8xfCpcx8TYQ+7YXDNKKpj9ED1huuV0jkfbiE2b6KH+Mv8SN+xhx7Tya5oVKuDnmlTJbALnfOdSMZLSvaZAQIjXMReNPOyZoU5PVSnus2CkauNRQ9gJiOHGUa0sQ==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SkY0LQSYXaehWiyvzyNqitoY3vltcjD6pFbFdTsM9BSfDuTtwvl6K0ZkfFONHJQkozhWy/fy8R/iBS/BhBRHkVGhWcWCnQ2BzRHOLRB7OxJJziyUdyRIcH/CNpr2aX6fokbG5yg0u4gqA3Hs1nKpPb4vqSmMoCoB9r66PlQzh+iV0BeFCvtDad9LgwEcSWUOkSuJwZy5zU1qK6oJqyToJP2BYHKDnU0bOgL6QFN2aYeRwbNOzZHwPnIZSd7JMSUBZHdotaLtfyPY84W5IDVFq1iD3oPtZd7m7CUEe0Ng8NABMDHXmZ3Bvl2fbk3+0umvPQpTOVl4TuUdKOX/eDpFSA==
- Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
- Cc: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>
- Delivery-date: Wed, 24 May 2023 15:57:22 +0000
- Ironport-data: A9a23:eJAIu6oQBMTDtJ+gyEqSb/fePC1eBmIyZBIvgKrLsJaIsI4StFCzt garIBmGPqqINDGjfNF1YI++9UIAvJLVmIBlHQFk/ys1FnwboJuZCYyVIHmrMnLJJKUvbq7FA +Y2MYCccZ9uHhcwgj/3b9ANeFEljfngqoLUUbKCYWYpA1c/Ek/NsDo788YhmIlknNOlNA2Ev NL2sqX3NUSsnjV5KQr40YrawP9UlKq04GtwUmAWP6gR5weDzSVNV/rzGInqR5fGatgMdgKFb 76rIIGRpgvx4xorA9W5pbf3GmVirmn6ZFXmZtJ+AsBOszAazsAA+v9T2Mk0MC+7vw6hjdFpo OihgLTrIesf0g8gr8xGO/VQO3kW0aSrY9YrK1Dn2SCY5xWun3cBX5yCpaz5VGEV0r8fPI1Ay RAXAAJTTiKY3c2k+Y+QeOgvpPkIcNPgZKpK7xmMzRmBZRonabbqZvyQoPN9gnI3jM0IGuvCb c0EbzYpdA7HfxBEJlYQDtQ5gfusgX78NTZfrTp5p4JuuzSVkFM3jemraYWLEjCJbZw9ckKwv GXJ8n6/GhgHHNee1SCE4jSngeqncSbTAdtKSuHpqqU66LGV7n4SKAcXc3afmvakiki1R4pbC hQZ5gN7+MDe82TuFLERRSaQonSJoxodUNp4CPAh5UeGza+8yxaUAC0IQyBMbPQitdQqXno62 1mRhdTrCDdz9rqPRhq17ayIpDm/PSwUK24qZiIeSwYBpd75r+kOYgnnS99iFOu5i4PzEDSpm TSS9nFh2fMUkNIB0Li98RbfmTWwq5PVTwkzoALKQmai6QA/b4mgD2C11WXmAT97BN7xZjG8U LIswqByMMhm4UmxqRGw
- Ironport-hdrordr: A9a23:QR9giq7oGffjTzRjSQPXwaKCI+orL9Y04lQ7vn2ZFiY5TiXIra qTdaogviMc6Ax/ZJjvo6HkBEClewKlyXcV2/hpAV7GZmXbUQSTTL2KgbGSoAEIXheOjdK1tp 0QD5SWaueAamSS5PySiGfYLz9j+qjgzEnBv5ai854Hd3APV0gP1XYaNu7NeXcGPjWuSKBJY6 a0145inX6NaH4XZsO0Cj0sWPXCncTCkNbLcAMLHBku7SiJlHeN5KThGxaV8x8CW3cXqI1Sul Ttokjc3OGOovu7whjT2yv66IlXosLozp9uFdGBkc8cLxTrk0KNaJ56U7OPkTgpqKWE6Uoskv PLvxA8Vv4Do0/5TyWQm1/AygPg2DEh5zvLzkKZu2LqpYjcSCghA8RMqIpFel+BgnBQ9e1U4e Zu5Sa0ppBXBRTPkGDU4MXJbQhjkg6RrWA5meAeonRDWc81aaNXr6YY4ERJea1wah7S2cQCKq 1DHcvc7PFZfRezaG3YhHBmxJiWUnE6Dn69Mzo/k/3Q9wITsGFyzkMeysBatGwH7ogBR55N4P mBGrh0lZlVJ/VmIp5VNaMke4+aG2bNSRXDPCa5OlL8DpwKPHrLttre/Kg13ue3Y5YFpaFC1K gpaGko9FLaRnieSfFnhPZwg1PwqSSGLHnQI/hlltZEUuaWfsuoDcWBIGpe4PdI7c9vR/EzYM zDSa6+M8WTUlcGJrw5oTEWe6MiXEX2A/dlzuoTahapnv/hDLHMm6jyTMvzTYCdYQrMHFmPSE c+YA==
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
On Wed, May 24, 2023 at 03:45:58PM +0200, Jan Beulich wrote:
> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -218,6 +218,7 @@ static int modify_bars(const struct pci_
> struct vpci_header *header = &pdev->vpci->header;
> struct rangeset *mem = rangeset_new(NULL, NULL, 0);
> struct pci_dev *tmp, *dev = NULL;
> + const struct domain *d;
> const struct vpci_msix *msix = pdev->vpci->msix;
> unsigned int i;
> int rc;
> @@ -285,9 +286,11 @@ static int modify_bars(const struct pci_
>
> /*
> * Check for overlaps with other BARs. Note that only BARs that are
> - * currently mapped (enabled) are checked for overlaps.
> + * currently mapped (enabled) are checked for overlaps. Note also that
> + * for Dom0 we also need to include hidden, i.e. DomXEN's, devices.
> */
> - for_each_pdev ( pdev->domain, tmp )
> +for ( d = pdev->domain; ; d = dom_xen ) {//todo
Looking at this again, I think this is slightly more complex, as during
runtime dom0 will get here with pdev->domain == hardware_domain OR
dom_xen, and hence you also need to account that devices that have
pdev->domain == dom_xen need to iterate over devices that belong to
the hardware_domain, ie:
for ( d = pdev->domain; ;
d = (pdev->domain == dom_xen) ? hardware_domain : dom_xen )
And we likely want to limit this to devices that belong to the
hardware_domain or to dom_xen (in preparation for vPCI being used for
domUs).
Thanks, Roger.
|