On Mon, Feb 04, 2013 at 09:32:33PM +0100, Simon Peeters wrote: > Written by Peeters Simon <[email protected]>. Makefile stuff > and cleaned up a bit by Auke Kok <[email protected]>. > --- > > Fixed some stuff and dit some more cleanup. > > This should just cover the same usage as the old systemd-analyze, but we can > add more functionality afterwards (systemctl dot, other output formats,...) > > This is the rebased version as asked by William. Thanks! It applied cleanly. Just a comment in the analyze_plot fucntion. Previously I mentioned that really short boot times make plots that are too small to really read anything, and I kept getting graphs that were trunctated and short, basically telling me how long the kernel took to get ready and maybe the initrd. I thought this was fixed seeing this patch[1], but then I realized that width is not even used in the svg, it re-calculates the width for some reason here[2]. Just changing that line to `width,` and everything works as expected. (Otherwise the 800.0 width or 1000.0 width isn't actually used in the svg)
<-SNIP->
> +static int analyze_plot(DBusConnection *bus)
> +{
> + struct unit_times *times;
> + struct boot_times boot;
> + int n, m = 1;
> + double width;
> +
> + n = get_boot_times(bus, &boot);
> + if (n)
> + return n;
> +
> + n = acquire_time_data(bus, ×);
> + if (n<=0)
> + return n;
> +
> + qsort(times, n, sizeof(struct unit_times), compare_unit_start);
> +
> + width = 80 + (scale_x * (boot.firmware_time + boot.finish_time) *
> 0.000001);
[1]
> + if (width < 800.0)
> + width = 800.0;
> +
> + if (boot.firmware_time > boot.loader_time)
> + m++;
> + if (boot.loader_time) {
> + m++;
> + if (width < 1000.0)
> + width = 1000.0;
> + }
> + if (boot.initrd_time)
> + m++;
> + if (boot.kernel_time)
> + m++;
> +
> + for (int i=0; i < n; i++)
> + if (times[i].ixt >= boot.userspace_time && times[i].ixt <=
> boot.finish_time)
> + m++;
> +
> + svg("<?xml version=\"1.0\" standalone=\"no\"?>\n");
> + svg("<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" ");
> + svg("\"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n");
> +
> + svg("<svg width=\"%.0fpx\" height=\"%.0fpx\" version=\"1.1\" ",
[2]
> + 80.0 + (scale_x * (boot.firmware_time +
> boot.finish_time) * 0.000001),
> + 150.0 + (m *scale_y));
> + svg("xmlns=\"http://www.w3.org/2000/svg\">\n\n");
> +
> + /* write some basic info as a comment, including some help */
> + svg("<!-- This file is a systemd-analyze SVG file. It is best
> rendered in a -->\n"
> + "<!-- browser such as Chrome/Chromium, firefox. Other
> applications that -->\n"
> + "<!-- render these files properly but much more slow are
> ImageMagick, -->\n"
> + "<!-- gimp, inkscape, etc.. To display the files on your system,
> just -->\n"
> + "<!-- point your browser to file:///var/log/ and click.
> -->\n\n"
> + "<!-- this plot was generated by systemd-analyze version
> %-16.16s -->\n\n", VERSION);
Also, this could use a few fixes:
* Chrome/Chromium, firefox -> Chrome, Chromium or Firefox
* much more slow -> much slower
* this plot was generated -> This plot was generated
* etc.. -> etc.
<-SNIP->
Thanks,
--
William Giokas | KaiSforza
GnuPG Key: 0xE99A7F0F
Fingerprint: F078 CFF2 45E8 1E72 6D5A 8653 CDF5 E7A5 E99A 7F0F
pgpIcMIEvqfiu.pgp
Description: PGP signature
_______________________________________________ systemd-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/systemd-devel
