Esempio n. 1
0
File: test3.c Progetto: Tolchi/misc
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;
}
Esempio n. 2
0
File: test4.c Progetto: Tolchi/misc
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;
}
Esempio n. 3
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);
    }
}
Esempio n. 4
0
File: test2.c Progetto: Tolchi/misc
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;
}
Esempio n. 5
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;
}
Esempio n. 6
0
File: test1.c Progetto: Tolchi/misc
int main() {
  tracker_t *t = tracker_new(10,5);
  tracker_free(t);
  return 0;
}
Esempio n. 7
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;
}