diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2014-02-11 16:32:11 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2014-02-11 16:32:11 +0000 |
commit | 119614137bc074cd704757e8f8e5845383c7f8c1 (patch) | |
tree | 2954b466244828f47ec3b6eaeb78b88e2facc9b2 /src | |
parent | 84faee523650bb8613d67f99777e990a7497bf73 (diff) | |
download | gnunet-119614137bc074cd704757e8f8e5845383c7f8c1.tar.gz gnunet-119614137bc074cd704757e8f8e5845383c7f8c1.zip |
basic logging
Diffstat (limited to 'src')
-rw-r--r-- | src/ats/experiments/set_preference.exp | 2 | ||||
-rw-r--r-- | src/ats/gnunet-ats-solver-eval.c | 68 | ||||
-rw-r--r-- | src/ats/gnunet-ats-solver-eval.h | 13 |
3 files changed, 58 insertions, 25 deletions
diff --git a/src/ats/experiments/set_preference.exp b/src/ats/experiments/set_preference.exp index b49843e4b..f42efdcc5 100644 --- a/src/ats/experiments/set_preference.exp +++ b/src/ats/experiments/set_preference.exp | |||
@@ -37,7 +37,7 @@ op-3-peer-id = 1 | |||
37 | 37 | ||
38 | [episode-1] | 38 | [episode-1] |
39 | # Set delay | 39 | # Set delay |
40 | duration = 5 s | 40 | duration = 1 s |
41 | 41 | ||
42 | op-0-operation = start_set_preference | 42 | op-0-operation = start_set_preference |
43 | op-0-address-id = 0 | 43 | op-0-address-id = 0 |
diff --git a/src/ats/gnunet-ats-solver-eval.c b/src/ats/gnunet-ats-solver-eval.c index afe65d5a1..7eb1638df 100644 --- a/src/ats/gnunet-ats-solver-eval.c +++ b/src/ats/gnunet-ats-solver-eval.c | |||
@@ -60,6 +60,11 @@ static int opt_plot; | |||
60 | */ | 60 | */ |
61 | static int opt_verbose; | 61 | static int opt_verbose; |
62 | 62 | ||
63 | /** | ||
64 | * cmd option -p: print logs | ||
65 | */ | ||
66 | static int opt_print; | ||
67 | |||
63 | static int res; | 68 | static int res; |
64 | 69 | ||
65 | static void | 70 | static void |
@@ -133,14 +138,28 @@ find_address_by_id (struct TestPeer *peer, int aid) | |||
133 | * Logging | 138 | * Logging |
134 | */ | 139 | */ |
135 | 140 | ||
141 | void | ||
142 | GNUNET_ATS_solver_logging_now (struct LoggingHandle *l) | ||
143 | { | ||
144 | struct LoggingTimeStep *lts; | ||
145 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Logging\n"); | ||
146 | |||
147 | lts = GNUNET_new (struct LoggingTimeStep); | ||
148 | lts->timestamp = GNUNET_TIME_absolute_get(); | ||
149 | |||
150 | /* Store logging data here */ | ||
151 | |||
152 | GNUNET_CONTAINER_DLL_insert_tail(l->head, l->tail, lts); | ||
153 | |||
154 | } | ||
155 | |||
136 | static void | 156 | static void |
137 | logging_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 157 | logging_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
138 | { | 158 | { |
139 | struct LoggingHandle *l = cls; | 159 | struct LoggingHandle *l = cls; |
140 | |||
141 | l->logging_task = GNUNET_SCHEDULER_NO_TASK; | 160 | l->logging_task = GNUNET_SCHEDULER_NO_TASK; |
142 | 161 | ||
143 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Logging\n"); | 162 | GNUNET_ATS_solver_logging_now (l); |
144 | 163 | ||
145 | l->logging_task = GNUNET_SCHEDULER_add_delayed (l->log_freq, &logging_task, l); | 164 | l->logging_task = GNUNET_SCHEDULER_add_delayed (l->log_freq, &logging_task, l); |
146 | 165 | ||
@@ -164,12 +183,6 @@ GNUNET_ATS_solver_logging_start (struct GNUNET_TIME_Relative freq) | |||
164 | } | 183 | } |
165 | 184 | ||
166 | void | 185 | void |
167 | GNUNET_ATS_solver_logging_now (struct LoggingHandle *l) | ||
168 | { | ||
169 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Logging\n"); | ||
170 | } | ||
171 | |||
172 | void | ||
173 | GNUNET_ATS_solver_logging_stop (struct LoggingHandle *l) | 186 | GNUNET_ATS_solver_logging_stop (struct LoggingHandle *l) |
174 | { | 187 | { |
175 | if (GNUNET_SCHEDULER_NO_TASK != l->logging_task) | 188 | if (GNUNET_SCHEDULER_NO_TASK != l->logging_task) |
@@ -183,15 +196,32 @@ GNUNET_ATS_solver_logging_stop (struct LoggingHandle *l) | |||
183 | void | 196 | void |
184 | GNUNET_ATS_solver_logging_eval (struct LoggingHandle *l) | 197 | GNUNET_ATS_solver_logging_eval (struct LoggingHandle *l) |
185 | { | 198 | { |
199 | struct LoggingTimeStep *lts; | ||
186 | 200 | ||
201 | for (lts = l->head; NULL != lts; lts = lts->next) | ||
202 | { | ||
203 | fprintf (stderr, "Log %llu: \n", (long long unsigned int) lts->timestamp.abs_value_us); | ||
204 | } | ||
187 | } | 205 | } |
188 | 206 | ||
189 | void | 207 | void |
190 | GNUNET_ATS_solver_logging_free (struct LoggingHandle *l) | 208 | GNUNET_ATS_solver_logging_free (struct LoggingHandle *l) |
191 | { | 209 | { |
210 | struct LoggingTimeStep *cur; | ||
211 | struct LoggingTimeStep *next; | ||
212 | |||
192 | if (GNUNET_SCHEDULER_NO_TASK != l->logging_task) | 213 | if (GNUNET_SCHEDULER_NO_TASK != l->logging_task) |
193 | GNUNET_SCHEDULER_cancel (l->logging_task); | 214 | GNUNET_SCHEDULER_cancel (l->logging_task); |
194 | l->logging_task = GNUNET_SCHEDULER_NO_TASK; | 215 | l->logging_task = GNUNET_SCHEDULER_NO_TASK; |
216 | |||
217 | next = l->head; | ||
218 | while (NULL != (cur = next)) | ||
219 | { | ||
220 | next = cur->next; | ||
221 | GNUNET_CONTAINER_DLL_remove (l->head, l->tail, cur); | ||
222 | GNUNET_free (cur); | ||
223 | } | ||
224 | |||
195 | GNUNET_free (l); | 225 | GNUNET_free (l); |
196 | } | 226 | } |
197 | 227 | ||
@@ -1717,7 +1747,6 @@ enforce_del_address (struct GNUNET_ATS_TEST_Operation *op) | |||
1717 | "Deleting address for unknown peer %u\n", op->peer_id); | 1747 | "Deleting address for unknown peer %u\n", op->peer_id); |
1718 | return; | 1748 | return; |
1719 | } | 1749 | } |
1720 | GNUNET_CONTAINER_DLL_remove (p->addr_head, p->addr_tail, a); | ||
1721 | 1750 | ||
1722 | GNUNET_CONTAINER_multipeermap_remove (sh->addresses, &p->peer_id, ctx.res); | 1751 | GNUNET_CONTAINER_multipeermap_remove (sh->addresses, &p->peer_id, ctx.res); |
1723 | 1752 | ||
@@ -2472,6 +2501,9 @@ done () | |||
2472 | e = NULL; | 2501 | e = NULL; |
2473 | } | 2502 | } |
2474 | 2503 | ||
2504 | if (opt_print) | ||
2505 | GNUNET_ATS_solver_logging_eval (l); | ||
2506 | |||
2475 | if (NULL != l) | 2507 | if (NULL != l) |
2476 | { | 2508 | { |
2477 | GNUNET_ATS_solver_logging_free (l); | 2509 | GNUNET_ATS_solver_logging_free (l); |
@@ -2492,7 +2524,6 @@ done () | |||
2492 | } | 2524 | } |
2493 | GNUNET_free (cur); | 2525 | GNUNET_free (cur); |
2494 | } | 2526 | } |
2495 | |||
2496 | if (NULL != sh) | 2527 | if (NULL != sh) |
2497 | { | 2528 | { |
2498 | GNUNET_ATS_solvers_solver_stop (sh); | 2529 | GNUNET_ATS_solvers_solver_stop (sh); |
@@ -2500,7 +2531,6 @@ done () | |||
2500 | } | 2531 | } |
2501 | /* Shutdown */ | 2532 | /* Shutdown */ |
2502 | end_now(); | 2533 | end_now(); |
2503 | |||
2504 | } | 2534 | } |
2505 | 2535 | ||
2506 | static void | 2536 | static void |
@@ -2512,19 +2542,6 @@ experiment_done_cb (struct Experiment *e, struct GNUNET_TIME_Relative duration,i | |||
2512 | else | 2542 | else |
2513 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Experiment failed \n"); | 2543 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Experiment failed \n"); |
2514 | 2544 | ||
2515 | |||
2516 | /* | ||
2517 | evaluate (duration); | ||
2518 | if (opt_log) | ||
2519 | GNUNET_ATS_TEST_logging_write_to_file(l, opt_exp_file, opt_plot); | ||
2520 | |||
2521 | if (NULL != l) | ||
2522 | { | ||
2523 | GNUNET_ATS_TEST_logging_stop (l); | ||
2524 | GNUNET_ATS_TEST_logging_clean_up (l); | ||
2525 | l = NULL; | ||
2526 | } | ||
2527 | */ | ||
2528 | GNUNET_SCHEDULER_add_now (&done, NULL); | 2545 | GNUNET_SCHEDULER_add_now (&done, NULL); |
2529 | } | 2546 | } |
2530 | 2547 | ||
@@ -2654,6 +2671,9 @@ main (int argc, char *argv[]) | |||
2654 | { 'e', "experiment", NULL, | 2671 | { 'e', "experiment", NULL, |
2655 | gettext_noop ("experiment to use"), | 2672 | gettext_noop ("experiment to use"), |
2656 | 1, &GNUNET_GETOPT_set_one, &opt_verbose}, | 2673 | 1, &GNUNET_GETOPT_set_one, &opt_verbose}, |
2674 | { 'p', "print", NULL, | ||
2675 | gettext_noop ("print logging"), | ||
2676 | 0, &GNUNET_GETOPT_set_one, &opt_print}, | ||
2657 | GNUNET_GETOPT_OPTION_END | 2677 | GNUNET_GETOPT_OPTION_END |
2658 | }; | 2678 | }; |
2659 | 2679 | ||
diff --git a/src/ats/gnunet-ats-solver-eval.h b/src/ats/gnunet-ats-solver-eval.h index 61e3393d7..9098ae7b5 100644 --- a/src/ats/gnunet-ats-solver-eval.h +++ b/src/ats/gnunet-ats-solver-eval.h | |||
@@ -83,6 +83,15 @@ enum GNUNET_ATS_Solvers | |||
83 | }; | 83 | }; |
84 | 84 | ||
85 | 85 | ||
86 | struct LoggingTimeStep | ||
87 | { | ||
88 | struct LoggingTimeStep *prev; | ||
89 | struct LoggingTimeStep *next; | ||
90 | |||
91 | struct GNUNET_TIME_Absolute timestamp; | ||
92 | }; | ||
93 | |||
94 | |||
86 | struct TestPeer | 95 | struct TestPeer |
87 | { | 96 | { |
88 | struct TestPeer *prev; | 97 | struct TestPeer *prev; |
@@ -157,6 +166,10 @@ struct LoggingHandle | |||
157 | { | 166 | { |
158 | GNUNET_SCHEDULER_TaskIdentifier logging_task; | 167 | GNUNET_SCHEDULER_TaskIdentifier logging_task; |
159 | struct GNUNET_TIME_Relative log_freq; | 168 | struct GNUNET_TIME_Relative log_freq; |
169 | |||
170 | struct LoggingTimeStep *head; | ||
171 | |||
172 | struct LoggingTimeStep *tail; | ||
160 | }; | 173 | }; |
161 | 174 | ||
162 | struct Experiment | 175 | struct Experiment |