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

Re: [PATCH v3] vpci: Add resizable bar support


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: "Chen, Jiqian" <Jiqian.Chen@xxxxxxx>
  • Date: Tue, 17 Dec 2024 09:35:35 +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=arcselector10001; 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=WYu04RuHbmyfowJoJn4dLaNNZdmuTAGtDJ7f8WmEpRY=; b=yuoMOTDV8whUGfBawijOsw5mJZm6QrpxttV9QsIg5CPr+FEuRn/FGa6zInAPAt8W6ueUSDL2iAFg5Brf8zwExSezhFCKvsX6In3fzTs4U9RId4Cu6YtGPfULB08yUf3CIBs5H++XXsYHjFKC6DDk4YNE9PJyO0OkA3SHJBLE2mG/eZYCdo1pDl+SStEIxsUhed9AyndXefh4E/E26wmqu0YQ3LlDLZv9CAtqrovn+zFCgYF9kz0a5xppRph7hPrZyjvEtKMNcRo2aNx3D0UedsMKdrXzpgtjA+/HcCEFvCJo3xMaN5w26Y+8VYC/pPaxoKkkq06NMAx82mJ9Kv9GDA==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yANEByN02JMuuEiOgt+x7j8tzVlfmeeaI2Cl2HENnt71hwQa+p5QMeCNFNGo9DWADp5Qc8wCob6ebnWNflEbskIe0/Fdh4zvg8JlD0WTyAGbQIQ6KewS/EGPGuFl/+FIl9NlHhg+rgc6sHEJh9y7zlTeZpdeW0FBHcUcc5yetzyiNAQPZ8BY0sk6uYE1Q4ufTqg6oZC16Ejeifz5st6arkOSjhPFhPknwbOEbvjOyCyP+dkvW2I3LddQNTHkQnEA1ho6l+xWUD7dsGxFNR6DlPLqbeMoGsnlnyp5ME1/sofCdFGTKpnRn8lsfKUL3DSKbYxrezrGmWtr4BY9E5g+Aw==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com;
  • Cc: Roger Pau Monné <roger.pau@xxxxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, "Huang, Ray" <Ray.Huang@xxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, "Chen, Jiqian" <Jiqian.Chen@xxxxxxx>
  • Delivery-date: Tue, 17 Dec 2024 09:35:47 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHbTSHk/+a4JH45i0iSPkOFUem08bLov7+AgAHlKwD//4B7AIAAlB2A
  • Thread-topic: [PATCH v3] vpci: Add resizable bar support

On 2024/12/17 16:44, Jan Beulich wrote:
> On 17.12.2024 09:22, Chen, Jiqian wrote:
>> On 2024/12/16 19:24, Jan Beulich wrote:
>>> On 13.12.2024 06:42, Jiqian Chen wrote:
>>>> +static int cf_check init_rebar(struct pci_dev *pdev)
>>>> +{
>>>> +    uint32_t ctrl;
>>>> +    unsigned int rebar_offset, nbars;
>>>> +
>>>> +    rebar_offset = pci_find_ext_capability(pdev->sbdf, 
>>>> PCI_EXT_CAP_ID_REBAR);
>>>> +
>>>> +    if ( !rebar_offset )
>>>> +        return 0;
>>>> +
>>>> +    if ( !is_hardware_domain(pdev->domain) )
>>>> +    {
>>>> +        printk("ReBar is not supported for domUs\n");
>>>> +        return -EOPNOTSUPP;
>>>> +    }
>>>> +
>>>> +    ctrl = pci_conf_read32(pdev->sbdf, rebar_offset + PCI_REBAR_CTRL);
>>>> +    nbars = MASK_EXTR(ctrl, PCI_REBAR_CTRL_NBAR_MASK);
>>>> +
>>>> +    for ( unsigned int i = 0; i < nbars; i++, rebar_offset += 
>>>> PCI_REBAR_CTRL )
>>>
>>> PCI_REBAR_CTRL is an offset; it can't be used to bump rebar_offset here.
>>> That'll need a separate constant, even if both evaluate to 8.
>> I will add a new macro to represent the '8' in rebar.c
>> Maybe I can name it "PCI_REBAR_SINGLE_BAR_LEN" ?
> 
> Naming is a 2nd step only, I think (and no really suitable name comes to 
> mind).
> Before thinking of names, I think the approach of doing the accesses here 
> wants
> reconsidering. It isn't quite right to bump rebar_offset. When using 
> #define-s,
> I'd instead expect to first move _just_ past the capability header, and then
> use constants to get at capability and control registers. Alternatively, if we
> want to express everything relative to rebar_offset, I think we'd want
> 
> #define PCI_REBAR_CAP(n) (4 + 8 *(n))
> #define PCI_REBAR_CTRL(n) (8 + 8 *(n))
> 
> eliminating the need to alter rebar_offset (and hence disconnecting variable
> name from its purpose).
It sounds much better, thank you very much!

> 
> Jan

-- 
Best regards,
Jiqian Chen.

 


Rackspace

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