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); }
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; }
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); }
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); }