X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lnet%2Futils%2Flnetconfig%2Fliblnetconfig.c;h=523529b962838b4cb8a801f48e0245af570e2095;hb=7241e68f37962991ef43a6c01b3a83ff67282d88;hp=dc27874fc8e812ea04e43205f2c42616f3b44cf8;hpb=f4e3a8239c520606032aa38f7c114cd9600385f3;p=fs%2Flustre-release.git diff --git a/lnet/utils/lnetconfig/liblnetconfig.c b/lnet/utils/lnetconfig/liblnetconfig.c index dc27874..523529b 100644 --- a/lnet/utils/lnetconfig/liblnetconfig.c +++ b/lnet/utils/lnetconfig/liblnetconfig.c @@ -1626,7 +1626,7 @@ int lustre_lnet_show_net(char *nw, int detail, int seq_no, if (interfaces == NULL) goto out; - for (j = 0; j < LNET_MAX_INTERFACES; j++) { + for (j = 0; j < LNET_NUM_INTERFACES; j++) { if (strlen(ni_data->lic_ni_intf[j]) > 0) { snprintf(str_buf, sizeof(str_buf), "%d", j); @@ -1647,17 +1647,17 @@ int lustre_lnet_show_net(char *nw, int detail, int seq_no, goto out; if (cYAML_create_number(statistics, "send_count", - stats->send_count) + stats->iel_send_count) == NULL) goto out; if (cYAML_create_number(statistics, "recv_count", - stats->recv_count) + stats->iel_recv_count) == NULL) goto out; if (cYAML_create_number(statistics, "drop_count", - stats->drop_count) + stats->iel_drop_count) == NULL) goto out; @@ -2012,7 +2012,7 @@ int lustre_lnet_show_peer(char *knid, int detail, int seq_no, * TODO: This function is changing in a future patch to accommodate * PEER_LIST and proper filtering on any nid of the peer */ - struct lnet_ioctl_peer_cfg *peer_info; + struct lnet_ioctl_peer_cfg peer_info; struct lnet_peer_ni_credit_info *lpni_cri; struct lnet_ioctl_element_stats *lpni_stats; int rc = LUSTRE_CFG_RC_OUT_OF_MEM, ncpt = 0, i = 0, j = 0; @@ -2021,9 +2021,8 @@ int lustre_lnet_show_peer(char *knid, int detail, int seq_no, *first_seq = NULL, *peer_root = NULL, *tmp = NULL; char err_str[LNET_MAX_STR_LEN]; lnet_nid_t prev_primary_nid = LNET_NID_ANY, primary_nid = LNET_NID_ANY; - int data_size = sizeof(*peer_info) + sizeof(*lpni_cri) + - sizeof(*lpni_stats); - char *data = calloc(data_size, 1); + int data_size = sizeof(*lpni_cri) + sizeof(*lpni_stats); + char *data = malloc(data_size); bool new_peer = true; snprintf(err_str, sizeof(err_str), @@ -2032,8 +2031,6 @@ int lustre_lnet_show_peer(char *knid, int detail, int seq_no, if (data == NULL) goto out; - peer_info = (struct lnet_ioctl_peer_cfg *)data; - /* create struct cYAML root object */ root = cYAML_create_object(NULL, NULL); if (root == NULL) @@ -2049,43 +2046,44 @@ int lustre_lnet_show_peer(char *knid, int detail, int seq_no, do { for (i = 0;; i++) { memset(data, 0, data_size); - LIBCFS_IOC_INIT_V2(*peer_info, prcfg_hdr); - peer_info->prcfg_hdr.ioc_len = data_size; - peer_info->prcfg_idx = i; + memset(&peer_info, 0, sizeof(peer_info)); + LIBCFS_IOC_INIT_V2(peer_info, prcfg_hdr); + peer_info.prcfg_hdr.ioc_len = sizeof(peer_info); + peer_info.prcfg_count = i; + peer_info.prcfg_bulk = (void *)data; + peer_info.prcfg_size = data_size; rc = l_ioctl(LNET_DEV_ID, - IOC_LIBCFS_GET_PEER_NI, peer_info); + IOC_LIBCFS_GET_PEER_NI, &peer_info); if (rc != 0) { l_errno = errno; break; } if (primary_nid != LNET_NID_ANY && - primary_nid != peer_info->prcfg_prim_nid) + primary_nid != peer_info.prcfg_prim_nid) continue; - lpni_cri = (struct lnet_peer_ni_credit_info*)peer_info->prcfg_bulk; - lpni_stats = (struct lnet_ioctl_element_stats *) - (peer_info->prcfg_bulk + - sizeof(*lpni_cri)); + lpni_cri = peer_info.prcfg_bulk; + lpni_stats = peer_info.prcfg_bulk + sizeof(*lpni_cri); peer = cYAML_create_seq_item(peer_root); if (peer == NULL) goto out; - if (peer_info->prcfg_prim_nid != prev_primary_nid) { - prev_primary_nid = peer_info->prcfg_prim_nid; + if (peer_info.prcfg_prim_nid != prev_primary_nid) { + prev_primary_nid = peer_info.prcfg_prim_nid; new_peer = true; } if (new_peer) { - lnet_nid_t pnid = peer_info->prcfg_prim_nid; + lnet_nid_t pnid = peer_info.prcfg_prim_nid; if (cYAML_create_string(peer, "primary nid", libcfs_nid2str(pnid)) == NULL) goto out; if (cYAML_create_string(peer, "Multi-Rail", - peer_info->prcfg_mr ? + peer_info.prcfg_mr ? "True" : "False") == NULL) goto out; @@ -2104,7 +2102,7 @@ int lustre_lnet_show_peer(char *knid, int detail, int seq_no, if (cYAML_create_string(peer_ni, "nid", libcfs_nid2str - (peer_info->prcfg_cfg_nid)) + (peer_info.prcfg_cfg_nid)) == NULL) goto out; @@ -2147,17 +2145,17 @@ int lustre_lnet_show_peer(char *knid, int detail, int seq_no, goto out; if (cYAML_create_number(peer_ni, "send_count", - lpni_stats->send_count) + lpni_stats->iel_send_count) == NULL) goto out; if (cYAML_create_number(peer_ni, "recv_count", - lpni_stats->recv_count) + lpni_stats->iel_recv_count) == NULL) goto out; if (cYAML_create_number(peer_ni, "drop_count", - lpni_stats->drop_count) + lpni_stats->iel_drop_count) == NULL) goto out; @@ -3158,46 +3156,3 @@ int lustre_yaml_show(char *f, struct cYAML **show_rc, struct cYAML **err_rc) show_rc, err_rc); } -int lustre_lnet_send_dbg_task(enum lnet_dbg_task dbg_task, - struct lnet_dbg_task_info *dbg_info, - struct cYAML **show_rc, - struct cYAML **err_rc) -{ - struct lnet_ioctl_dbg *dbg; - struct lnet_dbg_task_info *info; - int rc = LUSTRE_CFG_RC_NO_ERR; - char err_str[LNET_MAX_STR_LEN]; - - snprintf(err_str, sizeof(err_str), "\"success\""); - - dbg = calloc(1, sizeof(*dbg) + sizeof(*info)); - if (!dbg) { - snprintf(err_str, sizeof(err_str), "\"out of memory\""); - rc = LUSTRE_CFG_RC_OUT_OF_MEM; - goto out; - } - - info = (struct lnet_dbg_task_info *)dbg->dbg_bulk; - - LIBCFS_IOC_INIT_V2(*dbg, dbg_hdr); - - dbg->dbg_task = dbg_task; - if (dbg_info) - memcpy(info, dbg_info, sizeof(*info)); - - rc = l_ioctl(LNET_DEV_ID, IOC_LIBCFS_DBG, dbg); - if (rc != 0) { - rc = -errno; - snprintf(err_str, - sizeof(err_str), - "\"debug task failed %s\"", strerror(errno)); - goto out; - } - -out: - cYAML_build_error(rc, -1, DBG_CMD, - "debug", err_str, err_rc); - - return rc; -} -