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

Re: [PATCH v2 1/1] vpci: Add resizable bar support


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: "Chen, Jiqian" <Jiqian.Chen@xxxxxxx>
  • Date: Wed, 11 Dec 2024 06:18:09 +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=p3cuRtZVFKQZhbCSadEnodG3ElAzkN+6o38Q8YwXpJQ=; b=TaCZppcA1wUzwtEaeEZMdZmxCaEy/6bDIM3oyxwZG+uSI/9lelVdzzxiTGjxWEoWZ4npYpbfYAcz42icRP3W7BXAPhdYhDu0UAGIlN5k7m8iNTl7YvgYD2ksKRUc2Vjsrs+MLjJ1LKi0dOQTnOQCH7Fyg04guYiAQjdrTm5q2A9UPYfVKWK3KtZvjY1xhFrmsdwSLj8+K/edwvoc9EW8CNJ+UpkBbYpDd7zv0WA8TjzXQEE4GcSmpJdax1fCFSRGCWBS8t8zDYT4DwqUx0xIYQRyFrAOM2W4rmsFkBz/+FCW69VuZcoWlJ+qVtRvqMcW0HUEdvtUZeWjEYqwU3/GnA==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xLk616lIsirvVSDq6Erp3+h+mUd7VtYtcEF2mrjrID8OUQjDjva5Hz6t+q+ObMOxy51PbVodKVOvZNfmK3cRsqq5gHRmsE3y+mAkKQIT81WVJUOs+LZe6+oVmhg6umCHbXTrtGEx83iW3ooFvNH4Ae9kQdepJ4uxLuB28aiweApKlHiMm+UK87I/AxO4EmGK3UYhJwUF+AvkJciVV7jRt8iTzFvrCO7Xy1MO95nbYhS+XYltj7tp89QPl8O5f2PsPQ4Yqz70yDwUpx1wLGyepAtLzoK2is9f6C58qBKvTuPyCDc86sM5AW2M4JGBQ68RMBYOmDjypPIUf3dr8HVqVQ==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com;
  • Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, "Huang, Ray" <Ray.Huang@xxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, "Chen, Jiqian" <Jiqian.Chen@xxxxxxx>
  • Delivery-date: Wed, 11 Dec 2024 06:18:36 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHbRIDgGHZ3ofHO0UuqqXvn+EZCabLd/CGAgAGXh4D//4qBgIAAiieA//+hwICAAdt2gA==
  • Thread-topic: [PATCH v2 1/1] vpci: Add resizable bar support

On 2024/12/10 17:54, Jan Beulich wrote:
> On 10.12.2024 08:57, Chen, Jiqian wrote:
>> On 2024/12/10 15:17, Jan Beulich wrote:
>>> On 10.12.2024 08:07, Chen, Jiqian wrote:
>>>> On 2024/12/9 21:59, Jan Beulich wrote:
>>>>> On 02.12.2024 07:09, Jiqian Chen wrote: 
>>>>>> @@ -541,6 +542,16 @@
>>>>>>  #define  PCI_VNDR_HEADER_REV(x) (((x) >> 16) & 0xf)
>>>>>>  #define  PCI_VNDR_HEADER_LEN(x) (((x) >> 20) & 0xfff)
>>>>>>  
>>>>>> +/* Resizable BARs */
>>>>>> +#define PCI_REBAR_CAP           4       /* capability register */
>>>>>> +#define  PCI_REBAR_CAP_SIZES            0xFFFFFFF0  /* supported BAR 
>>>>>> sizes */
>>>>>
>>>>> Misra demands that this have a U suffix.
>>>> Do below PCI_REBAR_CTRL_BAR_IDX, PCI_REBAR_CTRL_NBAR_MASK and 
>>>> PCI_REBAR_CTRL_BAR_SIZE also need a U suffix?
>>>
>>> They may want to gain them for consistency, but they don't strictly need
>>> them. I wanted to say "See the rest of the file", but it looks like the
>>> file wasn't cleaned up yet Misra-wise.
>> Yes, I noticed that the rest of the file didn't add U suffix too.
>> So, I just need to add U suffixes for my new macros?
> 
> You only strictly need to add U to values with the top bit set.
Got it, thanks!

> 
>>>>>> +#define PCI_REBAR_CTRL          8       /* control register */
>>>>>> +#define  PCI_REBAR_CTRL_BAR_IDX 0x00000007  /* BAR index */
>>>>>> +#define  PCI_REBAR_CTRL_NBAR_MASK       0x000000E0  /* # of resizable 
>>>>>> BARs */
>>>>>> +#define  PCI_REBAR_CTRL_BAR_SIZE        0x00001F00  /* BAR size */
>>>>>> +#define  PCI_REBAR_CTRL_SIZE(v) \
>>>>>> +            (1UL << (MASK_EXTR(v, PCI_REBAR_CTRL_BAR_SIZE) + 20))
>>>>>
>>>>> The literal 20 (appearing here the 2nd time) also wants hiding behind a
>>>>> #define.
>>>> OK, will add " #define PCI_REBAR_SIZE_UNIT_BYTES_LEN 20" to replace above 
>>>> two '20' case.
>>>
>>> What is "UNIT_BYTES_LEN" there? There's nothing byte-ish here, I don't
>>> think, 20 is simply the shift bias.
>> It's a naming problem. What I want to express here is that the basic unit is 
>> 1MB, which is 2^20 of bytes.
>> Since the spec has the definition about the value of the bar size bits of 
>> register:
>> BAR Size - This is an encoded value.
>> 0    1 MB (2^20 bytes)
>> 1    2 MB (2^21 bytes)
>> 2    4 MB (2^22 bytes)
>> 3    8 MB (2^23 bytes)
>> …
>> 43   8 EB (2^63 bytes)
>> Do you have suggestion about this macro name?
> 
> PCI_REBAR_SIZE_BIAS? PCI_REBAR_SIZE_SHIFT_BIAS? PCI_REBAR_SIZE_SHIFT?
Will change to PCI_REBAR_SIZE_BIAS, thanks.

> 
> Jan

-- 
Best regards,
Jiqian Chen.

 


Rackspace

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