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

Re: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for guests


  • To: Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@xxxxxxxx>
  • Date: Wed, 3 Nov 2021 11:34:00 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.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=ZMopPCwnc5NGE3nVcoZUAqU3Y1+TbYJryHyGD3bgTww=; b=XNE1Gb1q6yrV03GlBnxRmYoO7cmq5oNojGNKwDqM6CiEH8POBlmqJdi8kBKisDTDZaocw5XyPn++N8GGLmLxzrlfzXVy83QKSKqkjY4inDO2kqyy87edVB0xIFg1LECsUEA6R1f0hfW+wVAlhWn6rKiBpQO194iNfkeT5dc2gS7yj74oHFZq9Jm2MJEmk9M10ewZa1RMkrPLpjOVl8FOFLejxG8AQFOP2pEGnulRAu/eqULW09w5Xwzw6XoZD62NbC3HnP+y7VZDJPpzuTFRu0hZ2jVxhqTGXaWveoj/upxOfit1++DUZlp1LfZlx7N8zX8R7w/RW8bLjT7Sr/cwhA==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aRofI4oO1RNH+PD7YWmqKv3R5H8Of+idVu+xcdf3UVn2hwBFj8Q6giF8zMa9OMKBy2qUHMB86GR9P2l7j6EyTax6ap97YXxddDKmJd7NsVC+2CE/4RLRT5bIe8/+jDD2MscemqLizfjt6akZszybdeqf+BbIw3JM4gauLaM3dsBNpzA4ILgNlJbjmLRUk34y0jlJbINxDhAUI3d5/YUwCBjX+5OkaB0vrx3i22wLFZ1uTGVO4/ARCHey+UgmRmB/2IDpugOksGVLwM0249gH3sn8Z3tqkXcUkAtT+mRBVA1ePAmCgKX7WkME8mL1lackIYk/ZfJnkY0nfWDdaKPPSw==
  • Cc: Jan Beulich <jbeulich@xxxxxxxx>, "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>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Rahul Singh <rahul.singh@xxxxxxx>, Oleksandr Andrushchenko <Oleksandr_Andrushchenko@xxxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>
  • Delivery-date: Wed, 03 Nov 2021 11:34:19 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHXtdAkq8Qmwxr3HUWTio8KWsEpvKvlQ6KAgAsHq4CAAAimAIAAIt2AgAAEUICAATmxAIAABTcAgAABvgCAAAHkAIAAAZSAgAAFc4CAAAmcgIAAAuiAgAAAg4CAAAbWgIAAAG8AgAAGzICAAAH5gA==
  • Thread-topic: [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for guests


On 03.11.21 13:26, Roger Pau Monné wrote:
> On Wed, Nov 03, 2021 at 11:02:37AM +0000, Oleksandr Andrushchenko wrote:
>>
>> On 03.11.21 13:01, Roger Pau Monné wrote:
>>> On Wed, Nov 03, 2021 at 10:36:36AM +0000, Oleksandr Andrushchenko wrote:
>>>> On 03.11.21 12:34, Jan Beulich wrote:
>>>>> On 03.11.2021 11:24, Oleksandr Andrushchenko wrote:
>>>>>> On 03.11.21 11:49, Jan Beulich wrote:
>>>>>>> Aiui you want to prevent the guest from clearing the bit if either
>>>>>>> MSI or MSI-X are in use. Symmetrically, when the guest enables MSI
>>>>>>> or MSI-X, you will want to force the bit set (which may well be in
>>>>>>> a separate, future patch).
>>>>>> static uint32_t emulate_cmd_reg(const struct pci_dev *pdev, uint32_t cmd)
>>>>>> {
>>>>>>         /* TODO: Add proper emulation for all bits of the command 
>>>>>> register. */
>>>>>>
>>>>>>         if ( (cmd & PCI_COMMAND_INTX_DISABLE) == 0 )
>>>>>>         {
>>>>>>             /* Guest wants to enable INTx. It can't be enabled if 
>>>>>> MSI/MSI-X enabled. */
>>>>>> #ifdef CONFIG_HAS_PCI_MSI
>>>>>>             if ( pdev->vpci->msi->enabled )
>>>>>>                 cmd |= PCI_COMMAND_INTX_DISABLE;
>>>>>> #endif
>>>>>>         }
>>>>>>
>>>>>>         return cmd;
>>>>>> }
>>>>>>
>>>>>> Is this what you mean?
>>>>> Something along these lines, yes. I'd omit the outer if() for clarity /
>>>>> brevity.
>>>> Sure, thank you!
>>>> @Roger are you ok with this approach?
>>> Sure, I would even do:
>>>
>>> #ifdef CONFIG_HAS_PCI_MSI
>>> if ( !(cmd & PCI_COMMAND_INTX_DISABLE) && pdev->vpci->msi->enabled )
>>> {
>>>       /* Guest wants to enable INTx. It can't be enabled if MSI/MSI-X 
>>> enabled. */
>>>       cmd |= PCI_COMMAND_INTX_DISABLE;
>>> }
>>> #endif
>>>
>>> There's no need for the outer check if there's no support for MSI.
>> Ok, sounds good!
>> Thank you both!!
> In fact you could even remove the check for !(cmd &
> PCI_COMMAND_INTX_DISABLE) and always set PCI_COMMAND_INTX_DISABLE if
> MSI is enabled, which I think is what Jan was pointing to in his
> previous reply.
Ok, I will
>
> Regards, Roger.
>

 


Rackspace

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