int main() { tracker_t *t = tracker_new(10,5); tracker_hit(t,"1",when); tracker_hit(t,"1",when); tracker_hit(t,"2",when); tracker_hit(t,"3",when); tracker_hit(t,"4",when); tracker_hit(t,"5",when); tracker_hit(t,"6",when); tracker_hit(t,"7",when); tracker_hit(t,"8",when); tracker_hit(t,"9",when); tracker_hit(t,"10",when); show_tracker(t); show_tracker_top(t); tracker_hit(t,"11",when); show_tracker(t); show_tracker_top(t); tracker_hit(t,"2",when); show_tracker(t); show_tracker_top(t); tracker_hit(t,"12",when); show_tracker(t); show_tracker_top(t); tracker_free(t); return 0; }
int main() { int i; tracker_t *t = tracker_new(10,5); for(i=0;i<10;i++) tracker_hit(t,"1",when); for(i=0;i<9;i++) tracker_hit(t,"2",when); for(i=0;i<8;i++) tracker_hit(t,"3",when); for(i=0;i<7;i++) tracker_hit(t,"4",when); for(i=0;i<6;i++) tracker_hit(t,"5",when); for(i=0;i<5;i++) tracker_hit(t,"6",when); for(i=0;i<4;i++) tracker_hit(t,"7",when); for(i=0;i<3;i++) tracker_hit(t,"8",when); for(i=0;i<2;i++) tracker_hit(t,"9",when); for(i=0;i<1;i++) tracker_hit(t,"10",when); show_tracker(t); show_tracker_top(t); for(i=0;i<10;i++) tracker_hit(t,"11",when); show_tracker(t); show_tracker_top(t); tracker_hit(t,"12",when); show_tracker(t); show_tracker_top(t); tracker_free(t); return 0; }
void collector_reset (Collector *collector) { /* Disable the counters so that we won't track * the activity of tracker_free()/tracker_new() * * They will still record fork/mmap/etc. so * we can keep an accurate log of process creation */ if (collector->counters) { d_print ("disable counters\n"); disable_counters (collector); } if (collector->tracker) { tracker_free (collector->tracker); collector->tracker = tracker_new (); } collector->n_samples = 0; collector->prev_samples = 0; g_get_current_time (&collector->latest_reset); if (collector->counters) { d_print ("enable counters\n"); enable_counters (collector); } }
int main() { tracker_t *t = tracker_new(10,5); tracker_hit(t,"1",when); show_tracker(t); tracker_hit(t,"1",when); show_tracker(t); tracker_hit(t,"2",when); show_tracker(t); tracker_hit(t,"3",when); tracker_hit(t,"4",when); tracker_hit(t,"5",when); tracker_hit(t,"6",when); tracker_hit(t,"7",when); tracker_hit(t,"8",when); tracker_hit(t,"9",when); tracker_hit(t,"10",when); show_tracker(t); // should induce expiration/slot re-use of 1: tracker_hit(t,"11",when); show_tracker(t); // add a hit to slot 2 to move it to the newest position tracker_hit(t,"2",when); show_tracker(t); // now this should expire slot 3 tracker_hit(t,"12",when); show_tracker(t); tracker_free(t); return 0; }
gboolean collector_start (Collector *collector, pid_t pid, GError **err) { int n_cpus = get_n_cpus (); int i; counter_t *output; if (!collector->tracker) collector->tracker = tracker_new (); output = NULL; for (i = 0; i < n_cpus; ++i) { counter_t *counter = counter_new (collector, pid, i, output, err); if (!counter) { GList *list; for (list = collector->counters; list != NULL; list = list->next) counter_free (list->data); collector->tracker = NULL; return FALSE; } collector->counters = g_list_append (collector->counters, counter); if (!output) output = counter; } enable_counters (collector); return TRUE; }
int main() { tracker_t *t = tracker_new(10,5); tracker_free(t); return 0; }
Host* host_new(GQuark id, gchar* hostname, gchar* ipHint, gchar* geocodeHint, gchar* typeHint, guint64 requestedBWDownKiBps, guint64 requestedBWUpKiBps, guint cpuFrequency, gint cpuThreshold, gint cpuPrecision, guint nodeSeed, SimulationTime heartbeatInterval, GLogLevelFlags heartbeatLogLevel, gchar* heartbeatLogInfo, GLogLevelFlags logLevel, gboolean logPcap, gchar* pcapDir, gchar* qdisc, guint64 receiveBufferSize, gboolean autotuneReceiveBuffer, guint64 sendBufferSize, gboolean autotuneSendBuffer, guint64 interfaceReceiveLength) { Host* host = g_new0(Host, 1); MAGIC_INIT(host); host->id = id; host->name = g_strdup(hostname); host->random = random_new(nodeSeed); /* get unique virtual address identifiers for each network interface */ Address* loopbackAddress = dns_register(worker_getDNS(), host->id, host->name, "127.0.0.1"); Address* ethernetAddress = dns_register(worker_getDNS(), host->id, host->name, ipHint); /* connect to topology and get the default bandwidth */ guint64 bwDownKiBps = 0, bwUpKiBps = 0; topology_attach(worker_getTopology(), ethernetAddress, host->random, ipHint, geocodeHint, typeHint, &bwDownKiBps, &bwUpKiBps); /* prefer assigned bandwidth if available */ if(requestedBWDownKiBps) { bwDownKiBps = requestedBWDownKiBps; } if(requestedBWUpKiBps) { bwUpKiBps = requestedBWUpKiBps; } /* virtual addresses and interfaces for managing network I/O */ NetworkInterface* loopback = networkinterface_new(loopbackAddress, G_MAXUINT32, G_MAXUINT32, logPcap, pcapDir, qdisc, interfaceReceiveLength); NetworkInterface* ethernet = networkinterface_new(ethernetAddress, bwDownKiBps, bwUpKiBps, logPcap, pcapDir, qdisc, interfaceReceiveLength); host->interfaces = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, (GDestroyNotify) networkinterface_free); g_hash_table_replace(host->interfaces, GUINT_TO_POINTER((guint)networkinterface_getIPAddress(ethernet)), ethernet); g_hash_table_replace(host->interfaces, GUINT_TO_POINTER((guint)htonl(INADDR_LOOPBACK)), loopback); host->defaultInterface = ethernet; /* thread-level event communication with other nodes */ g_mutex_init(&(host->lock)); host->events = eventqueue_new(); host->availableDescriptors = g_queue_new(); host->descriptorHandleCounter = MIN_DESCRIPTOR; /* virtual descriptor management */ host->descriptors = g_hash_table_new_full(g_int_hash, g_int_equal, NULL, descriptor_unref); host->receiveBufferSize = receiveBufferSize; host->sendBufferSize = sendBufferSize; host->autotuneReceiveBuffer = autotuneReceiveBuffer; host->autotuneSendBuffer = autotuneSendBuffer; host->shadowToOSHandleMap = g_hash_table_new(g_direct_hash, g_direct_equal); host->osToShadowHandleMap = g_hash_table_new(g_direct_hash, g_direct_equal); host->unixPathToPortMap = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL); /* applications this node will run */ host->applications = g_queue_new(); host->cpu = cpu_new(cpuFrequency, cpuThreshold, cpuPrecision); host->tracker = tracker_new(heartbeatInterval, heartbeatLogLevel, heartbeatLogInfo); host->logLevel = logLevel; host->logPcap = logPcap; host->pcapDir = pcapDir; message("Created Host '%s', ip %s, " "%"G_GUINT64_FORMAT" bwUpKiBps, %"G_GUINT64_FORMAT" bwDownKiBps, %"G_GUINT64_FORMAT" initSockSendBufSize, %"G_GUINT64_FORMAT" initSockRecvBufSize, " "%u cpuFrequency, %i cpuThreshold, %i cpuPrecision, %u seed", g_quark_to_string(host->id), networkinterface_getIPName(host->defaultInterface), bwUpKiBps, bwDownKiBps, sendBufferSize, receiveBufferSize, cpuFrequency, cpuThreshold, cpuPrecision, nodeSeed); return host; }