예제 #1
0
extern void acct_gather_infiniband_g_conf_set(s_p_hashtbl_t *tbl)
{
	if (acct_gather_infiniband_init() < 0)
		return;

	(*(ops.conf_set))(tbl);
}
예제 #2
0
extern void acct_gather_infiniband_g_conf_values(void *data)
{
	if (acct_gather_infiniband_init() < 0)
		return;

	(*(ops.conf_values))(data);
}
예제 #3
0
extern void acct_gather_infiniband_g_conf_options(s_p_options_t **full_options,
						  int *full_options_cnt)
{
	if (acct_gather_infiniband_init() < 0)
		return;
	(*(ops.conf_options))(full_options, full_options_cnt);
}
예제 #4
0
extern int acct_gather_infiniband_startpoll(uint32_t frequency)
{
	int retval = SLURM_SUCCESS;
	pthread_attr_t attr;

	if (acct_gather_infiniband_init() < 0)
		return SLURM_ERROR;

	if (!acct_shutdown) {
		error("acct_gather_infiniband_startpoll: "
		      "poll already started!");
		return retval;
	}

	acct_shutdown = false;

	freq = frequency;

	if (frequency == 0) {   /* don't want dynamic monitoring? */
		debug2("acct_gather_infiniband dynamic logging disabled");
		return retval;
	}

	/* create polling thread */
	slurm_attr_init(&attr);
	if (pthread_create(&watch_node_thread_id, &attr, &_watch_node, NULL)) {
		debug("acct_gather_infiniband failed to create _watch_node "
		      "thread: %m");
	} else
		debug3("acct_gather_infiniband dynamic logging enabled");
	slurm_attr_destroy(&attr);

	return retval;
}