The following changes since commit dc5bfbb227f1af83adf0b686d147b7ae2107c144: Merge in crc32c-intel probe (2013-04-10 22:23:40 +0200) are available in the git repository at: git://git.kernel.dk/fio.git master Huadong Liu (1): check output_format before calling show_idle_prof_stats() Jens Axboe (367): Merge branch 'master' into gfio Move init code info libfio.c Fix Makefile for gfio build Merge branch 'master' into gfio Rename job files Various GUI updates Move client structure into client.h Add GUI probe support Update GUI to attempt to graphically handle ETA output gfio: fix error handling in send_job_files() More gui changes Add more job info Don't update CR fields Add support for client timed out ops Move connection details to separate dialog box Terminate clients when 'Disconnect' is clicked Clear UI/progress bar on disconnect/quit Start of support for auto-starting the backend GUI fixes Add Preferences dialog Add preferences help tooltips Add new net command for text logging Convert net commands in the generic command handler Store specific client ops in the fio_client structure Pass in client for thread/group status op Unify cli latency display Add client references stat: move calc of latencies into show function gfio: start of proper end results data display End results fixes Add completion percentiles to results output gfio: Change some labels to entries and add bw stats to final output gfio: fixup bw display Move stat arrays into show/calc func gfio: add latency bucket display gfio: add os resource usage and io depth display gfio: move bandwidth stats gfio: correct depths view gfio: ensure all command opcode handlers are properly gdk thread protected gfio: use a window for results, not a dialog box gfio: put results from same job file into a notebook gfio: add log viewer gfio: add disk utilization output to end results gfio: better handling of connect/disconnect button gfio: make log window scrollable gfio: don't use gtk_combo_box_text gfio: align log text to the left gfio: enable tree view grid lines gfio: connect buton fix server: fixup bug in sending jobs_eta command Add my copyright to gfio.c gfio: first attempt at actually automatically starting backend server gfio: clear progress bar on job end gfio: Add graphs for read/write bandwidth and read/write IOPS gfio: add *.ini as fio job file filter parser: relax restriction on postfix ranges gfio: be a bit more clever on when to auto-start backend or not graph: use unsigned ints gfio: add font selection and resize original window gfio: update about dialog gfio: add license gfio: remove boxes between graphs gfio: remove a few debug printfs gfio: change color of graphs gfio: add missing disk utilization stat to end results gfio: don't use gtk_dialog_get_content_area() gfio: make the end results window a scrolled one gfio: improve stop handling client/server: store/convert/send jobs_eta->nr_threads too Abstract out the thread_options structure Add thread_options_pack structure client/server: pass back packed thread_options in add_job() server: rename CMD_RUN to CMD_SERVER_START example: bump netio example to 100g transfer Separate the act of adding and starting a job Add basic cconv test gfio: ignore group stats for now gfio: start of support for notebooked jobs gfio: only start one client net handler gfio: handle clients individually client: return errno on connection failure client: return more errors server: return real error from fio_send_data() gfio: more error reporting gfio: hold a reference to the fio_client structure gfio: make notebooks scrollable if there are too many gfio: make results notebook scrollable too gfio: better handle multiple threads/processes in a job client: send probe from fio_client_connect() gfio: add preference entry for number of values to keep in graph client: make ETA interval poll period configurage in fio_client_ops gfio: add eta msec interval preference gfio: move debug preferences last gfio: use current value of graph limit as the default graph: drop more than 1 entry, if we are more than 1 above the limit Only send job options once gfio: pack per-job info in a multitext structure Group options into categories gfio: prevent multitext crash on invalid update gfio: add close-tab functionality gfio: add support for making job menu visible or not gfio: improve Job menu gfio: prep for recent files gfio: fix wrong pointer being passed into file_open() Makefile: properly clean all objects on make clean gfio: fix crash when pushing 'start job' and no client connected Merge branch 'gfio' of ssh://brick.kernel.dk/data/git/fio into gfio gfio: allow close with ctrl-w if there are no clients gfio: add support for graph tooltips Client reference fixes gfio: remove widgets from struct gui/gui_entry that we don't really use Add gfio TODO file gfio: change Job->Connect menu item string gfio: add recently opened files to File menu Merge branch 'master' into gfio Rename t0001 regression job to have .fio file extension gfio: Add Drag'n drop support gfio: update TODO gfio: fix leak of ge->job_files gfio: fix complaint about unsupported type for recent files gfio: graphing updates gfio: terminate and destroy clients before calling gtk_main_quit() graph: move graphs a bit to the left, now we don't use Y axis labels client: unify cmd handling ops client/server: pass type of client to the backend iolog: note type of log gfio: Add support for sending logs over the network server: convert iolog in place instead of copy allocating it server: memset job_add pdu before filling and sending gfio: patch around widget destroy crash gfio: fix double alloc of action_group gfio: start of results window menu support gfio: remove stale comment, hiding menu items DOES work now server: add fio_sendv_data() gfio: debug dump on iolog receive server: add vectored fio_send_cmd_ext_pdu() client/server: zlib error code fixup gfio: include name of iolog in gdio_client_iolog() server: add missing IOLOG command to text list gfio: add View -> Results menu item gfio: add latency bucket bar graph to end results graph: fix bar graph min/max displays gfio: fix attempt to add multiple entries to disk util frame Add thread number ID to appropriate network commands gfio: move disk utilization to a private tab in per-client results gfio: move File->Open above File->Close gfio: allow different tooltips for a button depending on state gfio: reload ge->gc after clicking connect force the file open dialog gfio: remove ->job_added, it's only ever set gfio: fixup adding/showing of end results graph: tighten x-axis tooltip hit gfio: put disk utilization tab in a scrolled window gfio: add bs display gfio: include direct/buffered IO type in the iotype field gfio: start of splitting up the source a bit gfio: use ctrl-d for connect/disconnect gfio: start of options view and edit graph: use 0 as the floor for the line graph gfio: move more code to ghelpers.c Merge branch 'master' into gfio gfio: demo of how to inherit option values into edit window gfio: inherit and show more options correctly in edit job gfio: correctly input stored FIO_OPT_STR_STORE options parse: ensure that an option has a category Add categories for missing options Add FIO_OPT_G_IO_ENG category gfio: sync range spin buttons in edit view Allow options to specify intervals Add hint on whether to hide a sub option if a parent isn't set gfio: initial support for hiding child options gfio: make option hiding actually work Merge branch 'master' into gfio Merge branch 'master' into gfio gfio: set clat/lat bucket graph Y title server: make client connections fork off backend: privatize nr_thread/nr_process gfio: improve option edit Categorize a few more options gfio: add support for FIO_OPT_STR_MULTI options gfio: option improvements Add support for inverse options gfio: fill default options on new job options: group cgroups and jobs options: more option grouping gfio: apply inverse options to buffered/direct options: more groupings cpu: move cpuload/cpuchunks options into private engine option space goptions: block gtk signal handlers instead of hacking around them Merge branch 'gfio' of ssh://brick.kernel.dk/data/git/fio into gfio gfio: kill ge on widget destroy goptions: free opt types on exit from edit options view goptions: better support for FIO_OPT_STR_VAL goptions: ensure that FIO_OPT_STR_VAL doesn't exceed max multiplier goptions: don't emit change signals during setup options: add ->hide_on_set goptions: enable combo box hiding goptions: use glib n-ary tree for option dependencies goptions: remember to mark option index for FIO_OPT_STR_VAL gfio: lessen use of main_ui directly server: use passed in sk in send functions client: don't leak file descriptor on exit gfio: update for handling files, connections, states gfio: add gerror.c for reporting errors gfio: split some parts into gclient.c gfio: fixup spurious editor indent gfio: fix gc leak gfio: use glib hash for tab lookup gfio: set notebook label to base filename graph: stop matching tooltips if X diff is too large Move rbtree into lib/ graph: switch tooltip lookups to being range based in a prio tree graph: remove debug printf graph: fix for unitialized graph_value nodes graph: clear prio root iter on extra loop graph: fix crash on alias in prio tree graph: cleanup tooltip alias handling graph: bump prio end value by ytick delta, if all zeroes graph: yet one tooltip tweaking graph: remove unnecessary float multiplier Make fio include the git version in the version output graph: prio tree alias handling graph: fix missing else graph: fix finding tooltips from label 1+ gfio: hide graph if all values are zero Fixes for 32-bit compile gfio: leave notebook entry as the file name graph: return opaque graph_label_t for each label added Fix reversal of IOPS and BW graphs graph: indentation fixup gfio: improve and remember font selection server: idle a bit more of we are not expecting work client: use eta msec as the poll interval gfio: start of per-job option edit gfio: add per-job option view goptions: don't override gopt dep tree by mistake goptions: use gopt->gjv for option hiding goptions: handle changing of options in job edit goptions: fix check button storaage for FIO_OPT_STR_MULTI gfio: use G_OBJECT(), not GTK_OBJECT() gcompat: provide backwards compatible functions for older gtk versions goptions: let destroy handler free changed options too goptions: ensure that gopt_str_multi options get freed gcompat: get closer to working with gtk3 gfio: use appropriate gtk signal for draw/expose of graphs gcompat: gtk_widget_get_window() for below 2.14 gcompat: gtk_widget_set_can_focus() for below 2.18 Add named log level printing: whitespace damage White space spring cleaning server: add support for updating job options gfio: start of being able to update options server: fix bug in going from thread_number to thread client: remove command reply after calling into client update_job gfio: change job option view backend: ensure that server side releases/frees shm segment on exit Start the process of making options more gfio friendly Make lockmem a per job option Add o->lockmem to conversion functions server: include number of CPUs in probe reply options: move ioprio/ioprio_class into thread_options space options: get rid of more .cb option usage we don't need Free disk util on exit, not on stats display Define SIGUSR1 to inform fio to dump run stats while continuing to run options: group tiobench options together Fixup link of t/ieee754 test Merge branch 'master' into gfio Merge branch 'master' into gfio Fix repeated link of fio graph: add shading for line graphs graph: tighten up tickmark lines a bit Ensure that init depends on FIO-VERSION-FILE graph: use rounded graph connections Fix for non-git versions Get rid of fio_version.h Enlarge probe version field gfio: use light yellow as graph background Merge branch 'master' into gfio gfio: set option category for create_only Merge branch 'master' into gfio Merge branch 'master' into gfio Merge branch 'master' into gfio eta: fix bug where t_rate[] should me m_rate[] example: add SSD steady state test case client: support per-client job files README: update for newer client job file argument format Merge branch 'master' into gfio Merge branch 'master' into gfio server: include new options, bump server rev Merge branch 'master' into gfio Add error_dump to option category client/server: update for trim addition gfio: add trim UI support gfio: color code the iops/bw fields gfio: kill debug printf() gfio: color parse stack removal gfio: add and colorize graphs on main page, too gfio: make 'light yellow' color a little lighter Merge branch 'master' into gfio gfio: clear graphs for repeated runs on same connection Merge branch 'master' into gfio gfio: add error option group Merge branch 'gfio' of ssh://brick.kernel.dk/data/git/fio into gfio Fix bad check for terse version format 4 Merge branch 'master' into gfio Merge branch 'master' into gfio server: properly reset state_number in fio_reset_state() Merge branch 'master' into gfio Merge branch 'master' into gfio gfio: bad merge in Makefile gfio: fix Makefile typo for cleaning gfio objs gfio: add check for unnecessary g_thread_init() call options: add category/group to random_generator/random_distribution Merge branch 'master' into gfio Merge branch 'master' into gfio Merge branch 'master' into gfio graph: fix bogus used initialized warning Merge branch 'master' into gfio configure: add --enable-gfio configure: add help configure: show help for bad option Merge branch 'master' into gfio Merge branch 'master' into gfio configure: add check for minimum required GTK version (2.18) Merge branch 'master' into gfio Merge branch 'master' into gfio Merge branch 'master' into gfio t/axmap: add pre/post bit set checks Merge branch 'master' into gfio Merge branch 'master' into gfio Merge branch 'master' into gfio Merge branch 'master' into gfio Fix merge error configure: check for zlib Merge branch 'master' into gfio server: bump protocol version gfio: update new options for gfio opt format gfio: add support for FIO_OPT_INT options with posval options: make unit_base be posval[] based parse: add posval support to FIO_OPT_INT Merge branch 'master' into gfio gfio: add option group/category to filename_format parse: catch all options without a group/category set parse: set invalid group on option with no group set Add group/category to numa/mem node options configure: gfio wording Merge branch 'master' into gfio Make lockmem a per job option ioengine: import whitespace changes Move init code to libfio Rename job files backend: merge in td->o to o-> thread_main() change Make nr_thread/nr_process private to backend init: kill unused mlock_size iolog: note type of log Make io_sample word size agnostic Move t/jobs/ to .fio format to_kmg() -> fio_uint_to_kmg() Merge branch 'gfio' into gfio-int client/server: pass je->rate[] and je->iops[] over the net client/server: pass ->unit_base properly client: move jobs_eta to the end of client_eta net: fix double setting of option category libaio: fix double setting of option category Get rid of cast between enums Fix a few 4.8 extra anal warnings README: update Makefile: clean $(FIO_OBJS) too Stephen M. Cameron (52): fio: make client operations pluggable fio: add minimal gui program fio: add send job and quit buttons to gui fio: factor out endian_check fio: factor out fio initialization code fio: link fio code with gui code fio: add placeholder gui client ops fio: make gui actually do something fio: capture thread status display fio: make the gui display thread status fio: make gui status update in timely fashion fio: Use a progress bar instead of a label fio: factor out FIO_NET_PORT fio: add hostname, port, and address type (ipv4, ipv6, or socket) to gui fio: add job file to gui temporarily fio: construct options from gui fio: make gui capture text ops fio: work on widget alignment fio: work on textview alignment gfio: Add mini library to draw bar graphs and line graphs gfio: make graph background white gfio: make empty graph show grid lines, not "No good data" gfio: add units to x-axis labels and remove redundant y-axis labels gfio: cap graph data count gfio: shorten graph tick lables so x000000000 becomes gfio: get rid of invisible data gfio: fix problem with graph finding data range. gfio: right justify y-axis labels gfio: allow graph to stretch or shrink as window expands or contracts gfio: fix a bug in the y-axis label shortening algorithm gfio: move graph area a bit to the right gfio: Add y-axis labels gfio: do not mix K M and G when shortening axis labels gfio: fix discrepancies between graph header and implementation gfio: add graph axis unit change notification callbacks gfio: use graph axis unit change notification callbacks gfio: add comments to interface of graph mini library gfio: encapsulate x- and y-offsets into graph library gfio: fix tickmark shortening for zero special case gfio: add extra space to the graphs at the edges gfio: fix hiding of menu entries gfio: only parse white color once gfio: add completion percentile bar graph gfio: clear stale widget pointers on dialog destruction gfio: fix crash on exit gfio: make latency buckets expand to window width gfio: make io depths expand to window width gfio: make completion percentiles boxes expand to container width gfio: make completion percentiles graphs expand to window width graph: factor out cairo text drawing helpers gfio: Add "print" option for results page. cairo_text_helpers: fix left justified text GFIO-TODO | 52 + HOWTO | 11 +- Makefile | 55 +- README | 20 +- backend.c | 147 +- cairo_text_helpers.c | 85 + cairo_text_helpers.h | 18 + cconv.c | 420 +++++ client.c | 665 ++++++--- client.h | 144 ++ configure | 78 +- debug.h | 1 + engines/cpu.c | 53 +- engines/libaio.c | 3 +- engines/net.c | 4 + eta.c | 41 +- examples/{1mbs_clients => 1mbs_clients.fio} | 0 examples/{aio-read => aio-read.fio} | 0 examples/{cpuio => cpuio.fio} | 0 .../{disk-zone-profile => disk-zone-profile.fio} | 0 examples/{e4defrag => e4defrag.fio} | 0 examples/{e4defrag2 => e4defrag2.fio} | 0 examples/{enospc-pressure => enospc-pressure.fio} | 0 examples/{falloc => falloc.fio} | 0 examples/{flow => flow.fio} | 0 examples/{fsx => fsx.fio} | 0 .../{fusion-aw-sync.ini => fusion-aw-sync.fio} | 0 ...ccess-server => iometer-file-access-server.fio} | 0 examples/{netio => netio.fio} | 2 +- examples/{null => null.fio} | 0 examples/{numa => numa.fio} | 0 examples/{rdmaio-client => rdmaio-client.fio} | 0 examples/{rdmaio-server => rdmaio-server.fio} | 0 examples/{ssd-test => ssd-test.fio} | 0 examples/{surface-scan => surface-scan.fio} | 0 .../{tiobench-example => tiobench-example.fio} | 0 examples/{zipf => zipf.fio} | 0 fio.c | 70 +- fio.h | 36 +- gclient.c | 1401 ++++++++++++++++ gclient.h | 18 + gcompat.c | 59 + gcompat.h | 46 + gerror.c | 74 + gerror.h | 7 + gettime.c | 2 +- gfio.c | 1751 ++++++++++++++++++++ gfio.h | 179 ++ ghelpers.c | 201 +++ ghelpers.h | 35 + goptions.c | 1637 ++++++++++++++++++ goptions.h | 8 + graph.c | 1033 ++++++++++++ graph.h | 99 ++ init.c | 189 ++- io_ddir.h | 9 + ioengine.h | 9 + ioengines.c | 8 +- iolog.c | 26 +- iolog.h | 22 +- lib/prio_tree.c | 465 ++++++ lib/prio_tree.h | 90 + libfio.c | 76 +- log.c | 15 +- log.h | 9 + memory.c | 52 +- options.c | 211 +-- options.h | 7 + os/os-linux.h | 31 +- os/os.h | 4 +- parse.c | 35 +- parse.h | 2 + printing.c | 139 ++ printing.h | 6 + profile.c | 4 +- profiles/tiobench.c | 5 + server.c | 750 +++++++-- server.h | 125 +- stat.c | 144 +- stat.h | 25 +- t/jobs/{t0001-52c58027 => t0001-52c58027.fio} | 0 thread_options.h | 217 +++- tickmarks.c | 147 ++ tickmarks.h | 12 + 84 files changed, 10282 insertions(+), 1007 deletions(-) create mode 100644 GFIO-TODO create mode 100644 cairo_text_helpers.c create mode 100644 cairo_text_helpers.h create mode 100644 cconv.c create mode 100644 client.h rename examples/{1mbs_clients => 1mbs_clients.fio} (100%) rename examples/{aio-read => aio-read.fio} (100%) rename examples/{cpuio => cpuio.fio} (100%) rename examples/{disk-zone-profile => disk-zone-profile.fio} (100%) rename examples/{e4defrag => e4defrag.fio} (100%) rename examples/{e4defrag2 => e4defrag2.fio} (100%) rename examples/{enospc-pressure => enospc-pressure.fio} (100%) rename examples/{falloc => falloc.fio} (100%) rename examples/{flow => flow.fio} (100%) rename examples/{fsx => fsx.fio} (100%) rename examples/{fusion-aw-sync.ini => fusion-aw-sync.fio} (100%) rename examples/{iometer-file-access-server => iometer-file-access-server.fio} (100%) rename examples/{netio => netio.fio} (97%) rename examples/{null => null.fio} (100%) rename examples/{numa => numa.fio} (100%) rename examples/{rdmaio-client => rdmaio-client.fio} (100%) rename examples/{rdmaio-server => rdmaio-server.fio} (100%) rename examples/{ssd-test => ssd-test.fio} (100%) rename examples/{surface-scan => surface-scan.fio} (100%) rename examples/{tiobench-example => tiobench-example.fio} (100%) rename examples/{zipf => zipf.fio} (100%) create mode 100644 gclient.c create mode 100644 gclient.h create mode 100644 gcompat.c create mode 100644 gcompat.h create mode 100644 gerror.c create mode 100644 gerror.h create mode 100644 gfio.c create mode 100644 gfio.h create mode 100644 ghelpers.c create mode 100644 ghelpers.h create mode 100644 goptions.c create mode 100644 goptions.h create mode 100644 graph.c create mode 100644 graph.h create mode 100644 lib/prio_tree.c create mode 100644 lib/prio_tree.h create mode 100644 printing.c create mode 100644 printing.h rename t/jobs/{t0001-52c58027 => t0001-52c58027.fio} (100%) create mode 100644 tickmarks.c create mode 100644 tickmarks.h --- Diff of recent changes: Too large to post -- To unsubscribe from this list: send the line "unsubscribe fio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html