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

Re: [PATCH v6 2/3] xen/arm: Enable the existing x86 virtual PCI support for ARM.


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Bertrand Marquis <Bertrand.Marquis@xxxxxxx>
  • Date: Fri, 15 Oct 2021 10:48:41 +0000
  • Accept-language: en-GB, en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.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=5k/MxR6zlKA0Y4QlMCek+MtrBmbslaomLUm1a9BGVmE=; b=XV5wqfXFf2EF37HJYfr02AIRLobDjhxfcGPqr3mUEY6oaqRCG8xVUzLYWTQRmS421hxleK8+0V3n4lVuC716NpG+3V3p/uzAWKri2HFFbcUo8YB36UtuWZTWW7mR5E22OYycgSGLopzyK0Q+CKzbjzUW55agUMjgGUUWodmqEAL8jMvk68noU2xtpyguJLyngCaR7Lnqw+JbvfZtnuuAuueiHqjR8RDiZURkcv5PeV7IqXl++VXn++ltEpel/Kz3AOTJZwmZk/gP7+3/oXpvyCNlxsbEIMpLp9HsYwhlM6MDcX+viT4VH56nrVDp0xXdHd7cpqn2eaMxLR9wubnrEw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hkA8VoAkNoAXpTAOEJDzEpqmOfZVg5T1izTASD3PQl6dIVCoSIB0hk4Ld+FNcCpS8u/l6B+cNVbW3XEbgtgBGHY/zfn9qSX+NvxI9I5bUulpESKki0O5n7ITXyHoBhkjS7oTnbGCeH/aQXlOmQ4MWyg3Ct+11BKPb6L209ojifyd43jZCKk3fyQivzbEKYTDLJtWY082p67lDxU/mZ7HiLbIBn6VC6IH//tAWEX+FoIyH64Su+IaVuu3uBFW9dgUINrC64DMixRhgJlJ87ppKICGeVPta0GEklAXQ61b1kJXY7y6FGj+z29aTYuoFrYQ2D7bSCCY5qjaqODYwsHlRA==
  • Authentication-results-original: suse.com; dkim=none (message not signed) header.d=none;suse.com; dmarc=none action=none header.from=arm.com;
  • Cc: Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Ian Jackson <iwj@xxxxxxxxxxxxxx>, Rahul Singh <Rahul.Singh@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, George Dunlap <george.dunlap@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Paul Durrant <paul@xxxxxxx>, Oleksandr Andrushchenko <Oleksandr_Andrushchenko@xxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • Delivery-date: Fri, 15 Oct 2021 10:49:07 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Nodisclaimer: true
  • Original-authentication-results: suse.com; dkim=none (message not signed) header.d=none;suse.com; dmarc=none action=none header.from=arm.com;
  • Thread-index: AQHXwQrjS6mPrKT7Q06z3N66FcsDAKvTvGsAgAAWOICAAAj6gIAAApmAgAACGYCAAAIKgA==
  • Thread-topic: [PATCH v6 2/3] xen/arm: Enable the existing x86 virtual PCI support for ARM.

Hi Jan,

> On 15 Oct 2021, at 11:41, Jan Beulich <jbeulich@xxxxxxxx> wrote:
> 
> On 15.10.2021 12:33, Bertrand Marquis wrote:
>>> On 15 Oct 2021, at 11:24, Jan Beulich <jbeulich@xxxxxxxx> wrote:
>>> On 15.10.2021 11:52, Bertrand Marquis wrote:
>>>>> On 15 Oct 2021, at 09:32, Roger Pau Monné <roger.pau@xxxxxxxxxx> wrote:
>>>>> On Thu, Oct 14, 2021 at 03:49:50PM +0100, Bertrand Marquis wrote:
>>>>>> @@ -752,6 +752,19 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
>>>>>> 
>>>>>>   check_pdev(pdev);
>>>>>> 
>>>>>> +#ifdef CONFIG_ARM
>>>>>> +    /*
>>>>>> +     * On ARM PCI devices discovery will be done by Dom0. Add vpci 
>>>>>> handler when
>>>>>> +     * Dom0 inform XEN to add the PCI devices in XEN.
>>>>>> +     */
>>>>>> +    ret = vpci_add_handlers(pdev);
>>>>>> +    if ( ret )
>>>>>> +    {
>>>>>> +        printk(XENLOG_ERR "Setup of vPCI failed: %d\n", ret);
>>>>>> +        goto out;
>>>>>> +    }
>>>>>> +#endif
>>>>> 
>>>>> I think vpci_add_handlers should be called after checking that
>>>>> pdev->domain is != NULL, so I would move this chunk a bit below.
>>>> 
>>>> On arm this would prevent the dom0less use case or to have the PCI
>>>> bus enumerated from an other domain.
>>>> @oleksandr: can you comment on this one, you might have a better
>>>> answer than me on this ?
>>> 
>>> Well, without Xen doing the enumeration, some other entity would need
>>> to do so, including the reporting to Xen. Obviously without a Dom0 it
>>> would be ambiguous which domain to assign the device to; perhaps it
>>> should be the caller in this case? That would make that caller domain
>>> a pseudo-hwdom though, as far as PCI is concerned, which may not be
>>> desirable according to my (limited) understanding of dom0less.
>> 
>> This is not really related to this patch but the plan is the following:
>> - enumeration would have to be done by the firmware or boot loader before
>> - xen will have some code to detect PCI devices
>> - dom0less can be used to assign PCI devices to guest
>> 
>> Anyway does not change the fact that this must be called when domain is
>> not NULL and I will fix that.
> 
> Since we now all seem to agree that the NULL would have been a problem,
> may I ask in how far any of this has actually been tested?

With the whole serie currently on gitlab we have extensively tested passing
through PCI devices on Arm in several configuration (number of device, MSI,
MSI-X) and check that PCI was still functional on x86.

With the patches pushed to Xen right now it was checked that:
- xen compiles properly on arm32, arm64 and x86
- xen compiles properly with VPCI activated (using a patch) on arm32 and arm64
- xen on x86 is functionnal (using basic test on QEMU)
- xen on arm64 is functionnal (with some extensive tests on different targets)

We are only lacking some actual testing on arm32 internally.

Regards
Bertrand

> 
> Jan


 


Rackspace

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