diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2014-02-11 08:08:37 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2014-02-11 08:08:37 +0000 |
commit | 97484d04c2ae1deb5e95c4472977b2333ce55b60 (patch) | |
tree | c1e1fa69e653528d662018da157ffb4ba6bdb2a2 /src | |
parent | 0af4aedc3acedf4bbe5d1878b6ac7744f85bf0b7 (diff) | |
download | gnunet-97484d04c2ae1deb5e95c4472977b2333ce55b60.tar.gz gnunet-97484d04c2ae1deb5e95c4472977b2333ce55b60.zip |
logging task
Diffstat (limited to 'src')
-rw-r--r-- | src/ats/experiments/example.exp | 2 | ||||
-rw-r--r-- | src/ats/gnunet-ats-solver-eval.c | 93 | ||||
-rw-r--r-- | src/ats/gnunet-ats-solver-eval.h | 7 |
3 files changed, 90 insertions, 12 deletions
diff --git a/src/ats/experiments/example.exp b/src/ats/experiments/example.exp index 22cb9328f..289a3701b 100644 --- a/src/ats/experiments/example.exp +++ b/src/ats/experiments/example.exp | |||
@@ -3,7 +3,7 @@ | |||
3 | masters = 1 | 3 | masters = 1 |
4 | slaves = 2 | 4 | slaves = 2 |
5 | max_duration = 15 s | 5 | max_duration = 15 s |
6 | log_freq = 100 ms | 6 | log_freq = 1000 ms |
7 | cfg_file = gnunet_ats_sim_default.conf | 7 | cfg_file = gnunet_ats_sim_default.conf |
8 | 8 | ||
9 | [episode-0] | 9 | [episode-0] |
diff --git a/src/ats/gnunet-ats-solver-eval.c b/src/ats/gnunet-ats-solver-eval.c index b5c57bb94..57d5f7582 100644 --- a/src/ats/gnunet-ats-solver-eval.c +++ b/src/ats/gnunet-ats-solver-eval.c | |||
@@ -32,6 +32,8 @@ | |||
32 | 32 | ||
33 | static struct Experiment *e; | 33 | static struct Experiment *e; |
34 | 34 | ||
35 | static struct LoggingHandle *l; | ||
36 | |||
35 | static struct GNUNET_ATS_TESTING_SolverHandle *sh; | 37 | static struct GNUNET_ATS_TESTING_SolverHandle *sh; |
36 | 38 | ||
37 | /** | 39 | /** |
@@ -80,6 +82,72 @@ print_generator_type (enum GeneratorType g) | |||
80 | } | 82 | } |
81 | 83 | ||
82 | /** | 84 | /** |
85 | * Logging | ||
86 | */ | ||
87 | |||
88 | static void | ||
89 | logging_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
90 | { | ||
91 | struct LoggingHandle *l = cls; | ||
92 | |||
93 | l->logging_task = GNUNET_SCHEDULER_NO_TASK; | ||
94 | |||
95 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Logging\n"); | ||
96 | |||
97 | l->logging_task = GNUNET_SCHEDULER_add_delayed (l->log_freq, &logging_task, l); | ||
98 | |||
99 | } | ||
100 | |||
101 | struct LoggingHandle * | ||
102 | GNUNET_ATS_solver_logging_start (struct GNUNET_TIME_Relative freq) | ||
103 | { | ||
104 | struct LoggingHandle *l; | ||
105 | l = GNUNET_new (struct LoggingHandle); | ||
106 | |||
107 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Start logging every %s\n", | ||
108 | GNUNET_STRINGS_relative_time_to_string(freq, GNUNET_NO)); | ||
109 | |||
110 | /* Iterate over peers */ | ||
111 | |||
112 | l->log_freq = freq; | ||
113 | l->logging_task = GNUNET_SCHEDULER_add_now (&logging_task, l); | ||
114 | |||
115 | return l; | ||
116 | } | ||
117 | |||
118 | void | ||
119 | GNUNET_ATS_solver_logging_now (struct LoggingHandle *l) | ||
120 | { | ||
121 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Logging\n"); | ||
122 | } | ||
123 | |||
124 | void | ||
125 | GNUNET_ATS_solver_logging_stop (struct LoggingHandle *l) | ||
126 | { | ||
127 | if (GNUNET_SCHEDULER_NO_TASK != l->logging_task) | ||
128 | GNUNET_SCHEDULER_cancel (l->logging_task); | ||
129 | |||
130 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Stop logging\n"); | ||
131 | |||
132 | l->logging_task = GNUNET_SCHEDULER_NO_TASK; | ||
133 | } | ||
134 | |||
135 | void | ||
136 | GNUNET_ATS_solver_logging_eval (struct LoggingHandle *l) | ||
137 | { | ||
138 | |||
139 | } | ||
140 | |||
141 | void | ||
142 | GNUNET_ATS_solver_logging_free (struct LoggingHandle *l) | ||
143 | { | ||
144 | if (GNUNET_SCHEDULER_NO_TASK != l->logging_task) | ||
145 | GNUNET_SCHEDULER_cancel (l->logging_task); | ||
146 | l->logging_task = GNUNET_SCHEDULER_NO_TASK; | ||
147 | GNUNET_free (l); | ||
148 | } | ||
149 | |||
150 | /** | ||
83 | * Property Generators | 151 | * Property Generators |
84 | */ | 152 | */ |
85 | 153 | ||
@@ -145,8 +213,7 @@ get_property (struct PropertyGenerator *pg) | |||
145 | 213 | ||
146 | 214 | ||
147 | static void | 215 | static void |
148 | set_prop_task (void *cls, | 216 | set_prop_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
149 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
150 | { | 217 | { |
151 | struct PropertyGenerator *pg = cls; | 218 | struct PropertyGenerator *pg = cls; |
152 | double pref_value; | 219 | double pref_value; |
@@ -1725,9 +1792,6 @@ enforce_start_preference (struct GNUNET_ATS_TEST_Operation *op) | |||
1725 | GNUNET_free (pg); | 1792 | GNUNET_free (pg); |
1726 | } | 1793 | } |
1727 | 1794 | ||
1728 | fprintf (stderr, "ENFORECE: %s, %u\n", print_generator_type (op->gen_type), | ||
1729 | op->base_rate); | ||
1730 | |||
1731 | GNUNET_ATS_solver_generate_preferences_start (op->peer_id, | 1795 | GNUNET_ATS_solver_generate_preferences_start (op->peer_id, |
1732 | op->address_id, | 1796 | op->address_id, |
1733 | op->gen_type, | 1797 | op->gen_type, |
@@ -2333,8 +2397,18 @@ done () | |||
2333 | { | 2397 | { |
2334 | /* Clean up experiment */ | 2398 | /* Clean up experiment */ |
2335 | GNUNET_ATS_solver_generate_preferences_stop_all (); | 2399 | GNUNET_ATS_solver_generate_preferences_stop_all (); |
2336 | GNUNET_ATS_solvers_experimentation_stop (e); | 2400 | |
2337 | e = NULL; | 2401 | if (NULL != e) |
2402 | { | ||
2403 | GNUNET_ATS_solvers_experimentation_stop (e); | ||
2404 | e = NULL; | ||
2405 | } | ||
2406 | |||
2407 | if (NULL != l) | ||
2408 | { | ||
2409 | GNUNET_ATS_solver_logging_free (l); | ||
2410 | l = NULL; | ||
2411 | } | ||
2338 | 2412 | ||
2339 | /* Shutdown */ | 2413 | /* Shutdown */ |
2340 | end_now(); | 2414 | end_now(); |
@@ -2351,7 +2425,7 @@ experiment_done_cb (struct Experiment *e, struct GNUNET_TIME_Relative duration,i | |||
2351 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Experiment failed \n"); | 2425 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Experiment failed \n"); |
2352 | 2426 | ||
2353 | /* Stop logging */ | 2427 | /* Stop logging */ |
2354 | // GNUNET_ATS_TEST_logging_stop (l); | 2428 | GNUNET_ATS_solver_logging_stop (l); |
2355 | 2429 | ||
2356 | /* Stop traffic generation */ | 2430 | /* Stop traffic generation */ |
2357 | // GNUNET_ATS_TEST_generate_traffic_stop_all(); | 2431 | // GNUNET_ATS_TEST_generate_traffic_stop_all(); |
@@ -2452,7 +2526,6 @@ run (void *cls, char * const *args, const char *cfgfile, | |||
2452 | return; | 2526 | return; |
2453 | } | 2527 | } |
2454 | 2528 | ||
2455 | |||
2456 | /* load solver */ | 2529 | /* load solver */ |
2457 | sh = GNUNET_ATS_solvers_solver_start (solver); | 2530 | sh = GNUNET_ATS_solvers_solver_start (solver); |
2458 | if (NULL == sh) | 2531 | if (NULL == sh) |
@@ -2464,7 +2537,7 @@ run (void *cls, char * const *args, const char *cfgfile, | |||
2464 | } | 2537 | } |
2465 | 2538 | ||
2466 | /* start logging */ | 2539 | /* start logging */ |
2467 | 2540 | l = GNUNET_ATS_solver_logging_start (e->log_freq); | |
2468 | 2541 | ||
2469 | /* run experiment */ | 2542 | /* run experiment */ |
2470 | GNUNET_ATS_solvers_experimentation_run (e, episode_done_cb, | 2543 | GNUNET_ATS_solvers_experimentation_run (e, episode_done_cb, |
diff --git a/src/ats/gnunet-ats-solver-eval.h b/src/ats/gnunet-ats-solver-eval.h index 007118dde..ca79e9602 100644 --- a/src/ats/gnunet-ats-solver-eval.h +++ b/src/ats/gnunet-ats-solver-eval.h | |||
@@ -82,7 +82,7 @@ struct GNUNET_ATS_TEST_Operation | |||
82 | struct GNUNET_TIME_Relative frequency; | 82 | struct GNUNET_TIME_Relative frequency; |
83 | 83 | ||
84 | enum OperationType type; | 84 | enum OperationType type; |
85 | enum GeneratorType tg_type; | 85 | enum GeneratorType gen_type; |
86 | enum GNUNET_ATS_PreferenceKind pref_type; | 86 | enum GNUNET_ATS_PreferenceKind pref_type; |
87 | enum GNUNET_ATS_Property prop_type; | 87 | enum GNUNET_ATS_Property prop_type; |
88 | }; | 88 | }; |
@@ -97,6 +97,11 @@ struct Episode | |||
97 | struct GNUNET_ATS_TEST_Operation *tail; | 97 | struct GNUNET_ATS_TEST_Operation *tail; |
98 | }; | 98 | }; |
99 | 99 | ||
100 | struct LoggingHandle | ||
101 | { | ||
102 | GNUNET_SCHEDULER_TaskIdentifier logging_task; | ||
103 | struct GNUNET_TIME_Relative log_freq; | ||
104 | }; | ||
100 | 105 | ||
101 | struct Experiment | 106 | struct Experiment |
102 | { | 107 | { |