We should uniformize how the graphic/drawing and text outputs are called in the manpage/usage/doc/README, it may be a bit misleading now. But I am not sure which terms are best between graphic and drawing, and between console and text.
Also, is everybody ok with the new defaults and formatting: * graphic/drawing physical by default legend by default both logical and physical indexes prefixed with # * text/console logical by default never any legend (add one in verbose mode?) logical indexes prefixed with # (and the interesting physical one appear in parentheses as phys=X) physical indexes prefixed with p# FWIW, in 1.0.3, the only thing that changes is the default index in drawing mode. There is no legend or prefix change there. Brice Le 24/11/2010 10:02, [email protected] a écrit : > Author: bgoglin > Date: 2010-11-24 04:02:18 EST (Wed, 24 Nov 2010) > New Revision: 2831 > URL: https://svn.open-mpi.org/trac/hwloc/changeset/2831 > > Log: > lstopo: add --no-legend to remove the new text legend at the bottom > > And update NEWS about all this. > Text files modified: > trunk/NEWS | 5 +++++ > > trunk/utils/lstopo-cairo.c | 36 ++++++++++++++++++------------------ > > trunk/utils/lstopo-draw.c | 30 ++++++++++++++++-------------- > > trunk/utils/lstopo-fig.c | 6 +++--- > > trunk/utils/lstopo-text.c | 8 ++++---- > > trunk/utils/lstopo-windows.c | 4 ++-- > > trunk/utils/lstopo-xml.c | 2 +- > > trunk/utils/lstopo.1in | 3 +++ > > trunk/utils/lstopo.c | 27 ++++++++++++++++----------- > > trunk/utils/lstopo.h | 6 +++--- > > 10 files changed, 71 insertions(+), 56 deletions(-) > > Modified: trunk/NEWS > ============================================================================== > --- trunk/NEWS (original) > +++ trunk/NEWS 2010-11-24 04:02:18 EST (Wed, 24 Nov 2010) > @@ -52,6 +52,11 @@ > with CUDA Runtime and Driver APIs. > + Add Myrinet Express helper in myriexpress.h to ease interoperability. > * Tools > + + lstopo now displays physical/OS indexes by default in drawing mode > + (use -l to switch back to logical indexes). The text output still uses > + logical by default (use -p to switch to physical indexes). > + + Add a legend at the bottom of the lstopo drawing output, use --no-legend > + to remove it. > + Add hwloc-ps to list process' bindings. > + Add --membind and --mempolicy options to hwloc-bind. > + Improve tools command-line options by adding a generic --input option > > Modified: trunk/utils/lstopo-cairo.c > ============================================================================== > --- trunk/utils/lstopo-cairo.c (original) > +++ trunk/utils/lstopo-cairo.c 2010-11-24 04:02:18 EST (Wed, 24 Nov > 2010) > @@ -95,11 +95,11 @@ > #endif /* (CAIRO_HAS_PNG_FUNCTIONS + CAIRO_HAS_PDF_SURFACE + > CAIRO_HAS_PS_SURFACE + CAIRO_HAS_SVG_SURFACE) */ > > static void > -topo_cairo_paint(struct draw_methods *methods, int logical, hwloc_topology_t > topology, cairo_surface_t *cs) > +topo_cairo_paint(struct draw_methods *methods, int logical, int legend, > hwloc_topology_t topology, cairo_surface_t *cs) > { > cairo_t *c; > c = cairo_create(cs); > - output_draw(methods, logical, topology, c); > + output_draw(methods, logical, legend, topology, c); > cairo_show_page(c); > cairo_destroy(c); > } > @@ -207,15 +207,15 @@ > } > > void > -output_x11(hwloc_topology_t topology, const char *filename > __hwloc_attribute_unused, int logical, int verbose_mode > __hwloc_attribute_unused) > +output_x11(hwloc_topology_t topology, const char *filename > __hwloc_attribute_unused, int logical, int legend, int verbose_mode > __hwloc_attribute_unused) > { > - struct display *disp = output_draw_start(&x11_draw_methods, logical, > topology, NULL); > + struct display *disp = output_draw_start(&x11_draw_methods, logical, > legend, topology, NULL); > int finish = 0; > int state = 0; > int x = 0, y = 0; /* shut warning down */ > int lastx = disp->x, lasty = disp->y; > > - topo_cairo_paint(&x11_draw_methods, logical, topology, disp->cs); > + topo_cairo_paint(&x11_draw_methods, logical, legend, topology, disp->cs); > > while (!finish) { > XEvent e; > @@ -231,7 +231,7 @@ > switch (e.type) { > case Expose: > if (e.xexpose.count < 1) > - topo_cairo_paint(&x11_draw_methods, logical, topology, disp->cs); > + topo_cairo_paint(&x11_draw_methods, logical, legend, topology, > disp->cs); > break; > case MotionNotify: > if (state) { > @@ -346,7 +346,7 @@ > }; > > void > -output_png(hwloc_topology_t topology, const char *filename, int logical, int > verbose_mode __hwloc_attribute_unused) > +output_png(hwloc_topology_t topology, const char *filename, int logical, int > legend, int verbose_mode __hwloc_attribute_unused) > { > FILE *output = open_file(filename, "w"); > cairo_surface_t *cs; > @@ -356,9 +356,9 @@ > return; > } > > - cs = output_draw_start(&png_draw_methods, logical, topology, output); > + cs = output_draw_start(&png_draw_methods, logical, legend, topology, > output); > > - topo_cairo_paint(&png_draw_methods, logical, topology, cs); > + topo_cairo_paint(&png_draw_methods, logical, legend, topology, cs); > cairo_surface_write_to_png_stream(cs, topo_cairo_write, output); > cairo_surface_destroy(cs); > fclose(output); > @@ -383,7 +383,7 @@ > }; > > void > -output_pdf(hwloc_topology_t topology, const char *filename, int logical, int > verbose_mode __hwloc_attribute_unused) > +output_pdf(hwloc_topology_t topology, const char *filename, int logical, int > legend, int verbose_mode __hwloc_attribute_unused) > { > FILE *output = open_file(filename, "w"); > cairo_surface_t *cs; > @@ -393,9 +393,9 @@ > return; > } > > - cs = output_draw_start(&pdf_draw_methods, logical, topology, output); > + cs = output_draw_start(&pdf_draw_methods, logical, legend, topology, > output); > > - topo_cairo_paint(&pdf_draw_methods, logical, topology, cs); > + topo_cairo_paint(&pdf_draw_methods, logical, legend, topology, cs); > cairo_surface_flush(cs); > cairo_surface_destroy(cs); > fclose(output); > @@ -420,7 +420,7 @@ > }; > > void > -output_ps(hwloc_topology_t topology, const char *filename, int logical, int > verbose_mode __hwloc_attribute_unused) > +output_ps(hwloc_topology_t topology, const char *filename, int logical, int > legend, int verbose_mode __hwloc_attribute_unused) > { > FILE *output = open_file(filename, "w"); > cairo_surface_t *cs; > @@ -430,9 +430,9 @@ > return; > } > > - cs = output_draw_start(&ps_draw_methods, logical, topology, output); > + cs = output_draw_start(&ps_draw_methods, logical, legend, topology, > output); > > - topo_cairo_paint(&ps_draw_methods, logical, topology, cs); > + topo_cairo_paint(&ps_draw_methods, logical, legend, topology, cs); > cairo_surface_flush(cs); > cairo_surface_destroy(cs); > fclose(output); > @@ -457,7 +457,7 @@ > }; > > void > -output_svg(hwloc_topology_t topology, const char *filename, int logical, int > verbose_mode __hwloc_attribute_unused) > +output_svg(hwloc_topology_t topology, const char *filename, int logical, int > legend, int verbose_mode __hwloc_attribute_unused) > { > FILE *output; > cairo_surface_t *cs; > @@ -468,9 +468,9 @@ > return; > } > > - cs = output_draw_start(&svg_draw_methods, logical, topology, output); > + cs = output_draw_start(&svg_draw_methods, logical, legend, topology, > output); > > - topo_cairo_paint(&svg_draw_methods, logical, topology, cs); > + topo_cairo_paint(&svg_draw_methods, logical, legend, topology, cs); > cairo_surface_flush(cs); > cairo_surface_destroy(cs); > fclose(output); > > Modified: trunk/utils/lstopo-draw.c > ============================================================================== > --- trunk/utils/lstopo-draw.c (original) > +++ trunk/utils/lstopo-draw.c 2010-11-24 04:02:18 EST (Wed, 24 Nov 2010) > @@ -656,7 +656,7 @@ > } > > static void > -fig(hwloc_topology_t topology, struct draw_methods *methods, int logical, > hwloc_obj_t level, void *output, unsigned depth, unsigned x, unsigned y) > +fig(hwloc_topology_t topology, struct draw_methods *methods, int logical, > int legend, hwloc_obj_t level, void *output, unsigned depth, unsigned x, > unsigned y) > { > unsigned totwidth, totheight; > time_t t; > @@ -674,18 +674,20 @@ > if (n && date[n-1] == '\n'); > date[n-1] = 0; > > - if (hwloc_topology_is_thissystem(topology) && > + if (legend) { > + if (hwloc_topology_is_thissystem(topology) && > #ifdef HWLOC_WIN_SYS > - GetComputerName(hostname, &hostname_size) > + GetComputerName(hostname, &hostname_size) > #else > - !gethostname(hostname, hostname_size) > + !gethostname(hostname, hostname_size) > #endif > - ) > - snprintf(text, sizeof(text), "%s IDs for %s on %s", logical ? "logical" > : "physical", hostname, date); > - else > - snprintf(text, sizeof(text), "%s IDs on %s", logical ? "logical" : > "physical", date); > - methods->box(output, 0xff, 0xff, 0xff, depth, 0, totwidth, totheight, > gridsize + fontsize + gridsize); > - methods->text(output, 0, 0, 0, fontsize, depth, gridsize, totheight + > gridsize, text); > + ) > + snprintf(text, sizeof(text), "%s IDs for %s on %s", logical ? > "logical" : "physical", hostname, date); > + else > + snprintf(text, sizeof(text), "%s IDs on %s", logical ? "logical" : > "physical", date); > + methods->box(output, 0xff, 0xff, 0xff, depth, 0, totwidth, totheight, > gridsize + fontsize + gridsize); > + methods->text(output, 0, 0, 0, fontsize, depth, gridsize, totheight + > gridsize, text); > + } > } > > /* > @@ -756,10 +758,10 @@ > }; > > void * > -output_draw_start(struct draw_methods *methods, int logical, > hwloc_topology_t topology, void *output) > +output_draw_start(struct draw_methods *methods, int logical, int legend, > hwloc_topology_t topology, void *output) > { > struct coords coords = { .x = 0, .y = 0}; > - fig(topology, &getmax_draw_methods, logical, hwloc_get_root_obj(topology), > &coords, 100, 0, 0); > + fig(topology, &getmax_draw_methods, logical, legend, > hwloc_get_root_obj(topology), &coords, 100, 0, 0); > output = methods->start(output, coords.x, coords.y); > methods->declare_color(output, 0, 0, 0); > methods->declare_color(output, NODE_R_COLOR, NODE_G_COLOR, NODE_B_COLOR); > @@ -778,7 +780,7 @@ > } > > void > -output_draw(struct draw_methods *methods, int logical, hwloc_topology_t > topology, void *output) > +output_draw(struct draw_methods *methods, int logical, int legend, > hwloc_topology_t topology, void *output) > { > - fig(topology, methods, logical, hwloc_get_root_obj(topology), output, > 100, 0, 0); > + fig(topology, methods, logical, legend, hwloc_get_root_obj(topology), > output, 100, 0, 0); > } > > Modified: trunk/utils/lstopo-fig.c > ============================================================================== > --- trunk/utils/lstopo-fig.c (original) > +++ trunk/utils/lstopo-fig.c 2010-11-24 04:02:18 EST (Wed, 24 Nov 2010) > @@ -116,7 +116,7 @@ > }; > > void > -output_fig (hwloc_topology_t topology, const char *filename, int logical, > int verbose_mode __hwloc_attribute_unused) > +output_fig (hwloc_topology_t topology, const char *filename, int logical, > int legend, int verbose_mode __hwloc_attribute_unused) > { > FILE *output = open_file(filename, "w"); > if (!output) { > @@ -124,7 +124,7 @@ > return; > } > > - output = output_draw_start(&fig_draw_methods, logical, topology, output); > - output_draw(&fig_draw_methods, logical, topology, output); > + output = output_draw_start(&fig_draw_methods, logical, legend, topology, > output); > + output_draw(&fig_draw_methods, logical, legend, topology, output); > fclose(output); > } > > Modified: trunk/utils/lstopo-text.c > ============================================================================== > --- trunk/utils/lstopo-text.c (original) > +++ trunk/utils/lstopo-text.c 2010-11-24 04:02:18 EST (Wed, 24 Nov 2010) > @@ -120,7 +120,7 @@ > output_only (topology, l->children[x], output, logical, verbose_mode); > } > > -void output_console(hwloc_topology_t topology, const char *filename, int > logical, int verbose_mode) > +void output_console(hwloc_topology_t topology, const char *filename, int > logical, int legend __hwloc_attribute_unused, int verbose_mode) > { > unsigned topodepth; > FILE *output; > @@ -606,7 +606,7 @@ > .text = text_text, > }; > > -void output_text(hwloc_topology_t topology, const char *filename, int > logical, int verbose_mode __hwloc_attribute_unused) > +void output_text(hwloc_topology_t topology, const char *filename, int > logical, int legend, int verbose_mode __hwloc_attribute_unused) > { > FILE *output; > struct display *disp; > @@ -665,8 +665,8 @@ > } > #endif /* HWLOC_HAVE_LIBTERMCAP */ > > - disp = output_draw_start(&text_draw_methods, logical, topology, output); > - output_draw(&text_draw_methods, logical, topology, disp); > + disp = output_draw_start(&text_draw_methods, logical, legend, topology, > output); > + output_draw(&text_draw_methods, logical, legend, topology, disp); > > lfr = lfg = lfb = -1; > lbr = lbg = lbb = -1; > > Modified: trunk/utils/lstopo-windows.c > ============================================================================== > --- trunk/utils/lstopo-windows.c (original) > +++ trunk/utils/lstopo-windows.c 2010-11-24 04:02:18 EST (Wed, 24 Nov > 2010) > @@ -262,12 +262,12 @@ > }; > > void > -output_windows (hwloc_topology_t topology, const char *filename > __hwloc_attribute_unused, int logical, int verbose_mode > __hwloc_attribute_unused) > +output_windows (hwloc_topology_t topology, const char *filename > __hwloc_attribute_unused, int logical, int legend, int verbose_mode > __hwloc_attribute_unused) > { > HWND toplevel; > the_topology = topology; > the_logical = logical; > - toplevel = output_draw_start(&windows_draw_methods, logical, topology, > NULL); > + toplevel = output_draw_start(&windows_draw_methods, logical, legend, > topology, NULL); > UpdateWindow(toplevel); > MSG msg; > while (!finish && GetMessage(&msg, NULL, 0, 0)) { > > Modified: trunk/utils/lstopo-xml.c > ============================================================================== > --- trunk/utils/lstopo-xml.c (original) > +++ trunk/utils/lstopo-xml.c 2010-11-24 04:02:18 EST (Wed, 24 Nov 2010) > @@ -15,7 +15,7 @@ > > #include "lstopo.h" > > -void output_xml(hwloc_topology_t topology, const char *filename, int logical > __hwloc_attribute_unused, int verbose_mode __hwloc_attribute_unused) > +void output_xml(hwloc_topology_t topology, const char *filename, int logical > __hwloc_attribute_unused, int legend __hwloc_attribute_unused, int > verbose_mode __hwloc_attribute_unused) > { > if (!filename || !strcasecmp(filename, "-.xml")) > filename = "-"; > > Modified: trunk/utils/lstopo.1in > ============================================================================== > --- trunk/utils/lstopo.1in (original) > +++ trunk/utils/lstopo.1in 2010-11-24 04:02:18 EST (Wed, 24 Nov 2010) > @@ -117,6 +117,9 @@ > \fB\-\-vert\fR > Vertical graphic layout instead of nearly 4/3 ratio. > .TP > +\fB\-\-no\-legend\fR > +Remove the text legend at the bottom. > +.TP > \fB\-\-version\fR > Report version and exit. > . > > Modified: trunk/utils/lstopo.c > ============================================================================== > --- trunk/utils/lstopo.c (original) > +++ trunk/utils/lstopo.c 2010-11-24 04:02:18 EST (Wed, 24 Nov 2010) > @@ -34,6 +34,7 @@ > unsigned int gridsize = 10; > unsigned int force_horiz = 0; > unsigned int force_vert = 0; > +unsigned int legend = 1; > unsigned int top = 0; > hwloc_pid_t pid = (hwloc_pid_t) -1; > > @@ -221,6 +222,7 @@ > fprintf (where, " --gridsize 10 Set size of margin between > elements\n"); > fprintf (where, " --horiz Horizontal graphic layout instead > of nearly 4/3 ratio\n"); > fprintf (where, " --vert Vertical graphic layout instead > of nearly 4/3 ratio\n"); > + fprintf (where, " --no-legend Remove the text legend at the > bottom\n"); > fprintf (where, "Miscellaneous options:\n"); > fprintf (where, " --ps --top Display processes within the > hierarchy\n"); > fprintf (where, " --version Report version and exit\n"); > @@ -359,6 +361,9 @@ > gridsize = atoi(argv[2]); > opt = 1; > } > + else if (!strcmp (argv[1], "--no-legend")) { > + legend = 0; > + } > > else if (hwloc_utils_lookup_input_option(argv+1, argc-1, &opt, > &input, &input_format, > @@ -465,7 +470,7 @@ > if (getenv("DISPLAY")) { > if (logical == -1) > logical = 0; > - output_x11(topology, NULL, logical, verbose_mode); > + output_x11(topology, NULL, logical, legend, verbose_mode); > } else > #endif /* CAIRO_HAS_XLIB_SURFACE */ > #endif /* HWLOC_HAVE_CAIRO */ > @@ -473,51 +478,51 @@ > { > if (logical == -1) > logical = 0; > - output_windows(topology, NULL, logical, verbose_mode); > + output_windows(topology, NULL, logical, legend, verbose_mode); > } > #else > { > if (logical == -1) > logical = 1; > - output_console(topology, NULL, logical, verbose_mode); > + output_console(topology, NULL, logical, legend, verbose_mode); > } > #endif > break; > > case LSTOPO_OUTPUT_CONSOLE: > - output_console(topology, filename, logical, verbose_mode); > + output_console(topology, filename, logical, legend, verbose_mode); > break; > case LSTOPO_OUTPUT_TEXT: > - output_text(topology, filename, logical, verbose_mode); > + output_text(topology, filename, logical, legend, verbose_mode); > break; > case LSTOPO_OUTPUT_FIG: > - output_fig(topology, filename, logical, verbose_mode); > + output_fig(topology, filename, logical, legend, verbose_mode); > break; > #ifdef HWLOC_HAVE_CAIRO > # if CAIRO_HAS_PNG_FUNCTIONS > case LSTOPO_OUTPUT_PNG: > - output_png(topology, filename, logical, verbose_mode); > + output_png(topology, filename, logical, legend, verbose_mode); > break; > # endif /* CAIRO_HAS_PNG_FUNCTIONS */ > # if CAIRO_HAS_PDF_SURFACE > case LSTOPO_OUTPUT_PDF: > - output_pdf(topology, filename, logical, verbose_mode); > + output_pdf(topology, filename, logical, legend, verbose_mode); > break; > # endif /* CAIRO_HAS_PDF_SURFACE */ > # if CAIRO_HAS_PS_SURFACE > case LSTOPO_OUTPUT_PS: > - output_ps(topology, filename, logical, verbose_mode); > + output_ps(topology, filename, logical, legend, verbose_mode); > break; > #endif /* CAIRO_HAS_PS_SURFACE */ > #if CAIRO_HAS_SVG_SURFACE > case LSTOPO_OUTPUT_SVG: > - output_svg(topology, filename, logical, verbose_mode); > + output_svg(topology, filename, logical, legend, verbose_mode); > break; > #endif /* CAIRO_HAS_SVG_SURFACE */ > #endif /* HWLOC_HAVE_CAIRO */ > #ifdef HWLOC_HAVE_XML > case LSTOPO_OUTPUT_XML: > - output_xml(topology, filename, logical, verbose_mode); > + output_xml(topology, filename, logical, legend, verbose_mode); > break; > #endif > default: > > Modified: trunk/utils/lstopo.h > ============================================================================== > --- trunk/utils/lstopo.h (original) > +++ trunk/utils/lstopo.h 2010-11-24 04:02:18 EST (Wed, 24 Nov 2010) > @@ -16,7 +16,7 @@ > extern int taskset; > extern hwloc_pid_t pid; > > -typedef void output_method (struct hwloc_topology *topology, const char > *output, int logical, int verbose_mode); > +typedef void output_method (struct hwloc_topology *topology, const char > *output, int logical, int legend, int verbose_mode); > > FILE *open_file(const char *filename, const char *mode) > __hwloc_attribute_malloc; > > @@ -32,8 +32,8 @@ > > extern unsigned int gridsize, fontsize, force_horiz, force_vert; > > -extern void *output_draw_start(struct draw_methods *draw_methods, int > logical, struct hwloc_topology *topology, void *output); > -extern void output_draw(struct draw_methods *draw_methods, int logical, > struct hwloc_topology *topology, void *output); > +extern void *output_draw_start(struct draw_methods *draw_methods, int > logical, int legend, struct hwloc_topology *topology, void *output); > +extern void output_draw(struct draw_methods *draw_methods, int logical, int > legend, struct hwloc_topology *topology, void *output); > > int rgb_to_color(int r, int g, int b) __hwloc_attribute_const; > int declare_color(int r, int g, int b); > _______________________________________________ > hwloc-svn mailing list > [email protected] > http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-svn >
