All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] tools/xl: correctly shows split eventchannel for netfront
@ 2014-01-14 18:33 Annie Li
  2014-01-15 13:13 ` Ian Campbell
  2014-01-15 15:31 ` David Vrabel
  0 siblings, 2 replies; 5+ messages in thread
From: Annie Li @ 2014-01-14 18:33 UTC (permalink / raw)
  To: xen-devel; +Cc: ian.jackson, annie.li, wei.liu2, ian.campbell

From: Annie Li <annie.li@oracle.com>

After split eventchannel feature was supported by netback/netfront,
"xl network-list" does not show eventchannel correctly. Add tx-/rx-evt-ch
to show tx/rx eventchannel correctly.

Signed-off-by: Annie Li <annie.li@oracle.com>
---
 tools/libxl/libxl.c         |   11 ++++++++++-
 tools/libxl/libxl_types.idl |    3 ++-
 tools/libxl/xl_cmdimpl.c    |   12 ++++++------
 3 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
index 2845ca4..4222687 100644
--- a/tools/libxl/libxl.c
+++ b/tools/libxl/libxl.c
@@ -3125,6 +3125,7 @@ int libxl_device_nic_getinfo(libxl_ctx *ctx, uint32_t domid,
     GC_INIT(ctx);
     char *dompath, *nicpath;
     char *val;
+    int  evtch;
 
     dompath = libxl__xs_get_dompath(gc, domid);
     nicinfo->devid = nic->devid;
@@ -3141,7 +3142,15 @@ int libxl_device_nic_getinfo(libxl_ctx *ctx, uint32_t domid,
     val = libxl__xs_read(gc, XBT_NULL, libxl__sprintf(gc, "%s/state", nicpath));
     nicinfo->state = val ? strtoul(val, NULL, 10) : -1;
     val = libxl__xs_read(gc, XBT_NULL, libxl__sprintf(gc, "%s/event-channel", nicpath));
-    nicinfo->evtch = val ? strtoul(val, NULL, 10) : -1;
+    evtch = val ? strtoul(val, NULL, 10) : -1;
+    if(evtch > 0)
+        nicinfo->evtch_tx = nicinfo->evtch_rx = evtch;
+    else {
+        val = libxl__xs_read(gc, XBT_NULL, libxl__sprintf(gc, "%s/event-channel-tx", nicpath));
+        nicinfo->evtch_tx = val ? strtoul(val, NULL, 10) : -1;
+        val = libxl__xs_read(gc, XBT_NULL, libxl__sprintf(gc, "%s/event-channel-rx", nicpath));
+        nicinfo->evtch_rx = val ? strtoul(val, NULL, 10) : -1;
+    }
     val = libxl__xs_read(gc, XBT_NULL, libxl__sprintf(gc, "%s/tx-ring-ref", nicpath));
     nicinfo->rref_tx = val ? strtoul(val, NULL, 10) : -1;
     val = libxl__xs_read(gc, XBT_NULL, libxl__sprintf(gc, "%s/rx-ring-ref", nicpath));
diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
index 649ce50..e6368c7 100644
--- a/tools/libxl/libxl_types.idl
+++ b/tools/libxl/libxl_types.idl
@@ -488,7 +488,8 @@ libxl_nicinfo = Struct("nicinfo", [
     ("frontend_id", uint32),
     ("devid", libxl_devid),
     ("state", integer),
-    ("evtch", integer),
+    ("evtch_tx", integer),
+    ("evtch_rx", integer),
     ("rref_tx", integer),
     ("rref_rx", integer),
     ], dir=DIR_OUT)
diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
index c30f495..7353187 100644
--- a/tools/libxl/xl_cmdimpl.c
+++ b/tools/libxl/xl_cmdimpl.c
@@ -5842,9 +5842,9 @@ int main_networklist(int argc, char **argv)
         /* No options */
     }
 
-    /*      Idx  BE   MAC   Hdl  Sta  evch txr/rxr  BE-path */
-    printf("%-3s %-2s %-17s %-6s %-5s %-6s %5s/%-5s %-30s\n",
-           "Idx", "BE", "Mac Addr.", "handle", "state", "evt-ch", "tx-", "rx-ring-ref", "BE-path");
+    /*      Idx  BE   MAC   Hdl  Sta  txev/rxev txr/rxr  BE-path */
+    printf("%-3s %-2s %-17s %-6s %-5s %6s/%-6s %5s/%-5s %-30s\n",
+           "Idx", "BE", "Mac Addr.", "handle", "state", "tx-", "rx-evt-ch", "tx-", "rx-ring-ref", "BE-path");
     for (argv += optind, argc -= optind; argc > 0; --argc, ++argv) {
         uint32_t domid = find_domain(*argv);
         nics = libxl_device_nic_list(ctx, domid, &nb);
@@ -5857,9 +5857,9 @@ int main_networklist(int argc, char **argv)
                 printf("%-3d %-2d ", nicinfo.devid, nicinfo.backend_id);
                 /* MAC */
                 printf(LIBXL_MAC_FMT, LIBXL_MAC_BYTES(nics[i].mac));
-                /* Hdl  Sta  evch txr/rxr  BE-path */
-                printf("%6d %5d %6d %5d/%-11d %-30s\n",
-                       nicinfo.devid, nicinfo.state, nicinfo.evtch,
+                /* Hdl  Sta  txev/rxev txr/rxr  BE-path */
+                printf(" %6d %5d %6d/%-9d %5d/%-11d %-30s\n",
+                       nicinfo.devid, nicinfo.state, nicinfo.evtch_tx, nicinfo.evtch_rx,
                        nicinfo.rref_tx, nicinfo.rref_rx, nicinfo.backend);
                 libxl_nicinfo_dispose(&nicinfo);
             }
-- 
1.7.3.4

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-01-15 15:50 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-14 18:33 [PATCH] tools/xl: correctly shows split eventchannel for netfront Annie Li
2014-01-15 13:13 ` Ian Campbell
2014-01-15 15:18   ` annie li
2014-01-15 15:31 ` David Vrabel
2014-01-15 15:50   ` Ian Campbell

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.