Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Branch: master
Commits on Oct 2, 2012
Commits on Aug 23, 2012
  1. v1.20

    - Fix some more int-float conversion specifiers.
    - Max CPUs: increase to 16.
    - Scaling: adjust for scale_x/scale_y being floats.
    - nanosleep: capture errno if interrupted.
    - Fractional math - fix this up for 32bit systems.
    - Signals: HUP -> write graph and exit.
    - Allow fractional logging frequencies.
    - the e_fd variable was assumed to be static, otherwise you not
     only leak an fd per sample, but in theory it is garbage content as well
    - entropy: don't log this much debug output.
    - s/freq/hz/
    - freq: test for freq==0
    - entropy: log and graph the entropy_avail procfs file.
Commits on Aug 7, 2012
  1. Max CPUs: increase to 16.

    Apart from server systems, consumer HW is maxing at 12
    cores right now, so, cap at 16.
  2. Scaling: adjust for scale_x/scale_y being floats.

    Now that Hz can be very small, we want to reduce scale-x/y
    to sensible scales, otherwise the graphs get huge. This means
    setting scale-x to values < 1.0 - and thus float values.
    This touches on a ton of positioning references that need to
    convert from %i to %f.
Commits on Aug 6, 2012
  1. nanosleep: capture errno if interrupted.

    If interrupted by a HUP signal, nanosleep will return EINTR
    and so we must capture this condition and terminate the
    mainloop, instead of errorring out.
  2. Fractional math - fix this up for 32bit systems.

    On 32bit systems, long overflows during these calculations
    and causes nanosleep() to error out. Fix this up by
    simplifying the calculations and making sure we pass
    the parameters into the exact right type for nanosleep().
  3. Signals: HUP -> write graph and exit.

    I'm removing the TERM/INT signal handling, as I want those
    to just terminate the application right away.
    HUP is a more suited signal name for tricking the logger into
    writing the graph out, so change the sighandler to that.
    Eventually, I want to add a USR1 handler that causes bootchart
    to plot and reset all it's data, but that's not a small patch.
  4. Allow fractional logging frequencies.

    This patch allows you to specify a float value for hz. The net
    effect is that you can increase the logging interval to values
    larger than 1.0 seconds, which is useful if you want to use
    the profiling code to profile a larger timeframe.
    I tested this with 0.1, 0.5, 22.5 values, and seems to work
    as expected.
Commits on Jul 16, 2012
  1. @fenrus75

    the e_fd variable was assumed to be static, otherwise you not only le…

    fenrus75 authored committed
    …ak an fd per sample, but in theory it is garbage content as well
  2. entropy: don't log this much rebug output.

    Probably don't need it, and we can invert the data back.
Commits on Jul 15, 2012
  1. v1.19

  2. s/freq/hz/

  3. freq: test for freq==0

    This would result in a floating point exception.
Commits on Jun 22, 2012
  1. Reference git location.

Commits on Jun 2, 2012
  1. Tag and release v1.18

  2. Fix: Need to allocate (samples + 1)

    If we don't, we'll overwrite data at the array length, and a segfault
    happens at the last sample recording.
Commits on May 26, 2012
  1. memory: don't statically allocate MAXSAMPLES for ps_sched_struct.

    The allocation for the array ps_sched_sctruct in ps_struct is
    about 200k for MAXSAMPLES, but we most likely never will allocate
    anywhere near that much. Dynamically allocating this is a nice
    reduction in memory usage and memset() work.
Commits on May 24, 2012
  1. -Wunused cleanup.

Commits on May 23, 2012
  1. Rewrite the main data structure to be dynamically allocated.

    The 'ps' data array used to be a flat, stack allocated array of
    65k entries of each 200k each. This makes no sense anymore, and
    just puts us at the wrong end of VM tricks.
    Instead, we malloc() a per-process struct ps_struct of about
    200k whenever needed.
    Because we now don't have a linear array anymore, we need to do
    pointer juggling to walk the entries as an array (->next_ps), and
    as a process tree (->childred, ->next). This makes walking and
    maintaining the tree of processes a bit more complex.
    All in all however the code cleans up a bit as we're now just
    walking linked lists, one way or another.
Commits on May 20, 2012
  1. @koenkooi

    lower autoconf prerequisite to 2.68

    koenkooi authored committed
    Signed-off-by: Koen Kooi <>
  2. Convert to autotools.

Commits on Mar 28, 2012
  1. Rev to v1.16

Commits on Mar 27, 2012
Commits on Mar 15, 2012
  1. Rev to 1.15.

  2. Small README updates

  3. Kernel init thread plotting: initcall_debug=1 data from dmesg put int…

    …o a nice plot.
    This addition basically replaces Arjan van der Ven's '' script which can
    be found in the scripts/ folder of the kernel sources. This implementation is highly
    simplified and intended to show the basic relations between kernel threads taking
    time to initialize.
    To enable the initcall graph, just add 'initcall_debug=1' on the kernel commandline
    additionally to the commandline code needed to start bootchartd.
Commits on Mar 12, 2012
  1. Off-by-one here.

Something went wrong with that request. Please try again.