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

Re: [PATCH] xen-pciback: allow compiling on other archs than x86


  • To: Juergen Gross <jgross@xxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>
  • From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@xxxxxxxx>
  • Date: Mon, 20 Sep 2021 11:38:55 +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; bh=gLPEPmNqvodFxSNvrsQXjNALp/bhHYk2JHzMRRn8SMQ=; b=irsNS4Mzm5dXMc8WDlapYbOgAL0MxWd5AygZm/+4+8M9tFBVaQ5rko59HcJUvgNqQYp3cUYmFX2wngZ0ZXg4tTVfynmvZPG35XajZaZabr3rTfR8EpC7izWpKBHj1jshHO5dJvxG97a1KqDcB2ljn5RtAxwlQaeqNiAswPNyytEIH7/CIe8TTk8qmRlsVQCexxRk5XVZMAuX3yhDyj7YdQnSvMUZhDmExmNXlwr3ThormF3xiBss2eXgtcTNhwIzzG/w/7LshMsu1klgiwEtZBYJEYD4+dSIQzqFIUo7Et6EpM9TCBz11mddLis60+ewPyKxCnHdsA1kmjnHXv1VBQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kNchorLNEEEy5J9hDMuYsJcCLjjdS13dsjWYlq0fhubdi/SACFFxuHr2SLSzE6QeSb8HxjuX/TbP0aCJ6T/aszDG7n0tBejTOYJic+TblhT8vnTNiIKjuU0jO+TQ1HITHqZcGQd+KvV7e4ofxp8uo0yNFUjQQns0KuSw69kfQj2hGLehFrtH34QtJDx0fcBBGx+zSSdz5o4I9kyi1opBk7uwwSyjihUdg9INcRxpRTBAEUTf4mRyHOJAJ7jEsEIVxwmDffra9taPIhO/IPMYamit5pmLYnaTdjJXLpnHqL0plioH6VfhDiyg83tVP7fL7ZpaXvwceipnsPM8gFraJw==
  • Authentication-results: suse.com; dkim=none (message not signed) header.d=none;suse.com; dmarc=none action=none header.from=epam.com;
  • Cc: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, "linux-kernel@xxxxxxxxxxxxxxx" <linux-kernel@xxxxxxxxxxxxxxx>, "boris.ostrovsky@xxxxxxxxxx" <boris.ostrovsky@xxxxxxxxxx>, "julien@xxxxxxx" <julien@xxxxxxx>, "jbeulich@xxxxxxxx" <jbeulich@xxxxxxxx>, Anastasiia Lukianenko <Anastasiia_Lukianenko@xxxxxxxx>, Oleksandr Andrushchenko <andr2000@xxxxxxxxx>
  • Delivery-date: Mon, 20 Sep 2021 11:39:09 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHXq8QnOfGIukpGqE2hMWXmS9bdmKuow0KAgAOkhICAAGZ9AIAAAmOA
  • Thread-topic: [PATCH] xen-pciback: allow compiling on other archs than x86

Hello, Juergen!

On 20.09.21 14:30, Juergen Gross wrote:
> On 20.09.21 07:23, Oleksandr Andrushchenko wrote:
>> Hello, Stefano!
>>
>> On 18.09.21 00:45, Stefano Stabellini wrote:
>>> Hi Oleksandr,
>>>
>>> Why do you want to enable pciback on ARM? Is it only to "disable" a PCI
>>> device in Dom0 so that it can be safely assigned to a DomU?
>> Not only that
>>>
>>> I am asking because actually I don't think we want to enable the PV PCI
>>> backend feature of pciback on ARM, right? That would clash with the PCI
>>> assignment work you have been doing in Xen. They couldn't both work at
>>> the same time.
>> Correct, it is not used
>>>
>>> If we only need pciback to "park" a device in Dom0, wouldn't it be
>>> possible and better to use pci-stub instead?
>>
>> Not only that, so pci-stub is not enough
>>
>> The functionality which is implemented by the pciback and the toolstack
>> and which is relevant/missing/needed for ARM:
>>
>> 1. pciback is used as a database for assignable PCI devices, e.g. xl
>>      pci-assignable-{add|remove|list} manipulates that list. So, whenever the
>>      toolstack needs to know which PCI devices can be passed through it reads
>>      that from the relevant sysfs entries of the pciback.
>>
>> 2. pciback is used to hold the unbound PCI devices, e.g. when passing through
>>      a PCI device it needs to be unbound from the relevant device driver and 
>> bound
>>      to pciback (strictly speaking it is not required that the device is 
>> bound to
>>      pciback, but pciback is again used as a database of the passed through 
>> PCI
>>      devices, so we can re-bind the devices back to their original drivers 
>> when
>>      guest domain shuts down)
>>
>> 3. Device reset
>>
>> We have previously discussed on xen-devel ML possible solutions to that as 
>> from the
>> above we see that pciback functionality is going to be only partially used 
>> on Arm.
>>
>> Please see [1] and [2]:
>>
>> 1. It is not acceptable to manage the assignable list in Xen itself
>>
>> 2. pciback can be split into two parts: PCI assignable/bind/reset handling 
>> and
>> the rest like vPCI etc.
>>
>> 3. pcifront is not used on Arm
>
> It is neither in x86 PVH/HVM guests.
Didn't know that, thank you for pointing
>
>> So, limited use of the pciback is one of the bricks used to enable PCI 
>> passthrough
>> on Arm. It was enough to just re-structure the driver and have it run on Arm 
>> to achieve
>> all the goals above.
>>
>> If we still think it is desirable to break the pciback driver into "common" 
>> and "pcifront specific"
>> parts then it can be done, yet the patch is going to be the very first brick 
>> in that building.
>
> Doing this split should be done, as the pcifront specific part could be
> omitted on x86, too, in case no PV guests using PCI passthrough have to
> be supported.
Agree, that the final solution should have the driver split
>
>> So, I think this patch is still going to be needed besides which direction 
>> we take.
>
> Some kind of this patch, yes. It might look different in case the split
> is done first.
>
> I don't mind doing it in either sequence.
>
With this patch we have Arm on the same page as the above mentioned x86 guests,

e.g. the driver has unused code, but yet allows Arm to function now.

At this stage of PCI passthrough on Arm it is yet enough. Long term, when

the driver gets split, Arm will benefit from that split too, but unfortunately 
I do not

have enough bandwidth for that piece of work at the moment.

>
> Juergen

Thank you,

Oleksandr

 


Rackspace

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