![]() |
GNUnet
0.11.x
|
ats benchmark: logging for performance tests More...
Go to the source code of this file.
Data Structures | |
struct | PartnerLoggingTimestep |
A single logging time step for a partner. More... | |
struct | PeerLoggingTimestep |
A single logging time step for a peer. More... | |
struct | LoggingPeer |
Entry for a benchmark peer. More... | |
struct | LoggingHandle |
Macros | |
#define | THROUGHPUT_TEMPLATE |
#define | RTT_TEMPLATE |
#define | BW_TEMPLATE |
#define | LOG_ITEMS_TIME 2 |
#define | LOG_ITEMS_PER_PEER 17 |
#define | LOG_ITEM_BYTES_SENT 1 |
#define | LOG_ITEM_MSGS_SENT 2 |
#define | LOG_ITEM_THROUGHPUT_SENT 3 |
#define | LOG_ITEM_BYTES_RECV 4 |
#define | LOG_ITEM_MSGS_RECV 5 |
#define | LOG_ITEM_THROUGHPUT_RECV 6 |
#define | LOG_ITEM_APP_RTT 7 |
#define | LOG_ITEM_ATS_BW_IN 8 |
#define | LOG_ITEM_ATS_BW_OUT 9 |
#define | LOG_ITEM_ATS_COSTS_LAN 10 |
#define | LOG_ITEM_ATS_WAN 11 |
#define | LOG_ITEM_ATS_WLAN 12 |
#define | LOG_ITEM_ATS_DELAY 13 |
#define | LOG_ITEM_ATS_DISTANCE 14 |
#define | LOG_ITEM_ATS_NETWORKTYPE 15 |
#define | LOG_ITEM_ATS_UTIL_UP 16 |
#define | LOG_ITEM_ATS_UTIL_DOWN 17 |
Functions | |
static void | write_throughput_gnuplot_script (char *fn, struct LoggingPeer *lp, char **fs, int slaves) |
static void | write_rtt_gnuplot_script (char *fn, struct LoggingPeer *lp, char **fs, int slaves) |
static void | write_bw_gnuplot_script (char *fn, struct LoggingPeer *lp, char **fs, int slaves) |
void | GNUNET_ATS_TEST_logging_write_to_file (struct LoggingHandle *l, const char *experiment_name, int plots) |
Write logging data to file. More... | |
void | GNUNET_ATS_TEST_logging_now (struct LoggingHandle *l) |
Log all data now. More... | |
static void | collect_log_task (void *cls) |
void | GNUNET_ATS_TEST_logging_stop (struct LoggingHandle *l) |
Stop logging. More... | |
void | GNUNET_ATS_TEST_logging_clean_up (struct LoggingHandle *l) |
Clean up logging data. More... | |
struct LoggingHandle * | GNUNET_ATS_TEST_logging_start (struct GNUNET_TIME_Relative log_frequency, const char *testname, struct BenchmarkPeer *masters, int num_masters, int num_slaves, int verbose) |
Start logging. More... | |
ats benchmark: logging for performance tests
Definition in file ats-testing-log.c.
#define THROUGHPUT_TEMPLATE |
Definition at line 30 of file ats-testing-log.c.
Referenced by write_throughput_gnuplot_script().
#define RTT_TEMPLATE |
Definition at line 37 of file ats-testing-log.c.
Referenced by write_rtt_gnuplot_script().
#define BW_TEMPLATE |
Definition at line 44 of file ats-testing-log.c.
Referenced by write_bw_gnuplot_script().
#define LOG_ITEMS_TIME 2 |
Definition at line 51 of file ats-testing-log.c.
Referenced by write_bw_gnuplot_script(), write_rtt_gnuplot_script(), and write_throughput_gnuplot_script().
#define LOG_ITEMS_PER_PEER 17 |
Definition at line 52 of file ats-testing-log.c.
#define LOG_ITEM_BYTES_SENT 1 |
Definition at line 54 of file ats-testing-log.c.
#define LOG_ITEM_MSGS_SENT 2 |
Definition at line 55 of file ats-testing-log.c.
#define LOG_ITEM_THROUGHPUT_SENT 3 |
Definition at line 56 of file ats-testing-log.c.
Referenced by write_throughput_gnuplot_script().
#define LOG_ITEM_BYTES_RECV 4 |
Definition at line 57 of file ats-testing-log.c.
#define LOG_ITEM_MSGS_RECV 5 |
Definition at line 58 of file ats-testing-log.c.
#define LOG_ITEM_THROUGHPUT_RECV 6 |
Definition at line 59 of file ats-testing-log.c.
Referenced by write_throughput_gnuplot_script().
#define LOG_ITEM_APP_RTT 7 |
Definition at line 60 of file ats-testing-log.c.
Referenced by write_rtt_gnuplot_script().
#define LOG_ITEM_ATS_BW_IN 8 |
Definition at line 61 of file ats-testing-log.c.
Referenced by write_bw_gnuplot_script().
#define LOG_ITEM_ATS_BW_OUT 9 |
Definition at line 62 of file ats-testing-log.c.
Referenced by write_bw_gnuplot_script().
#define LOG_ITEM_ATS_COSTS_LAN 10 |
Definition at line 63 of file ats-testing-log.c.
#define LOG_ITEM_ATS_WAN 11 |
Definition at line 64 of file ats-testing-log.c.
#define LOG_ITEM_ATS_WLAN 12 |
Definition at line 65 of file ats-testing-log.c.
#define LOG_ITEM_ATS_DELAY 13 |
Definition at line 66 of file ats-testing-log.c.
#define LOG_ITEM_ATS_DISTANCE 14 |
Definition at line 67 of file ats-testing-log.c.
#define LOG_ITEM_ATS_NETWORKTYPE 15 |
Definition at line 68 of file ats-testing-log.c.
#define LOG_ITEM_ATS_UTIL_UP 16 |
Definition at line 69 of file ats-testing-log.c.
#define LOG_ITEM_ATS_UTIL_DOWN 17 |
Definition at line 70 of file ats-testing-log.c.
|
static |
Definition at line 250 of file ats-testing-log.c.
References data, BenchmarkPartner::dest, removetrailingwhitespace::f, GNUNET_asprintf(), GNUNET_DISK_file_close(), GNUNET_DISK_file_open(), GNUNET_DISK_file_write(), GNUNET_DISK_OPEN_CREATE, GNUNET_DISK_OPEN_WRITE, GNUNET_DISK_PERM_USER_EXEC, GNUNET_DISK_PERM_USER_READ, GNUNET_DISK_PERM_USER_WRITE, GNUNET_ERROR_TYPE_ERROR, GNUNET_ERROR_TYPE_INFO, GNUNET_free, GNUNET_log, GNUNET_SYSERR, LOG_ITEM_THROUGHPUT_RECV, LOG_ITEM_THROUGHPUT_SENT, LOG_ITEMS_TIME, BenchmarkPeer::no, BenchmarkPeer::partners, peer, LoggingPeer::peer, and THROUGHPUT_TEMPLATE.
Referenced by GNUNET_ATS_TEST_logging_write_to_file().
|
static |
Definition at line 325 of file ats-testing-log.c.
References data, BenchmarkPartner::dest, removetrailingwhitespace::f, GNUNET_asprintf(), GNUNET_DISK_file_close(), GNUNET_DISK_file_open(), GNUNET_DISK_file_write(), GNUNET_DISK_OPEN_CREATE, GNUNET_DISK_OPEN_WRITE, GNUNET_DISK_PERM_USER_EXEC, GNUNET_DISK_PERM_USER_READ, GNUNET_DISK_PERM_USER_WRITE, GNUNET_ERROR_TYPE_ERROR, GNUNET_ERROR_TYPE_INFO, GNUNET_free, GNUNET_log, GNUNET_SYSERR, LOG_ITEM_APP_RTT, LOG_ITEMS_TIME, BenchmarkPeer::no, BenchmarkPeer::partners, peer, LoggingPeer::peer, and RTT_TEMPLATE.
Referenced by GNUNET_ATS_TEST_logging_write_to_file().
|
static |
Definition at line 384 of file ats-testing-log.c.
References BW_TEMPLATE, data, removetrailingwhitespace::f, GNUNET_asprintf(), GNUNET_DISK_file_close(), GNUNET_DISK_file_open(), GNUNET_DISK_file_write(), GNUNET_DISK_OPEN_CREATE, GNUNET_DISK_OPEN_WRITE, GNUNET_DISK_PERM_USER_EXEC, GNUNET_DISK_PERM_USER_READ, GNUNET_DISK_PERM_USER_WRITE, GNUNET_ERROR_TYPE_ERROR, GNUNET_ERROR_TYPE_INFO, GNUNET_free, GNUNET_log, GNUNET_SYSERR, LOG_ITEM_ATS_BW_IN, LOG_ITEM_ATS_BW_OUT, LOG_ITEMS_TIME, BenchmarkPeer::no, peer, and LoggingPeer::peer.
Referenced by GNUNET_ATS_TEST_logging_write_to_file().
void GNUNET_ATS_TEST_logging_write_to_file | ( | struct LoggingHandle * | l, |
const char * | test_name, | ||
int | plots | ||
) |
Write logging data to file.
l | logging handle to use |
test_name | name of the current test |
plots | create gnuplots: GNUNET_YES or GNUNET_NO |
Definition at line 447 of file ats-testing-log.c.
References GNUNET_TIME_Absolute::abs_value_us, PartnerLoggingTimestep::app_rtt, PartnerLoggingTimestep::ats_delay, PartnerLoggingTimestep::ats_distance, PartnerLoggingTimestep::ats_network_type, PartnerLoggingTimestep::ats_utilization_in, PartnerLoggingTimestep::ats_utilization_out, PartnerLoggingTimestep::bandwidth_in, PartnerLoggingTimestep::bandwidth_out, data, removetrailingwhitespace::f, GNUNET_asprintf(), GNUNET_break, GNUNET_DISK_file_close(), GNUNET_DISK_file_open(), GNUNET_DISK_file_write(), GNUNET_DISK_OPEN_CREATE, GNUNET_DISK_OPEN_WRITE, GNUNET_DISK_PERM_USER_READ, GNUNET_DISK_PERM_USER_WRITE, GNUNET_ERROR_TYPE_ERROR, GNUNET_ERROR_TYPE_INFO, GNUNET_free, GNUNET_log, GNUNET_log_strerror_file, GNUNET_OK, GNUNET_SYSERR, GNUNET_TIME_absolute_get(), GNUNET_TIME_absolute_get_difference(), GNUNET_YES, LoggingPeer::head, LoggingHandle::lp, LoggingHandle::name, PeerLoggingTimestep::next, BenchmarkPeer::no, LoggingHandle::num_masters, BenchmarkPeer::num_partners, LoggingHandle::num_slaves, LoggingPeer::peer, PartnerLoggingTimestep::pref_bandwidth, PartnerLoggingTimestep::pref_delay, GNUNET_TIME_Relative::rel_value_us, PartnerLoggingTimestep::slave, PeerLoggingTimestep::slaves_log, LoggingPeer::start, PartnerLoggingTimestep::throughput_recv, PartnerLoggingTimestep::throughput_sent, PeerLoggingTimestep::timestamp, PartnerLoggingTimestep::total_bytes_received, PeerLoggingTimestep::total_bytes_received, PartnerLoggingTimestep::total_bytes_sent, PeerLoggingTimestep::total_bytes_sent, PartnerLoggingTimestep::total_messages_received, PeerLoggingTimestep::total_messages_received, PartnerLoggingTimestep::total_messages_sent, PeerLoggingTimestep::total_messages_sent, PeerLoggingTimestep::total_throughput_recv, PeerLoggingTimestep::total_throughput_send, LoggingHandle::verbose, write_bw_gnuplot_script(), write_rtt_gnuplot_script(), and write_throughput_gnuplot_script().
Referenced by experiment_done_cb().
void GNUNET_ATS_TEST_logging_now | ( | struct LoggingHandle * | l | ) |
Log all data now.
l | logging handle to use |
Definition at line 677 of file ats-testing-log.c.
References PartnerLoggingTimestep::app_rtt, PartnerLoggingTimestep::ats_delay, PartnerLoggingTimestep::ats_distance, PartnerLoggingTimestep::ats_network_type, PartnerLoggingTimestep::ats_utilization_in, PartnerLoggingTimestep::ats_utilization_out, PartnerLoggingTimestep::bandwidth_in, BenchmarkPartner::bandwidth_in, PartnerLoggingTimestep::bandwidth_out, BenchmarkPartner::bandwidth_out, BenchmarkPartner::bytes_received, BenchmarkPartner::bytes_sent, GNUNET_ATS_Properties::delay, BenchmarkPartner::dest, GNUNET_ATS_Properties::distance, GNUNET_CONTAINER_DLL_insert_tail, GNUNET_ERROR_TYPE_DEBUG, GNUNET_ERROR_TYPE_ERROR, GNUNET_ERROR_TYPE_INFO, GNUNET_log, GNUNET_malloc, GNUNET_new, GNUNET_TIME_absolute_get(), GNUNET_TIME_absolute_get_difference(), GNUNET_TIME_UNIT_SECONDS, GNUNET_YES, LoggingPeer::head, LoggingHandle::lp, BenchmarkPartner::messages_received, BenchmarkPartner::messages_sent, BenchmarkPeer::no, LoggingHandle::num_masters, BenchmarkPeer::num_partners, p, BenchmarkPeer::partners, LoggingPeer::peer, PartnerLoggingTimestep::pref_bandwidth, BenchmarkPartner::pref_bandwidth, PartnerLoggingTimestep::pref_delay, BenchmarkPartner::pref_delay, PeerLoggingTimestep::prev, BenchmarkPartner::props, GNUNET_TIME_Relative::rel_value_us, LoggingHandle::running, GNUNET_ATS_Properties::scope, PartnerLoggingTimestep::slave, PeerLoggingTimestep::slaves_log, LoggingPeer::start, LoggingPeer::tail, PartnerLoggingTimestep::throughput_recv, PartnerLoggingTimestep::throughput_sent, PeerLoggingTimestep::timestamp, PartnerLoggingTimestep::total_app_rtt, BenchmarkPartner::total_app_rtt, PartnerLoggingTimestep::total_bytes_received, PeerLoggingTimestep::total_bytes_received, BenchmarkPeer::total_bytes_received, PartnerLoggingTimestep::total_bytes_sent, PeerLoggingTimestep::total_bytes_sent, BenchmarkPeer::total_bytes_sent, PartnerLoggingTimestep::total_messages_received, PeerLoggingTimestep::total_messages_received, BenchmarkPeer::total_messages_received, PartnerLoggingTimestep::total_messages_sent, PeerLoggingTimestep::total_messages_sent, BenchmarkPeer::total_messages_sent, PeerLoggingTimestep::total_throughput_recv, PeerLoggingTimestep::total_throughput_send, GNUNET_ATS_Properties::utilization_out, and LoggingHandle::verbose.
Referenced by collect_log_task().
|
static |
Definition at line 868 of file ats-testing-log.c.
References LoggingHandle::frequency, GNUNET_ATS_TEST_logging_now(), GNUNET_SCHEDULER_add_delayed(), l, and LoggingHandle::log_task.
Referenced by GNUNET_ATS_TEST_logging_start().
void GNUNET_ATS_TEST_logging_stop | ( | struct LoggingHandle * | l | ) |
Stop logging.
l | the logging handle |
Definition at line 886 of file ats-testing-log.c.
References _, GNUNET_ERROR_TYPE_INFO, GNUNET_log, GNUNET_NO, GNUNET_SCHEDULER_cancel(), GNUNET_YES, LoggingHandle::log_task, and LoggingHandle::running.
Referenced by do_shutdown(), experiment_done_cb(), and GNUNET_ATS_TEST_logging_clean_up().
void GNUNET_ATS_TEST_logging_clean_up | ( | struct LoggingHandle * | l | ) |
Clean up logging data.
Stop logging.
l | the logging handle |
Definition at line 909 of file ats-testing-log.c.
References GNUNET_ATS_TEST_logging_stop(), GNUNET_CONTAINER_DLL_remove, GNUNET_free, GNUNET_YES, LoggingPeer::head, LoggingHandle::lp, LoggingHandle::num_masters, LoggingHandle::running, PeerLoggingTimestep::slaves_log, and LoggingPeer::tail.
Referenced by do_shutdown().
struct LoggingHandle* GNUNET_ATS_TEST_logging_start | ( | struct GNUNET_TIME_Relative | log_frequency, |
const char * | testname, | ||
struct BenchmarkPeer * | masters, | ||
int | num_masters, | ||
int | num_slaves, | ||
int | verbose | ||
) |
Start logging.
log_frequency | the logging frequency |
testname | the testname |
masters | the master peers used for benchmarking |
num_masters | the number of master peers |
num_slaves | the number of slave peers |
verbose | verbose logging |
Definition at line 944 of file ats-testing-log.c.
References _, collect_log_task(), LoggingHandle::frequency, GNUNET_ERROR_TYPE_INFO, GNUNET_log, GNUNET_malloc, GNUNET_new, GNUNET_SCHEDULER_add_now(), GNUNET_TIME_absolute_get(), GNUNET_YES, l, LoggingHandle::log_task, LoggingHandle::lp, LoggingHandle::name, LoggingHandle::num_masters, LoggingHandle::num_slaves, LoggingPeer::peer, LoggingHandle::running, LoggingPeer::start, verbose, and LoggingHandle::verbose.
Referenced by topology_setup_done().