Message ID | 20190429224252.29000-1-marmarek@invisiblethingslab.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] python: Adjust xc_physinfo wrapper for updated virt_caps bits | expand |
On Tue, Apr 30, 2019 at 12:42:52AM +0200, Marek Marczykowski-Górecki wrote: > Commit f089fddd94 "xen: report PV capability in sysctl and use it in > toolstack" changed meaning of virt_caps bit 1 - previously it was > "directio", but was changed to "pv" and "directio" was moved to bit 2. > Adjust python wrapper to use #defines for the bits values, and add > reporting of both "pv_directio" and "hvm_directio". > > Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> > --- Acked-by: Wei Liu <wei.liu2@citrix.com>
Marek Marczykowski-Górecki writes ("[PATCH v2] python: Adjust xc_physinfo wrapper for updated virt_caps bits"): > Commit f089fddd94 "xen: report PV capability in sysctl and use it in > toolstack" changed meaning of virt_caps bit 1 - previously it was > "directio", but was changed to "pv" and "directio" was moved to bit 2. > Adjust python wrapper to use #defines for the bits values, and add > reporting of both "pv_directio" and "hvm_directio". > > Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Ian Jackson writes ("Re: [PATCH v2] python: Adjust xc_physinfo wrapper for updated virt_caps bits"): > Marek Marczykowski-Górecki writes ("[PATCH v2] python: Adjust xc_physinfo wrapper for updated virt_caps bits"): > > Commit f089fddd94 "xen: report PV capability in sysctl and use it in > > toolstack" changed meaning of virt_caps bit 1 - previously it was > > "directio", but was changed to "pv" and "directio" was moved to bit 2. > > Adjust python wrapper to use #defines for the bits values, and add > > reporting of both "pv_directio" and "hvm_directio". > > > > Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> > > Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> I think this is a backport candidate for 4.12, since f089fddd94 was in 4.12. Am I right ? Ian.
On Mon, Aug 05, 2019 at 03:56:30PM +0100, Ian Jackson wrote: > Ian Jackson writes ("Re: [PATCH v2] python: Adjust xc_physinfo wrapper for updated virt_caps bits"): > > Marek Marczykowski-Górecki writes ("[PATCH v2] python: Adjust xc_physinfo wrapper for updated virt_caps bits"): > > > Commit f089fddd94 "xen: report PV capability in sysctl and use it in > > > toolstack" changed meaning of virt_caps bit 1 - previously it was > > > "directio", but was changed to "pv" and "directio" was moved to bit 2. > > > Adjust python wrapper to use #defines for the bits values, and add > > > reporting of both "pv_directio" and "hvm_directio". > > > > > > Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> > > > > Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> > > I think this is a backport candidate for 4.12, since f089fddd94 was in > 4.12. Am I right ? Yes, definitely.
diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/xc/xc.c index cc8175a11e..9c03c8272e 100644 --- a/tools/python/xen/lowlevel/xc/xc.c +++ b/tools/python/xen/lowlevel/xc/xc.c @@ -973,11 +973,17 @@ static PyObject *pyxc_physinfo(XcObject *self) xc_physinfo_t pinfo; char cpu_cap[128], virt_caps[128], *p; int i; - const char *virtcap_names[] = { "hvm", "hvm_directio" }; + const char *virtcap_names[] = { "hvm", "pv" }; + const unsigned virtcaps_bits[] = { XEN_SYSCTL_PHYSCAP_hvm, + XEN_SYSCTL_PHYSCAP_pv }; if ( xc_physinfo(self->xc_handle, &pinfo) != 0 ) return pyxc_error_to_exception(self->xc_handle); + /* + * Keep in sync with tools/xl/xl_info.c:output_xeninfo + * and struct xen_sysctl_physinfo (especially bit fields). + */ p = cpu_cap; *p = '\0'; for ( i = 0; i < sizeof(pinfo.hw_cap)/4; i++ ) @@ -986,9 +992,13 @@ static PyObject *pyxc_physinfo(XcObject *self) p = virt_caps; *p = '\0'; - for ( i = 0; i < 2; i++ ) - if ( (pinfo.capabilities >> i) & 1 ) + for ( i = 0; i < ARRAY_SIZE(virtcaps_bits); i++ ) + if ( pinfo.capabilities & virtcaps_bits[i] ) p += sprintf(p, "%s ", virtcap_names[i]); + if ( pinfo.capabilities & XEN_SYSCTL_PHYSCAP_directio ) + for ( i = 0; i < ARRAY_SIZE(virtcaps_bits); i++ ) + if ( pinfo.capabilities & virtcaps_bits[i] ) + p += sprintf(p, "%s_directio ", virtcap_names[i]); if ( p != virt_caps ) *(p-1) = '\0';
Commit f089fddd94 "xen: report PV capability in sysctl and use it in toolstack" changed meaning of virt_caps bit 1 - previously it was "directio", but was changed to "pv" and "directio" was moved to bit 2. Adjust python wrapper to use #defines for the bits values, and add reporting of both "pv_directio" and "hvm_directio". Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> --- This should be backported to 4.12 Cc: Ian Jackson <ian.jackson@eu.citrix.com> Changes in v2: - Check XEN_SYSCTL_PHYSCAP_* instead of hardcoding bits values - Do not duplicate virtcap_names entries, instead append _directio in sprintf() --- tools/python/xen/lowlevel/xc/xc.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-)