|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v4 13/14] arm/libxl: Emulated PCI device tree node in libxl
Hi Ian,
> On 6 Oct 2021, at 12:33 pm, Ian Jackson <iwj@xxxxxxxxxxxxxx> wrote:
>
> Rahul Singh writes ("Re: [PATCH v4 13/14] arm/libxl: Emulated PCI device tree
> node in libxl"):
>> Hi Ian
>>> What is wrong with putting it in
>>> libxl__arch_domain_build_info_setdefault
>>> which I think exists precisely for this kind of thing ?
>>
>> As we have to set the arch_arm.vpci to false for x86 and ARM I
>> thought it is right to move the code to common code to avoid
>> duplication.
>>
>> Are you suggesting to put "
>> libxl_defbool_setdefault(&b_info->arch_arm.vpci, false)ïżœin
>> libxl__arch_domain_build_info_setdefault() for x86 and ARM
>> differently.
>
> I've gone back and reread the whole thread, which I probably should
> have done to start with....
>
> So:
>
>>>> #if defined(__arm__) || defined(__aarch64__)
>>>> /*
>>>> * Enable VPCI support for ARM. VPCI support for DOMU guests is not
>>>> * supported for x86.
>>>> */
>>>> if (d_config->num_pcidevs)
>>>> libxl_defbool_set(&b_info->arch_arm.vpci, true);
>>>> #endif
>
> I think this logic probably ought to be in libxl, not in xl.
I will move the code to "libxl_arm.c"to avoid #ifdef in common code and also
to avoid setting the vpci for x86
diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
index e3140a6e00..2be208b99b 100644
--- a/tools/libs/light/libxl_arm.c
+++ b/tools/libs/light/libxl_arm.c
@@ -101,6 +101,12 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
return ERROR_FAIL;
}
+ /* Enable VPCI support. */
+ if (d_config->num_pcidevs) {
+ config->flags |= XEN_DOMCTL_CDF_vpci;
+ libxl_defbool_set(&d_config->b_info.arch_arm.vpci, true);
+ }
+
return 0;
}
> We try
> to make the libxl API "do the right thing" by default. In this case I
> think that means to enable VPCI (i) on platforms where it's available
> (ii) if the guest has PCI passthrough devices. Is that right ?
Yes you are right VPCI will be enabled for guest when guest has PCI passthrough
device
assigned and VPCI support is available.
>
> Sorry to ask these question now, and please forgive my ignorance:
>
> Is VPCI inherently an ARM-specific ABI or protocol ?
As of now VPCI for DOMU guests is only implemented for ARM.
> When might an
> admin want to turn it on explicitly ?
It will be enabled dynamically when admin assign any PCI device to guest.
>
> How does this all relate to the (non-arch-specific) "passthrough"
> option ?
VPCI will be enabled only when there is any PCI device assigned to guest
therefore I used
"d_config->num_pcidevs” to enable VPCI.
Regards,
Rahul
>
> Ian.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |