Ejemplo n.º 1
0
static
void pscom_extoll_init(void)
{
	psex_debug = pscom.env.debug;
	psex_debug_stream = pscom_debug_stream();

	pscom_env_get_uint(&psex_recvq_size, ENV_EXTOLL_RECVQ_SIZE);

	pscom_env_get_int(&psex_global_sendq, ENV_EXTOLL_GLOBAL_SENDQ);

	if (psex_global_sendq) {
		// One sendq for all connection. Allocate buffers for 1024 connections
		psex_sendq_size = 1024 * pscom_min(psex_sendq_size, psex_recvq_size);
	} else {
		// One sendq for each connection. limit sendq to recvq size.
		psex_sendq_size = pscom_min(psex_sendq_size, psex_recvq_size);
	}
	pscom_env_get_uint(&psex_sendq_size, ENV_EXTOLL_SENDQ_SIZE);

	psex_pending_tokens = psex_pending_tokens_suggestion();
	pscom_env_get_uint(&psex_pending_tokens, ENV_EXTOLL_PENDING_TOKENS);

//	if (!psex_global_sendq && psex_sendq_size == psex_recvq_size) {
//		// Disable event counting:
//		psex_event_count = 0;
//	}
	pscom_env_get_int(&psex_event_count, ENV_EXTOLL_EVENT_CNT);
}
Ejemplo n.º 2
0
static
void pscom_openib_init(void)
{
	psoib_debug = pscom.env.debug;
	psoib_debug_stream = pscom_debug_stream();
	pscom_env_get_str(&psoib_hca, ENV_OPENIB_HCA);
	pscom_env_get_uint(&psoib_port, ENV_OPENIB_PORT);
	pscom_env_get_uint(&psoib_path_mtu, ENV_OPENIB_PATH_MTU);

	pscom_env_get_uint(&psoib_recvq_size, ENV_OPENIB_RECVQ_SIZE);

	pscom_env_get_int(&psoib_global_sendq, ENV_OPENIB_GLOBAL_SENDQ);
	pscom_env_get_uint(&psoib_compq_size, ENV_OPENIB_COMPQ_SIZE);
	if (psoib_global_sendq) {
		// One sendq for all connection. limit sendq to compq size.
		psoib_sendq_size = psoib_compq_size;
	} else {
		// One sendq for each connection. limit sendq to recvq size.
		psoib_sendq_size = pscom_min(psoib_sendq_size, psoib_recvq_size);
	}
	pscom_env_get_uint(&psoib_sendq_size, ENV_OPENIB_SENDQ_SIZE);

	psoib_pending_tokens = psoib_pending_tokens_suggestion();
	pscom_env_get_uint(&psoib_pending_tokens, ENV_OPENIB_PENDING_TOKENS);

//	if (!psoib_global_sendq && psoib_sendq_size == psoib_recvq_size) {
//		// Disable event counting:
//		psoib_event_count = 0;
//	}
	pscom_env_get_int(&psoib_event_count, ENV_OPENIB_EVENT_CNT);
	pscom_env_get_int(&psoib_ignore_wrong_opcodes, ENV_OPENIB_IGNORE_WRONG_OPCODES);
	pscom_env_get_int(&psoib_lid_offset, ENV_OPENIB_LID_OFFSET);

	INIT_LIST_HEAD(&pscom_cq_poll.next);
	pscom_cq_poll.do_read = pscom_poll_cq;

}
Ejemplo n.º 3
0
static
void pscom_openib_init(FILE *peer)
{
	psoib_info_msg_t lmsg, rmsg;
	int rc;
	pscom.env.debug = arg_verbose;
	pscom_env_get_int(&pscom.env.debug, ENV_DEBUG);
	psoib_debug = pscom.env.debug;

	pscom_env_get_str(&psoib_hca, ENV_OPENIB_HCA);
	pscom_env_get_uint(&psoib_port, ENV_OPENIB_PORT);
	pscom_env_get_uint(&psoib_path_mtu, ENV_OPENIB_PATH_MTU);
	pscom_env_get_uint(&psoib_sendq_size, ENV_OPENIB_SENDQ_SIZE);
	pscom_env_get_uint(&psoib_recvq_size, ENV_OPENIB_RECVQ_SIZE);
	pscom_env_get_uint(&psoib_compq_size, ENV_OPENIB_COMPQ_SIZE);
	psoib_pending_tokens = psoib_pending_tokens_suggestion();
	pscom_env_get_uint(&psoib_pending_tokens, ENV_OPENIB_PENDING_TOKENS);

	rc = psoib_init();
	psoib_rc_check("psoib_init()", rc);

	mcon = psoib_con_create();
	assert(mcon);

	rc = psoib_con_init(mcon, NULL, NULL);
	psoib_rc_check("psoib_con_init()", rc);

	psoib_con_get_info_msg(mcon, &lmsg);

	if (is_client) {
		info_write(peer, &lmsg);
		info_read(peer, &rmsg);
	} else {
		info_read(peer, &rmsg);
		info_write(peer, &lmsg);
	}

	rc = psoib_con_connect(mcon, &rmsg);
	psoib_rc_check("psoib_con_connect()", rc);
}
Ejemplo n.º 4
0
void pscom_env_init(void)
{
	pscom_pslib_read_config(ENV_CONFIG_FILES);

	pscom_debug_set_filename(pscom_env_get(ENV_DEBUG_OUT), 1);
	if (!pscom.env.debug) { // only set debug once!
		pscom_env_get_int(&pscom.env.debug, ENV_DEBUG);
	}

	if (pscom_pslib_available) {
		pscom_env_get_str(&pscom.env.info, ENV_INFO);
		if (pscom.env.info) pscom_info_connect(pscom.env.info);
	}

	DPRINT(1,"# Version(PSCOM): %s (%s)", __DATE__, VC_VERSION);
	pscom_env_get_uint(&pscom.env.so_sndbuf, ENV_SO_SNDBUF);
	pscom_env_get_uint(&pscom.env.so_rcvbuf, ENV_SO_RCVBUF);
	pscom_env_get_int(&pscom.env.tcp_nodelay, ENV_TCP_NODELAY);
	pscom_env_get_uint(&pscom.env.tcp_backlog, ENV_TCP_BACKLOG);

	// pscom_env_get_int(&env.nobgthread, ENV_NOBGTHREAD);
	pscom_env_get_int(&pscom.env.sched_yield, ENV_SCHED_YIELD);
	pscom_env_get_int(&pscom.env.unexpected_receives, ENV_UNEXPECTED_RECEIVES);
	pscom_env_get_uint(&pscom.env.rendezvous_size, ENV_RENDEZVOUS);

	if (pscom.env.rendezvous_size != (unsigned)~0)
		pscom.env.rendezvous_size_shm = pscom.env.rendezvous_size;
	pscom_env_get_uint(&pscom.env.rendezvous_size_shm, ENV_RENDEZVOUS_SHM);

	if (pscom.env.rendezvous_size != (unsigned)~0)
		pscom.env.rendezvous_size_dapl = pscom.env.rendezvous_size;
	pscom_env_get_uint(&pscom.env.rendezvous_size_dapl, ENV_RENDEZVOUS_DAPL);

	if (pscom.env.rendezvous_size != (unsigned)~0)
		pscom.env.rendezvous_size_elan = pscom.env.rendezvous_size;
	pscom_env_get_uint(&pscom.env.rendezvous_size_elan, ENV_RENDEZVOUS_ELAN);

	if (pscom.env.rendezvous_size != (unsigned)~0)
		pscom.env.rendezvous_size_extoll = pscom.env.rendezvous_size;
	pscom_env_get_uint(&pscom.env.rendezvous_size_extoll, ENV_RENDEZVOUS_EXTOLL);

	if (pscom.env.rendezvous_size != (unsigned)~0)
		pscom.env.rendezvous_size_velo = pscom.env.rendezvous_size;
	pscom_env_get_uint(&pscom.env.rendezvous_size_velo, ENV_RENDEZVOUS_VELO);

	if (pscom.env.rendezvous_size != (unsigned)~0)
		pscom.env.rendezvous_size_openib = pscom.env.rendezvous_size;
	pscom_env_get_uint(&pscom.env.rendezvous_size_openib, ENV_RENDEZVOUS_OPENIB);

	pscom_env_get_int(&pscom.env.sigquit, ENV_SIGQUIT);
	pscom_env_get_uint(&pscom.env.readahead, ENV_READAHEAD);
	pscom_env_get_uint(&pscom.env.retry, ENV_RETRY);
	pscom.env.readahead = pscom_max(pscom.env.readahead, sizeof(pscom_header_net_t));

	pscom_env_get_str(&pscom.env.network, ENV_NETWORK);
	pscom_env_get_dir(&pscom.env.plugindir, ENV_PLUGINDIR);

	pscom_env_get_int(&pscom.env.debug_req, ENV_DEBUG_REQ);

	if (pscom.env.debug >= 2) pscom.env.debug_stats = 1;
	pscom_env_get_int(&pscom.env.debug_stats, ENV_DEBUG_STATS);
	pscom_env_get_uint(&pscom.env.iprobe_count, ENV_IPROBE_COUNT);
}