|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] tools/xl: correctly shows split eventchannel for netfront
From: Annie Li <annie.li@xxxxxxxxxx>
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@xxxxxxxxxx>
---
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
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |