[Xen-devel] [PATCH v2] python: Adjust xc_physinfo wrapper for updated virt_caps bits

Marek Marczykowski-Górecki posted 1 patch 4 years, 12 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/xen tags/patchew/20190429224252.29000-1-marmarek@invisiblethingslab.com
tools/python/xen/lowlevel/xc/xc.c | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
[Xen-devel] [PATCH v2] python: Adjust xc_physinfo wrapper for updated virt_caps bits
Posted by Marek Marczykowski-Górecki 4 years, 12 months ago
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(-)

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';
 
-- 
2.17.2


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH v2] python: Adjust xc_physinfo wrapper for updated virt_caps bits
Posted by Wei Liu 4 years, 11 months ago
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>

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH v2] python: Adjust xc_physinfo wrapper for updated virt_caps bits
Posted by Ian Jackson 4 years, 11 months ago
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>

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH v2] python: Adjust xc_physinfo wrapper for updated virt_caps bits
Posted by Ian Jackson 4 years, 8 months ago
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.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH v2] python: Adjust xc_physinfo wrapper for updated virt_caps bits
Posted by Marek Marczykowski-Górecki 4 years, 8 months ago
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.

-- 
Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel