Re: [PATCH 2/2] xen-pciback: prepare for the split for stub and PV

From: Oleksandr Andrushchenko
Date: Thu Sep 23 2021 - 05:10:16 EST



On 23.09.21 12:05, Juergen Gross wrote:
> On 23.09.21 11:02, Oleksandr Andrushchenko wrote:
>>
>> On 23.09.21 00:10, Stefano Stabellini wrote:
>>> On Wed, 22 Sep 2021, Oleksandr Andrushchenko wrote:
>>>> --- a/drivers/xen/xen-pciback/xenbus.c
>>>> +++ b/drivers/xen/xen-pciback/xenbus.c
>>>> @@ -743,6 +743,9 @@ const struct xen_pcibk_backend *__read_mostly xen_pcibk_backend;
>>>>       int __init xen_pcibk_xenbus_register(void)
>>>>    {
>>>> +    if (!xen_pcibk_pv_support())
>>>> +        return 0;
>>> Is this truly enough to stop the PV backend from initializing? Have you
>>> actually tested it to make sure? If it works, amazing! I am quite happy
>>> about this approach :-)
>>
>> Well, I put some logs into the driver and saw nothing obvious pointing
>>
>> to any backend activities (probably this is also because I don't have any
>>
>> frontend). I see that the xenbus driver is not registered. In XenStore I see:
>>
>> root@dom0:~# xenstore-ls -f | grep pci
>> /local/domain/0/backend/pci = ""
>> /local/domain/0/backend/pci/2 = ""
>> /local/domain/0/backend/pci/2/0 = ""
>> /local/domain/0/backend/pci/2/0/frontend = "/local/domain/2/device/pci/0"
>> /local/domain/0/backend/pci/2/0/frontend-id = "2"
>> /local/domain/0/backend/pci/2/0/online = "1"
>> /local/domain/0/backend/pci/2/0/state = "1"
>> /local/domain/0/backend/pci/2/0/domain = "DomU"
>> /local/domain/0/backend/pci/2/0/key-0 = "0000:03:00.0"
>> /local/domain/0/backend/pci/2/0/dev-0 = "0000:03:00.0"
>> /local/domain/0/backend/pci/2/0/opts-0 = "msitranslate=0,power_mgmt=0,permissive=0,rdm_policy=strict"
>> /local/domain/0/backend/pci/2/0/state-0 = "1"
>> /local/domain/0/backend/pci/2/0/num_devs = "1"
>> /local/domain/2/device/pci = ""
>> /local/domain/2/device/pci/0 = ""
>> /local/domain/2/device/pci/0/backend = "/local/domain/0/backend/pci/2/0"
>> /local/domain/2/device/pci/0/backend-id = "0"
>> /local/domain/2/device/pci/0/state = "1"
>> /libxl/pci = ""
>> /libxl/pci/0000-03-00-0 = ""
>> /libxl/pci/0000-03-00-0/domid = "2"
>>
>> But IIUIC these come from the toolstack
>>
>> @Juergen, do you know how to check if the backend is indeed not running
>>
>> or the above should be enough to prove?
>
> I don't see how the backend could be running without being registered
> with xenbus. It won't receive any watches, so there is no way a
> connection with a frontend could be established.

This is my understanding too, so the only change I've put in patch I removed

register/unregister. It seems this is just enough and the patch should be ok as is

>
>
> Juergen
>
Thank you,

Oleksandr