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

Re: [PATCH v5 07/14] vpci/header: handle p2m range sets per BAR


  • To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@xxxxxxxx>
  • From: Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • Date: Wed, 2 Feb 2022 10:56:41 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; 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=Up3aWVFT11Jy+6A9UtW39ucH1Hrxvt0rVS1nPyaag3Q=; b=DfoC9CsqA7m1hschcSc/Vt9pw4OCzjSMi5Dwum4BIt73atpNJYmBtLLrI6O7oN2i3XQBFrwa9cPrZ8mGI/aywU4r9rwvc6RxRGUWRgcjNcgSPZUpbiYSkEH7ze1s62zhywse96yoweuaoXw2+Ew7x+Pbi7Ka25CndDMwmEqaD2cNDBX/VEog63ByLuXjlk3eNCio0nCYnGIIAuRJLNBw7PVSUlXb0CW5YWd3iVG+FHhjaXvvU+QlAgLb0KsO2y/sfQ0x7FNFwu6ZxNdjzJXbf6is+hXXDAEprwZh5StbjvBYNzK58xT7cQu3FIw4HOeP2CqSEs2or0UFFYImQsWXxg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GEulqdUaSaTjz1xSCp85JJYRIQByJo6BmA0nJbtOkCbq1277XGkOwoa4fRcvp116SNbt3Rcx39eeKdivlzIoSk2Y5ABgUhwPSH7t1o4Cyk0YvH/6m7Iz9JjoBQV3n1GLKxyLqxKEukdS6tqL0XXIxbC64cKjkAWuUxbXSHC6E5EJt4FvhxO7uvHHpaWORMt9uULRlcewKfWx3h64AqtFDmraVGyG73xo+BdB606PQQiLG2QO2F6q3m4tyPxcIZQ/VBNM5eMMmfp4Qi8lFkDxrflBZSgTYx21/vAkKpHN81yVcm7kmtNDiEpMjXrwy8t0X1Y/Cj8tAfFcSzNvrtPJ8g==
  • Authentication-results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
  • Cc: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, "julien@xxxxxxx" <julien@xxxxxxx>, "sstabellini@xxxxxxxxxx" <sstabellini@xxxxxxxxxx>, Oleksandr Tyshchenko <Oleksandr_Tyshchenko@xxxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Artem Mygaiev <Artem_Mygaiev@xxxxxxxx>, "jbeulich@xxxxxxxx" <jbeulich@xxxxxxxx>, "andrew.cooper3@xxxxxxxxxx" <andrew.cooper3@xxxxxxxxxx>, "george.dunlap@xxxxxxxxxx" <george.dunlap@xxxxxxxxxx>, "paul@xxxxxxx" <paul@xxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Rahul Singh <rahul.singh@xxxxxxx>
  • Delivery-date: Wed, 02 Feb 2022 09:57:02 +0000
  • Ironport-data: A9a23:Ehl+c6t/mP+AozK4Y//yrjLTGufnVHZYMUV32f8akzHdYApBsoF/q tZmKWqHPvaMZGH1KYx2OY3ip04Ou8Dcm4NqTAY4+HxjF34R+JbJXdiXEBz9bniYRiHhoOOLz Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHdJZS5LwbZj2NYy2YLhWmthh PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ NplsL6AET8XEfDwl/UEUBJ9DB4vZfZn0eqSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DJoQQt2sm1TjEJf0nXYrCU+PB4towMDIY2JsRRK6PN 5JxhTxHQjLYfRlLZ2wsJJcXpNeN3VfCcwUFgQfAzUYwyzeKl1EguFT3C/LXcNGXQcRenm6Du 3nLuW/+B3kyHcaDxD+y12Ojj+7Cgwv2QIsXUra/85ZCmFSOwkQDBRtQUkG0ydGjg06jX5REK kob+gInt610/0uuJvH3UgekuneCslgZUsBJDuwhwAiXz+zf5APxLlYDSjlNedk3rvgcTDYh1 kKKt97xDDkpu7qQIVqN+7HRoT6sNCw9KW4ZeTRCXQYD+8Pkoow4klTIVNkLOImxg97uEDf82 QejqiQkmq4Ths4G0aa81V3fijfqrZ/MJiY3+wHWU2SN/g5/Iom/aOSAzlzW7u1JKoqDeWWQp 3gPm8WY7+cmAImEkWqGR+BlNKqy+/+PPTnYgFhuN5os7TKg/zikZ4843d1lDB43aIBeI2avO RKN/1MKjHNOAJe0RapVU9qJNet38afxDNfuc+/rP4IVQ7EkIWdr4xpSTUKX2mnslm0lnqc+J YqXfK6QMJoKNUh05GHoHrlAiNfH0gh7nDqOHs6jk3xLxJLDPCb9dFsTDLeZggnVBougqR6dz dtQPtDiJ/53ALynOXm/HWL+wDk3wZkH6XLe950/mg2reFMO9IQd5xj5mutJRmCdt/4J/tokB 1nkMqOi9HLxhGfcNSKBYW15ZbXkUP5X9CxnZnNwZAf5hiF9Me5DCZvzkLNsJdEaGBFLl6YoH 5Hphe3cahiwdtg302tENsSsxGCTXB+qmRiPL0KYjMsXJPZdq/jy0oa8JGPHrXBWZgLu7JdWi +D+imvzHMRSLyw/XJe+QK/+lDuZ4ClC8N+eqmOVeLG/jm22rtgzQ8Ew59dqS/wxxeLrnWrHj lvGXEtD+IEgYeYdqbH0uExNlK/we8NWFUtGBWjLq7GwMCjR5G24xoFcFu2PeFjguKncos1Ov M1ZkKPxNuMphlFPv9YuGrpn1/tmtdDuu6Vb3kJvG3CSNwanDbZpI3+n28hTt/ISmu8F6FXuA k/fqMNHPbipOd/+FAJDLgQSceneh+ofnSPf7KppLRyitjN35reOTW5bIwKI1H5GNLJwPY58m bUhtcca5haRkB0vNtra3ClY+37Vdi4LUrk9t4FcC4ju01J5xlZHaJ3aKyn3/JDQNIkcbhh0e meZ3fOQia5dy0zOd2sIOULMhecN144TvB1qzUMZIwjbkNTymfJqjgZa9i46T1oJw0wfgf5zI GViK2Z8Ob6Ko2VznMFGUm2hR1NBCRme9hCjwlcFjjSEHUyhV2iLJ2whI+edukse9jsELDRc+ biZzkfjUCrrI56tjndjBxY9pqyxV8F1+y3DhNujTpaMEJQNaDb4hrOjODgToBz9DMJt3EDKq IGGJgqrhXEX4cLIn5AGNg==
  • Ironport-hdrordr: A9a23:wM/+/qht/gdl+YXshJbR1TzYlXBQX0J13DAbv31ZSRFFG/FwyP rAoB1L73PJYWgqNU3I+ergBEGBKUmskqKdxbNhR4tKOzOWxVdATbsSlrcKpgePJ8SQzJ8+6U 4NSdkaNDS0NykHsS+Y2njILz9D+qj/zEnAv463pB0MPGJXguNbnn9E426gYzNLrWJ9dPwE/f Snl656T23KQwVpUi33PAhPY8Hz4/nw0L72ax8PABAqrCGIkDOT8bb/VzyVxA0XXT9jyaortT GtqX212oyT99WAjjPM3W7a6Jpb3PPn19t4HcSJzuwYMC/lhAqEbJloH5eCoDc2iuey70tCqq iHnz4Qe+BIr1/BdGC8phXgnyHmzTYV8nfnjWSVhHPyyPaJMg4SOo5kv8Z0YxHZ400vsJVXy6 RQxV+UsJJREFfpgDn9z8KgbWAlqmOE5V4Z1cIDhX1WVoUTLJVLq5YEwU9TGJAcWArn9YEcFv V0Bs203ocYTbqjVQGYgoBT+q3uYpxqdS32AHTq+/blnwS+pUoJjnfxn6ck7zI9HJFUcegy2w 2LCNUtqFh0dL5kUUtKPpZ0fSKGMB28ffvyChPhHb3GLtBPB5ufke++3F0KjNvaDaDgiqFC36 j8bA==
  • Ironport-sdr: cK9s+8wVzQB4yNCjkQTu+DYRabqvepeJ6S85EImQ2VmHk8xTFG1L1GBpccM/Udhx712pP5xAOc CI9E0gEF13zNjRtaMT1tdnLvKr32INYjoiPkSOelsn+xZ5MSVmGQzTBjNepXEUuGlEuVht7KLV 4XPiEh7Y+BjwgyaVI99Zq0rbEN+SK3yGonWWZwTyNUCcR1xadZ3tIC4ykxFuKdVLIWNO8hjX1i yYJpvlGmdmHviNtUELGrU8xymHcbXPzT1UYkahqzRdMafkziSGQ+U4lMRKrBJDx2tfKr9lediM 9X7IFnra/opdLyfGNykeA51I
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On Wed, Feb 02, 2022 at 06:44:41AM +0000, Oleksandr Andrushchenko wrote:
> Hi, Roger!
> 
> On 12.01.22 17:15, Roger Pau Monné wrote:
> > On Thu, Nov 25, 2021 at 01:02:44PM +0200, Oleksandr Andrushchenko wrote:
> >> @@ -108,11 +115,32 @@ int vpci_add_handlers(struct pci_dev *pdev)
> >>       pdev->vpci = vpci;
> >>       INIT_LIST_HEAD(&pdev->vpci->handlers);
> >>   
> >> +    header = &pdev->vpci->header;
> >> +    for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
> >> +    {
> >> +        struct vpci_bar *bar = &header->bars[i];
> >> +        char str[32];
> >> +
> >> +        snprintf(str, sizeof(str), "%pp:BAR%d", &pdev->sbdf, i);
> >> +        bar->mem = rangeset_new(pdev->domain, str, RANGESETF_no_print);
> >> +        if ( !bar->mem )
> >> +        {
> >> +            rc = -ENOMEM;
> >> +            goto fail;
> >> +        }
> >> +    }
> > You just need the ranges for the VPCI_BAR_MEM32, VPCI_BAR_MEM64_LO and
> > VPCI_BAR_ROM BAR types (see the MAPPABLE_BAR macro). Would it be
> > possible to only allocate the rangeset for those BAR types?
> I guess so
> > Also this should be done in init_bars rather than here, as you would
> > know the BAR types.
> So, if we allocate these in init_bars so where are they destroyed then?
> I think this should be vpci_remove_device and from this POV it would
> be good to keep alloc/free code close to each other, e.g.
> vpci_add_handlers/vpci_remove_device in the same file

The alloc/free is asymmetric already, as vpci->{msix,msi} gets
allocated in init_msi{x} but freed at vpci_remove_device.

Thanks, Roger.



 


Rackspace

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