[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 23/25] arm/altp2m: Extend libxl to activate altp2m on ARM.
Hi Wei, On 08/11/2016 06:00 PM, Wei Liu wrote: > Sorry for the late reply. > No worries, it's all good :) Thanks for your reply. [...] >>>> ("smbios_firmware", string), >>>> ("acpi_firmware", string), >>>> ("hdtype", libxl_hdtype), >>>> @@ -561,6 +560,9 @@ libxl_domain_build_info = Struct("domain_build_info",[ >>>> >>>> ("arch_arm", Struct(None, [("gic_version", libxl_gic_version), > > But you do need to wrap the line properly. I am not sure whether this comment was intended, as the upper line containing the fields arch_arm and gic_version were not changed by the patch. >>>> ])), >>>> + # Alternate p2m is not bound to any architecture or guest type, as it >>>> is >>>> + # supported by x86 HVM and ARM PV guests. >>> Just "ARM guests" would do. ARM doesn't have notion of PV vs HVM. >> >> I will change that, thank you. I mentioned ARM PV as currently it is the >> type that is registered for guests on ARM. >> >>>> + ("altp2m", libxl_defbool), >>>> >>>> ], dir=DIR_IN >>>> ) [...] >>>> >>>> xlu_cfg_replace_string(config, "smbios_firmware", >>>> &b_info->u.hvm.smbios_firmware, 0); >>>> @@ -1727,6 +1732,25 @@ static void parse_config_data(const char >>>> *config_source, >>>> abort(); >>>> } >>>> >>>> + bool altp2m_support = false; >>>> +#if defined(__i386__) || defined(__x86_64__) >>>> + /* Alternate p2m support on x86 is available only for HVM guests. */ >>>> + if (b_info->type == LIBXL_DOMAIN_TYPE_HVM) >>>> + altp2m_support = true; >>>> +#elif defined(__arm__) || defined(__aarch64__) >>>> + /* Alternate p2m support on ARM is available for all guests. */ >>>> + altp2m_support = true; >>>> +#endif >>>> + >>> I don't think you need to care too much about dead option here. >>> Xl should be able to set altp2m field all the time. >> >> I am actually not sure what you mean by the dead option. Could you be >> more specific, please? >> >> Also, in the last patch, we came to the agreement to guard the altp2m >> functionality solely through the HVM param (instead of the additional >> Xen cmd-line option altp2m), which is set through libxl. Because of >> this, the entire domu initialization routines depend on this option to >> be set at the moment of domain creation -- not after it. That is, being >> able to set the altp2m option at all time would actually break the system. >> > > Why is this? It's possible we're talking past each other. > I believe I was not entirely clear in my upper comment. By "we", I meant all parties involved into the discussion concerning altp2m on ARM in general. Sorry, for the confusion. Also, I was wrong: The HVM param can indeed be set at any time without any troubles. >>> And there should be >>> code in libxl to handle situation when altp2m is not available. >> >> I am not so sure about that either: >> >> Currently, altp2m is supported on x86 HVM and on ARM. >> * on x86, altp2m depends on HW to support altp2m. Therefore, the >> cmd-line option "altp2m" is used do activate altp2m. All libxl >> interaction with the altp2m subsystem will be discarded at this point. >> * on ARM, altp2m is implemented purely in SW. That is, we do not have >> ARM architectures, that would not support altp2m -- so the idea. >> * All other architectures should not be able to activate altp2m, which >> is why I chose the #defines (__arm__, __x86_64__, ...) to guard the >> upper option. >> >>>> + if (altp2m_support) { >>>> + /* The config parameter "altp2m" replaces the parameter >>>> "altp2mhvm". >>>> + * For legacy reasons, both parameters are accepted on x86 HVM >>>> guests >>>> + * (only "altp2m" is accepted on ARM guests). If both parameters >>>> are >>>> + * given, it must be considered that the config parameter >>>> "altp2m" will >>>> + * always have priority over "altp2mhvm". */ >>>> + xlu_cfg_get_defbool(config, "altp2m", &b_info->altp2m, 0); >>>> + } >>>> + > > > What I meant was: > > We don't care xl (the application) sets altp2m or not. It's entirely possible > that the xl on its own sets that field. The validation should be done > inside libxl. If a particular configuration is not supported by libxl, > it should reject that. Libxl shouldn't rely on xl (the application) to > pass in fully sanitised data, it should sanitise the input itself. > > Basically that means, in xl, you only need: > > + xlu_cfg_get_defbool(config, "altp2m", &b_info->altp2m, 0); > > And then in libxl:initiate_domain_create you check if the configuration > is valid. You can see a bunch of other checks are already there. > > Does this make sense to you? > > I think so. As you said, in my next patch, I will simply set b_info->u.hvm.altp2m and b_info->altp2m during parsing and check for sufficient support in initiate_domain_create. Thank you. >>> As always, if what I said above doesn't make sense to you, feel free to >>> ask. >> Best regards, ~Sergej _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |