Uncovered lines in src/mpi/romio/adio/ad_nfs/ad_nfs_read.c.gcov 18: -: 13: ADIO_Offset offset, ADIO_Status *status, int *error_code) 19: function ADIOI_NFS_ReadContig called 0 returned 0% blocks executed 0% 20: #####: 14:{ 21: #####: 15: int err=-1, datatype_size, len; 22: -: 16: static char myname[] = "ADIOI_NFS_READCONTIG"; 23: -: 17: 24: #####: 18: MPI_Type_size(datatype, &datatype_size); 25: call 0 never executed 26: #####: 19: len = datatype_size * count; 27: -: 20: 28: #####: 21: if (file_ptr_type == ADIO_EXPLICIT_OFFSET) { 29: branch 0 never executed 30: branch 1 never executed 31: #####: 22: if (fd->fp_sys_posn != offset) { 35: -: 24: MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL ); 36: -: 25:#endif 37: #####: 26: lseek(fd->fd_sys, offset, SEEK_SET); 41: -: 29:#endif 42: -: 30: } 43: #####: 31: if (fd->atomicity) 44: branch 0 never executed 45: branch 1 never executed 46: #####: 32: ADIOI_WRITE_LOCK(fd, offset, SEEK_SET, len); 47: call 0 never executed 48: #####: 33: else ADIOI_READ_LOCK(fd, offset, SEEK_SET, len); 51: -: 35: MPE_Log_event( ADIOI_MPE_read_a, 0, NULL ); 52: -: 36:#endif 53: #####: 37: err = read(fd->fd_sys, buf, len); 56: -: 39: MPE_Log_event( ADIOI_MPE_read_b, 0, NULL ); 57: -: 40:#endif 58: #####: 41: ADIOI_UNLOCK(fd, offset, SEEK_SET, len); 59: call 0 never executed 60: #####: 42: fd->fp_sys_posn = offset + err; 62: -: 44: } 63: -: 45: else { /* read from curr. location of ind. file pointer */ 64: #####: 46: offset = fd->fp_ind; 65: #####: 47: if (fd->fp_sys_posn != fd->fp_ind) { 69: -: 49: MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL ); 70: -: 50:#endif 71: #####: 51: lseek(fd->fd_sys, fd->fp_ind, SEEK_SET); 75: -: 54:#endif 76: -: 55: } 77: #####: 56: if (fd->atomicity) 78: branch 0 never executed 79: branch 1 never executed 80: #####: 57: ADIOI_WRITE_LOCK(fd, offset, SEEK_SET, len); 81: call 0 never executed 82: #####: 58: else ADIOI_READ_LOCK(fd, offset, SEEK_SET, len); 85: -: 60: MPE_Log_event( ADIOI_MPE_read_a, 0, NULL ); 86: -: 61:#endif 87: #####: 62: err = read(fd->fd_sys, buf, len); 90: -: 64: MPE_Log_event( ADIOI_MPE_read_b, 0, NULL ); 91: -: 65:#endif 92: #####: 66: ADIOI_UNLOCK(fd, offset, SEEK_SET, len); 93: call 0 never executed 94: #####: 67: fd->fp_ind += err; 95: #####: 68: fd->fp_sys_posn = fd->fp_ind; 111: -: 79: 112: -: 80:#ifdef HAVE_STATUS_SET_BYTES 113: #####: 81: MPIR_Status_set_bytes(status, datatype, err); 115: -: 82:#endif 116: -: 83: 117: #####: 84: *error_code = MPI_SUCCESS; 198: -: 165: *error_code) 199: function ADIOI_NFS_ReadStrided called 0 returned 0% blocks executed 0% 200: #####: 166:{ 202: -: 168: 203: -: 169: ADIOI_Flatlist_node *flat_buf, *flat_file; 204: #####: 170: int i, j, k, err=-1, brd_size, frd_size=0, st_index=0; 205: -: 171: int bufsize, num, size, sum, n_etypes_in_filetype, size_in_filetype; 206: -: 172: int n_filetypes, etype_in_filetype; 207: #####: 173: ADIO_Offset abs_off_in_filetype=0; 210: -: 176: int buf_count, buftype_is_contig, filetype_is_contig; 211: -: 177: ADIO_Offset userbuf_off; 212: #####: 178: ADIO_Offset off, req_off, disp, end_offset=0, readbuf_off, start_off; 213: -: 179: char *readbuf, *tmp_buf, *value; 214: -: 180: int flag, st_frd_size, st_n_filetypes, readbuf_len; 215: #####: 181: int new_brd_size, new_frd_size, err_flag=0, info_flag, max_bufsize; 217: -: 183: static char myname[] = "ADIOI_NFS_READSTRIDED"; 218: -: 184: 219: #####: 185: ADIOI_Datatype_iscontig(datatype, &buftype_is_contig); 220: call 0 never executed 221: #####: 186: ADIOI_Datatype_iscontig(fd->filetype, &filetype_is_contig); 222: call 0 never executed 223: -: 187: 224: #####: 188: MPI_Type_size(fd->filetype, &filetype_size); 225: call 0 never executed 226: #####: 189: if ( ! filetype_size ) { 227: branch 0 never executed 228: branch 1 never executed 229: #####: 190: *error_code = MPI_SUCCESS; 230: #####: 191: return; 231: -: 192: } 232: -: 193: 233: #####: 194: MPI_Type_extent(fd->filetype, &filetype_extent); 234: call 0 never executed 235: #####: 195: MPI_Type_size(datatype, &buftype_size); 236: call 0 never executed 237: #####: 196: MPI_Type_extent(datatype, &buftype_extent); 238: call 0 never executed 239: #####: 197: etype_size = fd->etype_size; 240: -: 198: 241: #####: 199: bufsize = buftype_size * count; 243: -: 201:/* get max_bufsize from the info object. */ 244: -: 202: 245: #####: 203: value = (char *) ADIOI_Malloc((MPI_MAX_INFO_VAL+1)*sizeof(char)); 246: call 0 never executed 247: #####: 204: MPI_Info_get(fd->info, "ind_rd_buffer_size", MPI_MAX_INFO_VAL, value, 248: call 0 never executed 249: -: 205: &info_flag); 250: #####: 206: max_bufsize = atoi(value); 251: call 0 never executed 252: #####: 207: ADIOI_Free(value); 253: call 0 never executed 254: -: 208: 255: #####: 209: if (!buftype_is_contig && filetype_is_contig) { 261: -: 211:/* noncontiguous in memory, contiguous in file. */ 262: -: 212: 263: #####: 213: ADIOI_Flatten_datatype(datatype); 264: call 0 never executed 265: #####: 214: flat_buf = ADIOI_Flatlist; 266: #####: 215: while (flat_buf->type != datatype) flat_buf = flat_buf->next; 268: branch 1 never executed 269: -: 216: 270: #####: 217: off = (file_ptr_type == ADIO_INDIVIDUAL) ? fd->fp_ind : 273: -: 218: fd->disp + etype_size * offset; 274: -: 219: 275: #####: 220: start_off = off; 276: #####: 221: end_offset = off + bufsize - 1; 277: #####: 222: readbuf_off = off; 278: #####: 223: readbuf = (char *) ADIOI_Malloc(max_bufsize); 279: call 0 never executed 280: #####: 224: readbuf_len = (int) (ADIOI_MIN(max_bufsize, end_offset-readbuf_off+1)); 281: -: 225: 282: -: 226:/* if atomicity is true, lock (exclusive) the region to be accessed */ 283: #####: 227: if (fd->atomicity) 284: branch 0 never executed 285: branch 1 never executed 286: #####: 228: ADIOI_WRITE_LOCK(fd, start_off, SEEK_SET, end_offset-start_off+1); 290: -: 231: MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL ); 291: -: 232:#endif 292: #####: 233: lseek(fd->fd_sys, readbuf_off, SEEK_SET); 295: -: 235: MPE_Log_event( ADIOI_MPE_lseek_b, 0, NULL ); 296: -: 236:#endif 297: #####: 237: if (!(fd->atomicity)) ADIOI_READ_LOCK(fd, readbuf_off, SEEK_SET, readbuf_len); 302: -: 239: MPE_Log_event( ADIOI_MPE_read_a, 0, NULL ); 303: -: 240:#endif 304: #####: 241: err = read(fd->fd_sys, readbuf, readbuf_len); 307: -: 243: MPE_Log_event( ADIOI_MPE_read_b, 0, NULL ); 308: -: 244:#endif 309: #####: 245: if (!(fd->atomicity)) ADIOI_UNLOCK(fd, readbuf_off, SEEK_SET, readbuf_len); 311: branch 1 never executed 312: call 2 never executed 313: #####: 246: if (err == -1) err_flag = 1; 315: branch 1 never executed 316: -: 247: 317: #####: 248: for (j=0; jcount; i++) { 321: branch 0 never executed 322: branch 1 never executed 323: #####: 250: userbuf_off = j*buftype_extent + flat_buf->indices[i]; 324: #####: 251: req_off = off; 325: #####: 252: req_len = flat_buf->blocklens[i]; 326: #####: 253: ADIOI_BUFFERED_READ 356: branch 29 never executed 357: call 30 never executed 358: #####: 254: off += flat_buf->blocklens[i]; 359: -: 255: } 360: -: 256: 361: #####: 257: if (fd->atomicity) 362: branch 0 never executed 363: branch 1 never executed 364: #####: 258: ADIOI_UNLOCK(fd, start_off, SEEK_SET, end_offset-start_off+1); 365: call 0 never executed 366: -: 259: 367: #####: 260: if (file_ptr_type == ADIO_INDIVIDUAL) fd->fp_ind = off; 369: branch 1 never executed 370: -: 261: 371: #####: 262: ADIOI_Free(readbuf); /* malloced in the buffered_read macro */ 372: call 0 never executed 373: -: 263: 374: #####: 264: if (err_flag) { 375: branch 0 never executed 376: branch 1 never executed 377: #####: 265: *error_code = MPIO_Err_create_code(MPI_SUCCESS, 383: -: 268: "**io %s", strerror(errno)); 384: -: 269: } 385: #####: 270: else *error_code = MPI_SUCCESS; 389: -: 274: 390: -: 275:/* filetype already flattened in ADIO_Open */ 391: #####: 276: flat_file = ADIOI_Flatlist; 392: #####: 277: while (flat_file->type != fd->filetype) flat_file = flat_file->next; 393: branch 0 never executed 394: branch 1 never executed 395: #####: 278: disp = fd->disp; 396: -: 279: 397: #####: 280: if (file_ptr_type == ADIO_INDIVIDUAL) { 399: branch 1 never executed 400: -: 281: /* Wei-keng reworked type processing to be a bit more efficient */ 401: #####: 282: offset = fd->fp_ind - disp; 402: #####: 283: n_filetypes = (offset - flat_file->indices[0]) / filetype_extent; 403: #####: 284: offset -= (ADIO_Offset)n_filetypes * filetype_extent; 405: -: 286: 406: -: 287: /* find the block where offset is located, skip blocklens[i]==0 */ 407: #####: 288: for (i=0; icount; i++) { 409: branch 1 never executed 410: -: 289: ADIO_Offset dist; 411: #####: 290: if (flat_file->blocklens[i] == 0) continue; 412: branch 0 never executed 413: branch 1 never executed 414: #####: 291: dist = flat_file->indices[i] + flat_file->blocklens[i] - offset; 415: -: 292: /* frd_size is from offset to the end of block i */ 416: #####: 293: if (dist == 0) { 417: branch 0 never executed 418: branch 1 never executed 419: #####: 294: i++; 420: #####: 295: offset = flat_file->indices[i]; 421: #####: 296: frd_size = flat_file->blocklens[i]; 422: #####: 297: break; 423: -: 298: } 424: #####: 299: if (dist > 0 ) { 425: branch 0 never executed 426: branch 1 never executed 427: #####: 300: frd_size = dist; 428: #####: 301: break; 429: -: 302: } 430: -: 303: } 431: #####: 304: st_index = i; /* starting index in flat_file->indices[] */ 432: #####: 305: offset += disp + (ADIO_Offset)n_filetypes*filetype_extent; 433: -: 306: } 434: -: 307: else { 435: #####: 308: n_etypes_in_filetype = filetype_size/etype_size; 436: #####: 309: n_filetypes = (int) (offset / n_etypes_in_filetype); 437: #####: 310: etype_in_filetype = (int) (offset % n_etypes_in_filetype); 438: #####: 311: size_in_filetype = etype_in_filetype * etype_size; 439: -: 312: 440: #####: 313: sum = 0; 441: #####: 314: for (i=0; icount; i++) { 442: branch 0 never executed 443: branch 1 never executed 444: #####: 315: sum += flat_file->blocklens[i]; 445: #####: 316: if (sum > size_in_filetype) { 446: branch 0 never executed 447: branch 1 never executed 448: #####: 317: st_index = i; 449: #####: 318: frd_size = sum - size_in_filetype; 450: #####: 319: abs_off_in_filetype = flat_file->indices[i] + 451: -: 320: size_in_filetype - (sum - flat_file->blocklens[i]); 452: #####: 321: break; 455: -: 324: 456: -: 325: /* abs. offset in bytes in the file */ 457: #####: 326: offset = disp + (ADIO_Offset) n_filetypes*filetype_extent + 459: -: 328: } 460: -: 329: 461: #####: 330: start_off = offset; 464: -: 333: * block e.g. with subarray types that actually describe the whole 465: -: 334: * array */ 466: #####: 335: if (buftype_is_contig && bufsize <= frd_size) { 467: branch 0 never executed 468: branch 1 never executed 469: #####: 336: ADIO_ReadContig(fd, buf, bufsize, MPI_BYTE, ADIO_EXPLICIT_OFFSET, 471: -: 337: offset, status, error_code); 472: -: 338: 473: #####: 339: if (file_ptr_type == ADIO_INDIVIDUAL) { 476: -: 340: /* update MPI-IO file pointer to point to the first byte that 477: -: 341: * can be accessed in the fileview. */ 478: #####: 342: fd->fp_ind = offset + bufsize; 479: #####: 343: if (bufsize == frd_size) { 481: branch 1 never executed 482: -: 344: do { 483: #####: 345: st_index++; 484: #####: 346: if (st_index == flat_file->count) { 485: branch 0 never executed 486: branch 1 never executed 487: #####: 347: st_index = 0; 488: #####: 348: n_filetypes++; 489: -: 349: } 490: #####: 350: } while (flat_file->blocklens[st_index] == 0); 491: branch 0 never executed 492: branch 1 never executed 493: #####: 351: fd->fp_ind = disp + flat_file->indices[st_index] 495: -: 353: } 496: -: 354: } 497: #####: 355: fd->fp_sys_posn = -1; /* set it to null. */ 498: -: 356:#ifdef HAVE_STATUS_SET_BYTES 499: #####: 357: MPIR_Status_set_bytes(status, datatype, bufsize); 500: call 0 never executed 501: -: 358:#endif 502: #####: 359: return; 506: -: 363: e.g., if start_offset=0 and 100 bytes to be read, end_offset=99*/ 507: -: 364: 508: #####: 365: st_frd_size = frd_size; 509: #####: 366: st_n_filetypes = n_filetypes; 510: #####: 367: i = 0; 511: #####: 368: j = st_index; 512: #####: 369: off = offset; 513: #####: 370: frd_size = ADIOI_MIN(st_frd_size, bufsize); 514: #####: 371: while (i < bufsize) { 515: branch 0 never executed 516: branch 1 never executed 517: #####: 372: i += frd_size; 518: #####: 373: end_offset = off + frd_size - 1; 519: #####: 374: j = (j+1) % flat_file->count; 520: #####: 375: n_filetypes += (j == 0) ? 1 : 0; 521: #####: 376: while (flat_file->blocklens[j]==0) { 522: branch 0 never executed 523: branch 1 never executed 524: #####: 377: j = (j+1) % flat_file->count; 525: #####: 378: n_filetypes += (j == 0) ? 1 : 0; 526: -: 379: } 527: -: 380: 528: #####: 381: off = disp + flat_file->indices[j] + (ADIO_Offset) n_filetypes*filetype_extent; 529: #####: 382: frd_size = ADIOI_MIN(flat_file->blocklens[j], bufsize-i); 531: -: 384: 532: -: 385:/* if atomicity is true, lock (exclusive) the region to be accessed */ 533: #####: 386: if (fd->atomicity) 534: branch 0 never executed 535: branch 1 never executed 536: #####: 387: ADIOI_WRITE_LOCK(fd, start_off, SEEK_SET, end_offset-start_off+1); 538: -: 388: 539: -: 389: /* initial read into readbuf */ 540: #####: 390: readbuf_off = offset; 541: #####: 391: readbuf = (char *) ADIOI_Malloc(max_bufsize); 542: call 0 never executed 543: #####: 392: readbuf_len = (int) (ADIOI_MIN(max_bufsize, end_offset-readbuf_off+1)); 546: -: 395: MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL ); 547: -: 396:#endif 548: #####: 397: lseek(fd->fd_sys, offset, SEEK_SET); 551: -: 399: MPE_Log_event( ADIOI_MPE_lseek_b, 0, NULL ); 552: -: 400:#endif 553: #####: 401: if (!(fd->atomicity)) ADIOI_READ_LOCK(fd, offset, SEEK_SET, readbuf_len); 558: -: 403: MPE_Log_event( ADIOI_MPE_read_a, 0, NULL ); 559: -: 404:#endif 560: #####: 405: err = read(fd->fd_sys, readbuf, readbuf_len); 563: -: 407: MPE_Log_event( ADIOI_MPE_read_b, 0, NULL ); 564: -: 408:#endif 565: #####: 409: if (!(fd->atomicity)) ADIOI_UNLOCK(fd, offset, SEEK_SET, readbuf_len); 568: call 2 never executed 569: -: 410: 570: #####: 411: if (err == -1) err_flag = 1; 572: branch 1 never executed 573: -: 412: 574: #####: 413: if (buftype_is_contig && !filetype_is_contig) { 581: -: 416: common case. */ 582: -: 417: 583: #####: 418: i = 0; 584: #####: 419: j = st_index; 585: #####: 420: off = offset; 586: #####: 421: n_filetypes = st_n_filetypes; 587: #####: 422: frd_size = ADIOI_MIN(st_frd_size, bufsize); 588: #####: 423: while (i < bufsize) { 589: branch 0 never executed 590: branch 1 never executed 591: #####: 424: if (frd_size) { 597: -: 428: err = read(fd->fd_sys, ((char *) buf) + i, frd_size);*/ 598: -: 429: 599: #####: 430: req_off = off; 600: #####: 431: req_len = frd_size; 601: #####: 432: userbuf_off = i; 602: #####: 433: ADIOI_BUFFERED_READ 633: call 30 never executed 634: -: 434: } 635: #####: 435: i += frd_size; 636: -: 436: 637: #####: 437: if (off + frd_size < disp + flat_file->indices[j] + 639: branch 1 never executed 640: -: 438: flat_file->blocklens[j] + (ADIO_Offset) n_filetypes*filetype_extent) 641: #####: 439: off += frd_size; 643: -: 441: no more I/O needed. off is incremented by frd_size. */ 644: -: 442: else { 645: #####: 443: j = (j+1) % flat_file->count; 646: #####: 444: n_filetypes += (j == 0) ? 1 : 0; 647: #####: 445: while (flat_file->blocklens[j]==0) { 648: branch 0 never executed 649: branch 1 never executed 650: #####: 446: j = (j+1) % flat_file->count; 651: #####: 447: n_filetypes += (j == 0) ? 1 : 0; 652: -: 448: } 653: #####: 449: off = disp + flat_file->indices[j] + 654: -: 450: (ADIO_Offset) n_filetypes*filetype_extent; 655: #####: 451: frd_size = ADIOI_MIN(flat_file->blocklens[j], bufsize-i); 660: -: 456:/* noncontiguous in memory as well as in file */ 661: -: 457: 662: #####: 458: ADIOI_Flatten_datatype(datatype); 663: call 0 never executed 664: #####: 459: flat_buf = ADIOI_Flatlist; 665: #####: 460: while (flat_buf->type != datatype) flat_buf = flat_buf->next; 667: branch 1 never executed 668: -: 461: 669: #####: 462: k = num = buf_count = 0; 670: #####: 463: i = (int) (flat_buf->indices[0]); 671: #####: 464: j = st_index; 672: #####: 465: off = offset; 673: #####: 466: n_filetypes = st_n_filetypes; 674: #####: 467: frd_size = st_frd_size; 675: #####: 468: brd_size = flat_buf->blocklens[0]; 676: -: 469: 677: #####: 470: while (num < bufsize) { 678: branch 0 never executed 679: branch 1 never executed 680: #####: 471: size = ADIOI_MIN(frd_size, brd_size); 681: #####: 472: if (size) { 685: -: 474: err = read(fd->fd_sys, ((char *) buf) + i, size); */ 686: -: 475: 687: #####: 476: req_off = off; 688: #####: 477: req_len = size; 689: #####: 478: userbuf_off = i; 690: #####: 479: ADIOI_BUFFERED_READ 722: -: 480: } 723: -: 481: 724: #####: 482: new_frd_size = frd_size; 725: #####: 483: new_brd_size = brd_size; 726: -: 484: 727: #####: 485: if (size == frd_size) { 729: branch 1 never executed 730: -: 486:/* reached end of contiguous block in file */ 731: #####: 487: j = (j+1) % flat_file->count; 732: #####: 488: n_filetypes += (j == 0) ? 1 : 0; 733: #####: 489: while (flat_file->blocklens[j]==0) { 734: branch 0 never executed 735: branch 1 never executed 736: #####: 490: j = (j+1) % flat_file->count; 737: #####: 491: n_filetypes += (j == 0) ? 1 : 0; 738: -: 492: } 739: #####: 493: off = disp + flat_file->indices[j] + 740: -: 494: (ADIO_Offset) n_filetypes*filetype_extent; 741: -: 495: 742: #####: 496: new_frd_size = flat_file->blocklens[j]; 743: #####: 497: if (size != brd_size) { 744: branch 0 never executed 745: branch 1 never executed 746: #####: 498: i += size; 747: #####: 499: new_brd_size -= size; 749: -: 501: } 750: -: 502: 751: #####: 503: if (size == brd_size) { 754: -: 504:/* reached end of contiguous block in memory */ 755: -: 505: 756: #####: 506: k = (k + 1)%flat_buf->count; 757: #####: 507: buf_count++; 758: #####: 508: i = (int) (buftype_extent*(buf_count/flat_buf->count) + 759: -: 509: flat_buf->indices[k]); 760: #####: 510: new_brd_size = flat_buf->blocklens[k]; 761: #####: 511: if (size != frd_size) { 762: branch 0 never executed 763: branch 1 never executed 764: #####: 512: off += size; 765: #####: 513: new_frd_size -= size; 766: -: 514: } 767: -: 515: } 768: #####: 516: num += size; 769: #####: 517: frd_size = new_frd_size; 770: #####: 518: brd_size = new_brd_size; 772: -: 520: } 773: -: 521: 774: #####: 522: if (fd->atomicity) 775: branch 0 never executed 776: branch 1 never executed 777: #####: 523: ADIOI_UNLOCK(fd, start_off, SEEK_SET, end_offset-start_off+1); 778: call 0 never executed 779: -: 524: 780: #####: 525: if (file_ptr_type == ADIO_INDIVIDUAL) fd->fp_ind = off; 782: branch 1 never executed 783: -: 526: 784: #####: 527: ADIOI_Free(readbuf); /* malloced in the buffered_read macro */ 785: call 0 never executed 786: -: 528: 787: #####: 529: if (err_flag) { 788: branch 0 never executed 789: branch 1 never executed 790: #####: 530: *error_code = MPIO_Err_create_code(MPI_SUCCESS, 796: -: 533: "**io %s", strerror(errno)); 797: -: 534: } 798: #####: 535: else *error_code = MPI_SUCCESS; 799: -: 536: } 800: -: 537: 801: #####: 538: fd->fp_sys_posn = -1; /* set it to null. */ 802: -: 539: 803: -: 540:#ifdef HAVE_STATUS_SET_BYTES 804: #####: 541: MPIR_Status_set_bytes(status, datatype, bufsize); 809: -: 545:#endif 810: -: 546: 811: #####: 547: if (!buftype_is_contig) ADIOI_Delete_flattened(datatype); 223 line(s) not covered by tests in src/mpi/romio/adio/ad_nfs/ad_nfs_read.c.gcov Uncovered lines in src/mpi/romio/adio/ad_nfs/ad_nfs_open.c.gcov 15: -: 10:void ADIOI_NFS_Open(ADIO_File fd, int *error_code) 16: function ADIOI_NFS_Open called 0 returned 0% blocks executed 0% 17: #####: 11:{ 20: -: 14: static char myname[] = "ADIOI_NFS_OPEN"; 21: -: 15: 22: #####: 16: if (fd->perm == ADIO_PERM_NULL) { 23: branch 0 never executed 24: branch 1 never executed 25: #####: 17: old_mask = umask(022); 26: call 0 never executed 27: #####: 18: umask(old_mask); 28: call 0 never executed 29: #####: 19: perm = old_mask ^ 0666; 30: -: 20: } 31: #####: 21: else perm = fd->perm; 32: -: 22: 33: #####: 23: amode = 0; 34: #####: 24: if (fd->access_mode & ADIO_CREATE) 35: branch 0 never executed 36: branch 1 never executed 37: #####: 25: amode = amode | O_CREAT; 38: #####: 26: if (fd->access_mode & ADIO_RDONLY) 39: branch 0 never executed 40: branch 1 never executed 41: #####: 27: amode = amode | O_RDONLY; 42: #####: 28: if (fd->access_mode & ADIO_WRONLY) 43: branch 0 never executed 44: branch 1 never executed 45: #####: 29: amode = amode | O_WRONLY; 46: #####: 30: if (fd->access_mode & ADIO_RDWR) 47: branch 0 never executed 48: branch 1 never executed 49: #####: 31: amode = amode | O_RDWR; 50: #####: 32: if (fd->access_mode & ADIO_EXCL) 51: branch 0 never executed 52: branch 1 never executed 53: #####: 33: amode = amode | O_EXCL; 56: -: 36: MPE_Log_event( ADIOI_MPE_open_a, 0, NULL ); 57: -: 37:#endif 58: #####: 38: fd->fd_sys = open(fd->filename, amode, perm); 61: -: 40: MPE_Log_event( ADIOI_MPE_open_b, 0, NULL ); 62: -: 41:#endif 63: #####: 42: fd->fd_direct = -1; 64: -: 43: 65: #####: 44: if ((fd->fd_sys != -1) && (fd->access_mode & ADIO_APPEND)) { 71: -: 46: MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL ); 72: -: 47:#endif 73: #####: 48: fd->fp_ind = fd->fp_sys_posn = lseek(fd->fd_sys, 0, SEEK_END); 78: -: 52: } 79: -: 53: 80: #####: 54: if (fd->fd_sys == -1) { 83: -: 55: /* Check for special error codes for those MPI error 84: -: 56: classes that relate to particular problems */ 85: #####: 57: if (errno == ENAMETOOLONG) 87: branch 1 never executed 88: branch 2 never executed 89: #####: 58: *error_code = MPIO_Err_create_code(MPI_SUCCESS, 96: -: 63: fd->filename, 97: -: 64: strlen(fd->filename)); 98: #####: 65: else if (errno == ENOENT) 100: branch 1 never executed 101: branch 2 never executed 102: #####: 66: *error_code = MPIO_Err_create_code(MPI_SUCCESS, 107: -: 70: "**filenoexist %s", 108: -: 71: fd->filename); 109: #####: 72: else if (errno == ENOTDIR || errno == ELOOP) 111: branch 1 never executed 112: branch 2 never executed 113: #####: 73: *error_code = MPIO_Err_create_code(MPI_SUCCESS, 118: -: 77: "**filenamedir %s", 119: -: 78: fd->filename); 120: #####: 79: else if (errno == EACCES) { 122: branch 1 never executed 123: branch 2 never executed 124: #####: 80: *error_code = MPIO_Err_create_code(MPI_SUCCESS, 130: -: 85: fd->filename); 131: -: 86: } 132: #####: 87: else if (errno == EROFS) { 135: branch 2 never executed 136: -: 88: /* Read only file or file system and write access requested */ 137: #####: 89: *error_code = MPIO_Err_create_code(MPI_SUCCESS, 142: -: 93: } 143: -: 94: else { 144: #####: 95: *error_code = MPIO_Err_create_code(MPI_SUCCESS, 151: -: 99: } 152: -: 100: } 153: #####: 101: else *error_code = MPI_SUCCESS; 34 line(s) not covered by tests in src/mpi/romio/adio/ad_nfs/ad_nfs_open.c.gcov Uncovered lines in src/mpi/romio/adio/ad_nfs/ad_nfs_write.c.gcov 18: -: 13: ADIO_Offset offset, ADIO_Status *status, int *error_code) 19: function ADIOI_NFS_WriteContig called 0 returned 0% blocks executed 0% 20: #####: 14:{ 21: #####: 15: int err=-1, datatype_size, len; 22: -: 16: static char myname[] = "ADIOI_NFS_WRITECONTIG"; 23: -: 17: 24: #####: 18: MPI_Type_size(datatype, &datatype_size); 25: call 0 never executed 26: #####: 19: len = datatype_size * count; 27: -: 20: 28: #####: 21: if (file_ptr_type == ADIO_EXPLICIT_OFFSET) { 29: branch 0 never executed 30: branch 1 never executed 31: #####: 22: if (fd->fp_sys_posn != offset) { 35: -: 24: MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL ); 36: -: 25:#endif 37: #####: 26: lseek(fd->fd_sys, offset, SEEK_SET); 41: -: 29:#endif 42: -: 30: } 43: #####: 31: ADIOI_WRITE_LOCK(fd, offset, SEEK_SET, len); 46: -: 33: MPE_Log_event( ADIOI_MPE_write_a, 0, NULL ); 47: -: 34:#endif 48: #####: 35: err = write(fd->fd_sys, buf, len); 51: -: 37: MPE_Log_event( ADIOI_MPE_write_b, 0, NULL ); 52: -: 38:#endif 53: #####: 39: ADIOI_UNLOCK(fd, offset, SEEK_SET, len); 54: call 0 never executed 55: #####: 40: fd->fp_sys_posn = offset + err; 57: -: 42: } 58: -: 43: else { /* write from curr. location of ind. file pointer */ 59: #####: 44: offset = fd->fp_ind; 60: #####: 45: if (fd->fp_sys_posn != fd->fp_ind) { 64: -: 47: MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL ); 65: -: 48:#endif 66: #####: 49: lseek(fd->fd_sys, fd->fp_ind, SEEK_SET); 70: -: 52:#endif 71: -: 53: } 72: #####: 54: ADIOI_WRITE_LOCK(fd, offset, SEEK_SET, len); 75: -: 56: MPE_Log_event( ADIOI_MPE_write_a, 0, NULL ); 76: -: 57:#endif 77: #####: 58: err = write(fd->fd_sys, buf, len); 80: -: 60: MPE_Log_event( ADIOI_MPE_write_b, 0, NULL ); 81: -: 61:#endif 82: #####: 62: ADIOI_UNLOCK(fd, offset, SEEK_SET, len); 83: call 0 never executed 84: #####: 63: fd->fp_ind += err; 85: #####: 64: fd->fp_sys_posn = fd->fp_ind; 102: -: 76: 103: -: 77:#ifdef HAVE_STATUS_SET_BYTES 104: #####: 78: MPIR_Status_set_bytes(status, datatype, err); 106: -: 79:#endif 107: -: 80: 108: #####: 81: *error_code = MPI_SUCCESS; 296: -: 269: *error_code) 297: function ADIOI_NFS_WriteStrided called 0 returned 0% blocks executed 0% 298: #####: 270:{ 300: -: 272: 301: -: 273: ADIOI_Flatlist_node *flat_buf, *flat_file; 302: #####: 274: int i, j, k, err=-1, bwr_size, fwr_size=0, st_index=0; 303: -: 275: int bufsize, num, size, sum, n_etypes_in_filetype, size_in_filetype; 304: -: 276: int n_filetypes, etype_in_filetype; 305: #####: 277: ADIO_Offset abs_off_in_filetype=0; 308: -: 280: int buf_count, buftype_is_contig, filetype_is_contig; 309: -: 281: ADIO_Offset userbuf_off; 310: #####: 282: ADIO_Offset off, req_off, disp, end_offset=0, writebuf_off, start_off; 311: -: 283: char *writebuf, *value; 312: -: 284: int flag, st_fwr_size, st_n_filetypes, writebuf_len, write_sz; 313: #####: 285: int new_bwr_size, new_fwr_size, err_flag=0, info_flag, max_bufsize; 314: -: 286: static char myname[] = "ADIOI_NFS_WRITESTRIDED"; 315: -: 287: 316: #####: 288: ADIOI_Datatype_iscontig(datatype, &buftype_is_contig); 317: call 0 never executed 318: #####: 289: ADIOI_Datatype_iscontig(fd->filetype, &filetype_is_contig); 319: call 0 never executed 320: -: 290: 321: #####: 291: MPI_Type_size(fd->filetype, &filetype_size); 322: call 0 never executed 323: #####: 292: if ( ! filetype_size ) { 324: branch 0 never executed 325: branch 1 never executed 326: #####: 293: *error_code = MPI_SUCCESS; 327: #####: 294: return; 328: -: 295: } 329: -: 296: 330: #####: 297: MPI_Type_extent(fd->filetype, &filetype_extent); 331: call 0 never executed 332: #####: 298: MPI_Type_size(datatype, &buftype_size); 333: call 0 never executed 334: #####: 299: MPI_Type_extent(datatype, &buftype_extent); 335: call 0 never executed 336: #####: 300: etype_size = fd->etype_size; 337: -: 301: 338: #####: 302: bufsize = buftype_size * count; 340: -: 304:/* get max_bufsize from the info object. */ 341: -: 305: 342: #####: 306: value = (char *) ADIOI_Malloc((MPI_MAX_INFO_VAL+1)*sizeof(char)); 343: call 0 never executed 344: #####: 307: MPI_Info_get(fd->info, "ind_wr_buffer_size", MPI_MAX_INFO_VAL, value, 345: call 0 never executed 346: -: 308: &info_flag); 347: #####: 309: max_bufsize = atoi(value); 348: call 0 never executed 349: #####: 310: ADIOI_Free(value); 350: call 0 never executed 351: -: 311: 352: #####: 312: if (!buftype_is_contig && filetype_is_contig) { 358: -: 314:/* noncontiguous in memory, contiguous in file. */ 359: -: 315: 360: #####: 316: ADIOI_Flatten_datatype(datatype); 361: call 0 never executed 362: #####: 317: flat_buf = ADIOI_Flatlist; 363: #####: 318: while (flat_buf->type != datatype) flat_buf = flat_buf->next; 365: branch 1 never executed 366: -: 319: 367: #####: 320: off = (file_ptr_type == ADIO_INDIVIDUAL) ? fd->fp_ind : 370: -: 321: fd->disp + etype_size * offset; 371: -: 322: 372: #####: 323: start_off = off; 373: #####: 324: end_offset = off + bufsize - 1; 374: #####: 325: writebuf_off = off; 375: #####: 326: writebuf = (char *) ADIOI_Malloc(max_bufsize); 376: call 0 never executed 377: #####: 327: writebuf_len = (int) (ADIOI_MIN(max_bufsize,end_offset-writebuf_off+1)); 378: -: 328: 379: -: 329:/* if atomicity is true, lock the region to be accessed */ 380: #####: 330: if (fd->atomicity) 381: branch 0 never executed 382: branch 1 never executed 383: #####: 331: ADIOI_WRITE_LOCK(fd, start_off, SEEK_SET, end_offset-start_off+1); 384: call 0 never executed 385: -: 332: 386: #####: 333: for (j=0; jcount; i++) { 390: branch 0 never executed 391: branch 1 never executed 392: #####: 335: userbuf_off = j*buftype_extent + flat_buf->indices[i]; 393: #####: 336: req_off = off; 394: #####: 337: req_len = flat_buf->blocklens[i]; 395: #####: 338: ADIOI_BUFFERED_WRITE_WITHOUT_READ 420: branch 24 never executed 421: branch 25 never executed 422: #####: 339: off += flat_buf->blocklens[i]; 427: -: 344: MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL ); 428: -: 345:#endif 429: #####: 346: lseek(fd->fd_sys, writebuf_off, SEEK_SET); 432: -: 348: MPE_Log_event( ADIOI_MPE_lseek_b, 0, NULL ); 433: -: 349:#endif 434: #####: 350: if (!(fd->atomicity)) ADIOI_WRITE_LOCK(fd, writebuf_off, SEEK_SET, writebuf_len); 439: -: 352: MPE_Log_event( ADIOI_MPE_write_a, 0, NULL ); 440: -: 353:#endif 441: #####: 354: err = write(fd->fd_sys, writebuf, writebuf_len); 444: -: 356: MPE_Log_event( ADIOI_MPE_write_b, 0, NULL ); 445: -: 357:#endif 446: #####: 358: if (!(fd->atomicity)) ADIOI_UNLOCK(fd, writebuf_off, SEEK_SET, writebuf_len); 448: branch 1 never executed 449: call 2 never executed 450: #####: 359: if (err == -1) err_flag = 1; 452: branch 1 never executed 453: -: 360: 454: #####: 361: if (fd->atomicity) 455: branch 0 never executed 456: branch 1 never executed 457: #####: 362: ADIOI_UNLOCK(fd, start_off, SEEK_SET, end_offset-start_off+1); 458: call 0 never executed 459: -: 363: 460: #####: 364: ADIOI_Free(writebuf); /* malloced in the buffered_write macro */ 461: call 0 never executed 462: -: 365: 463: #####: 366: if (file_ptr_type == ADIO_INDIVIDUAL) fd->fp_ind = off; 464: branch 0 never executed 465: branch 1 never executed 466: #####: 367: if (err_flag) { 467: branch 0 never executed 468: branch 1 never executed 469: #####: 368: *error_code = MPIO_Err_create_code(MPI_SUCCESS, 475: -: 371: "**io %s", strerror(errno)); 476: -: 372: } 477: #####: 373: else *error_code = MPI_SUCCESS; 481: -: 377: 482: -: 378:/* filetype already flattened in ADIO_Open */ 483: #####: 379: flat_file = ADIOI_Flatlist; 484: #####: 380: while (flat_file->type != fd->filetype) flat_file = flat_file->next; 485: branch 0 never executed 486: branch 1 never executed 487: #####: 381: disp = fd->disp; 488: -: 382: 489: #####: 383: if (file_ptr_type == ADIO_INDIVIDUAL) { 491: branch 1 never executed 492: -: 384: /* Wei-keng reworked type processing to be a bit more efficient */ 493: #####: 385: offset = fd->fp_ind - disp; 494: #####: 386: n_filetypes = (offset - flat_file->indices[0]) / filetype_extent; 495: #####: 387: offset -= (ADIO_Offset)n_filetypes * filetype_extent; 497: -: 389: 498: -: 390: /* find the block where offset is located, skip blocklens[i]==0 */ 499: #####: 391: for (i=0; icount; i++) { 501: branch 1 never executed 502: -: 392: ADIO_Offset dist; 503: #####: 393: if (flat_file->blocklens[i] == 0) continue; 504: branch 0 never executed 505: branch 1 never executed 506: #####: 394: dist = flat_file->indices[i] + flat_file->blocklens[i] - offset; 507: -: 395: /* fwr_size is from offset to the end of block i */ 508: #####: 396: if (dist == 0) { 509: branch 0 never executed 510: branch 1 never executed 511: #####: 397: i++; 512: #####: 398: offset = flat_file->indices[i]; 513: #####: 399: fwr_size = flat_file->blocklens[i]; 514: #####: 400: break; 515: -: 401: } 516: #####: 402: if (dist > 0) { 517: branch 0 never executed 518: branch 1 never executed 519: #####: 403: fwr_size = dist; 520: #####: 404: break; 521: -: 405: } 522: -: 406: } 523: #####: 407: st_index = i; /* starting index in flat_file->indices[] */ 524: #####: 408: offset += disp + (ADIO_Offset)n_filetypes*filetype_extent; 525: -: 409: } 526: -: 410: else { 527: #####: 411: n_etypes_in_filetype = filetype_size/etype_size; 528: #####: 412: n_filetypes = (int) (offset / n_etypes_in_filetype); 529: #####: 413: etype_in_filetype = (int) (offset % n_etypes_in_filetype); 530: #####: 414: size_in_filetype = etype_in_filetype * etype_size; 531: -: 415: 532: #####: 416: sum = 0; 533: #####: 417: for (i=0; icount; i++) { 534: branch 0 never executed 535: branch 1 never executed 536: #####: 418: sum += flat_file->blocklens[i]; 537: #####: 419: if (sum > size_in_filetype) { 538: branch 0 never executed 539: branch 1 never executed 540: #####: 420: st_index = i; 541: #####: 421: fwr_size = sum - size_in_filetype; 542: #####: 422: abs_off_in_filetype = flat_file->indices[i] + 543: -: 423: size_in_filetype - (sum - flat_file->blocklens[i]); 544: #####: 424: break; 547: -: 427: 548: -: 428: /* abs. offset in bytes in the file */ 549: #####: 429: offset = disp + (ADIO_Offset) n_filetypes*filetype_extent + 551: -: 431: } 552: -: 432: 553: #####: 433: start_off = offset; 555: -: 435: /* this could happen, for example, with subarray types that are 556: -: 436: * actually fairly contiguous */ 557: #####: 437: if (buftype_is_contig && bufsize <= fwr_size) { 558: branch 0 never executed 559: branch 1 never executed 560: #####: 438: ADIO_WriteContig(fd, buf, bufsize, MPI_BYTE, ADIO_EXPLICIT_OFFSET, 562: -: 439: offset, status, error_code); 563: -: 440: 564: #####: 441: if (file_ptr_type == ADIO_INDIVIDUAL) { 567: -: 442: /* update MPI-IO file pointer to point to the first byte 568: -: 443: * that can be accessed in the fileview. */ 569: #####: 444: fd->fp_ind = offset + bufsize; 570: #####: 445: if (bufsize == fwr_size) { 572: branch 1 never executed 573: -: 446: do { 574: #####: 447: st_index++; 575: #####: 448: if (st_index == flat_file->count) { 576: branch 0 never executed 577: branch 1 never executed 578: #####: 449: st_index = 0; 579: #####: 450: n_filetypes++; 580: -: 451: } 581: #####: 452: } while (flat_file->blocklens[st_index] == 0); 582: branch 0 never executed 583: branch 1 never executed 584: #####: 453: fd->fp_ind = disp + flat_file->indices[st_index] 586: -: 455: } 587: -: 456: } 588: #####: 457: fd->fp_sys_posn = -1; /* set it to null. */ 589: -: 458:#ifdef HAVE_STATUS_SET_BYTES 590: #####: 459: MPIR_Status_set_bytes(status, datatype, bufsize); 591: call 0 never executed 592: -: 460:#endif 593: #####: 461: return; 597: -: 465: e.g., if start_offset=0 and 100 bytes to be write, end_offset=99*/ 598: -: 466: 599: #####: 467: st_fwr_size = fwr_size; 600: #####: 468: st_n_filetypes = n_filetypes; 601: #####: 469: i = 0; 602: #####: 470: j = st_index; 603: #####: 471: off = offset; 604: #####: 472: fwr_size = ADIOI_MIN(st_fwr_size, bufsize); 605: #####: 473: while (i < bufsize) { 606: branch 0 never executed 607: branch 1 never executed 608: #####: 474: i += fwr_size; 609: #####: 475: end_offset = off + fwr_size - 1; 610: #####: 476: j = (j+1) % flat_file->count; 611: #####: 477: n_filetypes += (j == 0) ? 1 : 0; 612: #####: 478: while (flat_file->blocklens[j]==0) { 613: branch 0 never executed 614: branch 1 never executed 615: #####: 479: j = (j+1) % flat_file->count; 616: #####: 480: n_filetypes += (j == 0) ? 1 : 0; 617: -: 481: } 618: -: 482: 619: #####: 483: off = disp + flat_file->indices[j] + 620: -: 484: (ADIO_Offset) n_filetypes*filetype_extent; 621: #####: 485: fwr_size = ADIOI_MIN(flat_file->blocklens[j], bufsize-i); 623: -: 487: 624: -: 488:/* if atomicity is true, lock the region to be accessed */ 625: #####: 489: if (fd->atomicity) 626: branch 0 never executed 627: branch 1 never executed 628: #####: 490: ADIOI_WRITE_LOCK(fd, start_off, SEEK_SET, end_offset-start_off+1); 630: -: 491: 631: -: 492: /* initial read for the read-modify-write */ 632: #####: 493: writebuf_off = offset; 633: #####: 494: writebuf = (char *) ADIOI_Malloc(max_bufsize); 634: call 0 never executed 635: #####: 495: writebuf_len = (int)(ADIOI_MIN(max_bufsize,end_offset-writebuf_off+1)); 636: #####: 496: if (!(fd->atomicity)) ADIOI_WRITE_LOCK(fd, writebuf_off, SEEK_SET, writebuf_len); 641: -: 498: MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL ); 642: -: 499:#endif 643: #####: 500: lseek(fd->fd_sys, writebuf_off, SEEK_SET); 649: -: 505: MPE_Log_event( ADIOI_MPE_read_a, 0, NULL ); 650: -: 506:#endif 651: #####: 507: err = read(fd->fd_sys, writebuf, writebuf_len); 654: -: 509: MPE_Log_event( ADIOI_MPE_read_b, 0, NULL ); 655: -: 510:#endif 656: #####: 511: if (err == -1) { 657: branch 0 never executed 658: branch 1 never executed 659: #####: 512: *error_code = MPIO_Err_create_code(MPI_SUCCESS, 663: -: 515: MPI_ERR_IO, 664: -: 516: "ADIOI_NFS_WriteStrided: ROMIO tries to optimize this access by doing a read-modify-write, but is unable to read the file. Please give the file read permission and open it with MPI_MODE_RDWR.", 0); 665: #####: 517: return; 666: -: 518: } 667: -: 519: 668: #####: 520: if (buftype_is_contig && !filetype_is_contig) { 675: -: 523: common case. */ 676: -: 524: 677: #####: 525: i = 0; 678: #####: 526: j = st_index; 679: #####: 527: off = offset; 680: #####: 528: n_filetypes = st_n_filetypes; 681: #####: 529: fwr_size = ADIOI_MIN(st_fwr_size, bufsize); 682: #####: 530: while (i < bufsize) { 683: branch 0 never executed 684: branch 1 never executed 685: #####: 531: if (fwr_size) { 691: -: 535: err = write(fd->fd_sys, ((char *) buf) + i, fwr_size);*/ 692: -: 536: 693: #####: 537: req_off = off; 694: #####: 538: req_len = fwr_size; 695: #####: 539: userbuf_off = i; 696: #####: 540: ADIOI_BUFFERED_WRITE 732: branch 35 never executed 733: -: 541: } 734: #####: 542: i += fwr_size; 735: -: 543: 736: #####: 544: if (off + fwr_size < disp + flat_file->indices[j] + 738: branch 1 never executed 739: -: 545: flat_file->blocklens[j] + (ADIO_Offset) n_filetypes*filetype_extent) 740: #####: 546: off += fwr_size; 742: -: 548: no more I/O needed. off is incremented by fwr_size. */ 743: -: 549: else { 744: #####: 550: j = (j+1) % flat_file->count; 745: #####: 551: n_filetypes += (j == 0) ? 1 : 0; 746: #####: 552: while (flat_file->blocklens[j]==0) { 747: branch 0 never executed 748: branch 1 never executed 749: #####: 553: j = (j+1) % flat_file->count; 750: #####: 554: n_filetypes += (j == 0) ? 1 : 0; 751: -: 555: } 752: #####: 556: off = disp + flat_file->indices[j] + 753: -: 557: (ADIO_Offset) n_filetypes*filetype_extent; 754: #####: 558: fwr_size = ADIOI_MIN(flat_file->blocklens[j], bufsize-i); 759: -: 563:/* noncontiguous in memory as well as in file */ 760: -: 564: 761: #####: 565: ADIOI_Flatten_datatype(datatype); 762: call 0 never executed 763: #####: 566: flat_buf = ADIOI_Flatlist; 764: #####: 567: while (flat_buf->type != datatype) flat_buf = flat_buf->next; 766: branch 1 never executed 767: -: 568: 768: #####: 569: k = num = buf_count = 0; 769: #####: 570: i = (int) (flat_buf->indices[0]); 770: #####: 571: j = st_index; 771: #####: 572: off = offset; 772: #####: 573: n_filetypes = st_n_filetypes; 773: #####: 574: fwr_size = st_fwr_size; 774: #####: 575: bwr_size = flat_buf->blocklens[0]; 775: -: 576: 776: #####: 577: while (num < bufsize) { 777: branch 0 never executed 778: branch 1 never executed 779: #####: 578: size = ADIOI_MIN(fwr_size, bwr_size); 780: #####: 579: if (size) { 784: -: 581: err = write(fd->fd_sys, ((char *) buf) + i, size); */ 785: -: 582: 786: #####: 583: req_off = off; 787: #####: 584: req_len = size; 788: #####: 585: userbuf_off = i; 789: #####: 586: ADIOI_BUFFERED_WRITE 826: -: 587: } 827: -: 588: 828: #####: 589: new_fwr_size = fwr_size; 829: #####: 590: new_bwr_size = bwr_size; 830: -: 591: 831: #####: 592: if (size == fwr_size) { 833: branch 1 never executed 834: -: 593:/* reached end of contiguous block in file */ 835: #####: 594: j = (j+1) % flat_file->count; 836: #####: 595: n_filetypes += (j == 0) ? 1 : 0; 837: #####: 596: while (flat_file->blocklens[j]==0) { 838: branch 0 never executed 839: branch 1 never executed 840: #####: 597: j = (j+1) % flat_file->count; 841: #####: 598: n_filetypes += (j == 0) ? 1 : 0; 842: -: 599: } 843: -: 600: 844: #####: 601: off = disp + flat_file->indices[j] + 845: -: 602: (ADIO_Offset) n_filetypes*filetype_extent; 846: -: 603: 847: #####: 604: new_fwr_size = flat_file->blocklens[j]; 848: #####: 605: if (size != bwr_size) { 849: branch 0 never executed 850: branch 1 never executed 851: #####: 606: i += size; 852: #####: 607: new_bwr_size -= size; 854: -: 609: } 855: -: 610: 856: #####: 611: if (size == bwr_size) { 859: -: 612:/* reached end of contiguous block in memory */ 860: -: 613: 861: #####: 614: k = (k + 1)%flat_buf->count; 862: #####: 615: buf_count++; 863: #####: 616: i = (int) (buftype_extent*(buf_count/flat_buf->count) + 864: -: 617: flat_buf->indices[k]); 865: #####: 618: new_bwr_size = flat_buf->blocklens[k]; 866: #####: 619: if (size != fwr_size) { 867: branch 0 never executed 868: branch 1 never executed 869: #####: 620: off += size; 870: #####: 621: new_fwr_size -= size; 871: -: 622: } 872: -: 623: } 873: #####: 624: num += size; 874: #####: 625: fwr_size = new_fwr_size; 875: #####: 626: bwr_size = new_bwr_size; 881: -: 632: MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL ); 882: -: 633:#endif 883: #####: 634: lseek(fd->fd_sys, writebuf_off, SEEK_SET); 886: -: 636: MPE_Log_event( ADIOI_MPE_lseek_b, 0, NULL ); 887: -: 637:#endif 888: #####: 638: if (!(fd->atomicity)) ADIOI_WRITE_LOCK(fd, writebuf_off, SEEK_SET, writebuf_len); 893: -: 640: MPE_Log_event( ADIOI_MPE_write_a, 0, NULL ); 894: -: 641:#endif 895: #####: 642: err = write(fd->fd_sys, writebuf, writebuf_len); 899: -: 645:#endif 900: -: 646: 901: #####: 647: if (!(fd->atomicity)) 902: branch 0 never executed 903: branch 1 never executed 904: #####: 648: ADIOI_UNLOCK(fd, writebuf_off, SEEK_SET, writebuf_len); 905: call 0 never executed 906: #####: 649: else ADIOI_UNLOCK(fd, start_off, SEEK_SET, end_offset-start_off+1); 907: call 0 never executed 908: -: 650: 909: #####: 651: if (err == -1) err_flag = 1; 911: branch 1 never executed 912: -: 652: 913: #####: 653: ADIOI_Free(writebuf); /* malloced in the buffered_write macro */ 914: call 0 never executed 915: -: 654: 916: #####: 655: if (file_ptr_type == ADIO_INDIVIDUAL) fd->fp_ind = off; 917: branch 0 never executed 918: branch 1 never executed 919: #####: 656: if (err_flag) { 920: branch 0 never executed 921: branch 1 never executed 922: #####: 657: *error_code = MPIO_Err_create_code(MPI_SUCCESS, 928: -: 660: "**io %s", strerror(errno)); 929: -: 661: } 930: #####: 662: else *error_code = MPI_SUCCESS; 931: -: 663: } 932: -: 664: 933: #####: 665: fd->fp_sys_posn = -1; /* set it to null. */ 934: -: 666: 935: -: 667:#ifdef HAVE_STATUS_SET_BYTES 936: #####: 668: MPIR_Status_set_bytes(status, datatype, bufsize); 940: -: 671:#endif 941: -: 672: 942: #####: 673: if (!buftype_is_contig) ADIOI_Delete_flattened(datatype); 225 line(s) not covered by tests in src/mpi/romio/adio/ad_nfs/ad_nfs_write.c.gcov Uncovered lines in src/mpi/romio/adio/ad_nfs/ad_nfs_fcntl.c.gcov 19: -: 14:void ADIOI_NFS_Fcntl(ADIO_File fd, int flag, ADIO_Fcntl_t *fcntl_struct, int *error_code) 20: function ADIOI_NFS_Fcntl called 0 returned 0% blocks executed 0% 21: #####: 15:{ 22: -: 16: static char myname[] = "ADIOI_NFS_FCNTL"; 23: -: 17: 24: #####: 18: switch(flag) { 28: branch 3 never executed 29: -: 19: case ADIO_FCNTL_GET_FSIZE: 30: #####: 20: ADIOI_READ_LOCK(fd, 0, SEEK_SET, 1); 33: -: 22: MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL ); 34: -: 23:#endif 35: #####: 24: fcntl_struct->fsize = lseek(fd->fd_sys, 0, SEEK_END); 38: -: 26: MPE_Log_event( ADIOI_MPE_lseek_b, 0, NULL ); 39: -: 27:#endif 40: #####: 28: ADIOI_UNLOCK(fd, 0, SEEK_SET, 1); 41: call 0 never executed 42: #####: 29: if (fd->fp_sys_posn != -1) { 46: -: 31: MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL ); 47: -: 32:#endif 48: #####: 33: lseek(fd->fd_sys, fd->fp_sys_posn, SEEK_SET); 52: -: 36:#endif 53: -: 37: } 54: #####: 38: if (fcntl_struct->fsize == -1) { 55: branch 0 never executed 56: branch 1 never executed 57: #####: 39: *error_code = MPIO_Err_create_code(MPI_SUCCESS, 63: -: 42: "**io %s", strerror(errno)); 64: -: 43: } 65: #####: 44: else *error_code = MPI_SUCCESS; 67: -: 46: 68: -: 47: case ADIO_FCNTL_SET_DISKSPACE: 69: #####: 48: ADIOI_GEN_Prealloc(fd, fcntl_struct->diskspace, error_code); 70: call 0 never executed 71: #####: 49: break; 72: -: 50: 73: -: 51: case ADIO_FCNTL_SET_ATOMICITY: 74: #####: 52: fd->atomicity = (fcntl_struct->atomicity == 0) ? 0 : 1; 75: #####: 53: *error_code = MPI_SUCCESS; 76: #####: 54: break; 15 line(s) not covered by tests in src/mpi/romio/adio/ad_nfs/ad_nfs_fcntl.c.gcov Uncovered lines in src/mpi/romio/adio/ad_nfs/ad_nfs_iwrite.c.gcov 26: -: 21: ADIO_Offset offset, ADIO_Request *request, int *error_code) 27: function ADIOI_NFS_IwriteContig called 0 returned 0% blocks executed 0% 28: #####: 22:{ 29: -: 23: int len, typesize; 30: #####: 24: int aio_errno = 0; 31: -: 25: static char myname[] = "ADIOI_NFS_IWRITECONTIG"; 32: -: 26: 33: #####: 27: MPI_Type_size(datatype, &typesize); 34: call 0 never executed 35: #####: 28: len = count * typesize; 36: -: 29: 37: #####: 30: if (file_ptr_type == ADIO_INDIVIDUAL) offset = fd->fp_ind; 38: branch 0 never executed 39: branch 1 never executed 40: #####: 31: aio_errno = ADIOI_NFS_aio(fd, buf, len, offset, 1, request); 41: call 0 never executed 42: #####: 32: if (file_ptr_type == ADIO_INDIVIDUAL) fd->fp_ind += len; 44: branch 1 never executed 45: -: 33: 46: #####: 34: fd->fp_sys_posn = -1; 47: -: 35: 48: #####: 36: if (aio_errno != 0) { 56: branch 1 never executed 57: -: 41: } 58: #####: 42: else *error_code = MPI_SUCCESS; 59: #####: 43: return; 71: -: 55: int wr, MPI_Request *request) 72: function ADIOI_NFS_aio called 0 returned 0% blocks executed 0% 73: #####: 56:{ 74: #####: 57: int err=-1, fd_sys; 78: -: 61: ADIOI_AIO_Request *aio_req; 79: -: 62: 80: #####: 63: fd_sys = fd->fd_sys; 81: -: 64: 82: #####: 65: aio_req = (ADIOI_AIO_Request*)ADIOI_Calloc(sizeof(ADIOI_AIO_Request), 1); 83: call 0 never executed 84: #####: 66: aiocbp = (struct aiocb *) ADIOI_Calloc(sizeof(struct aiocb), 1); 85: call 0 never executed 86: #####: 67: aiocbp->aio_offset = offset; 87: #####: 68: aiocbp->aio_buf = buf; 88: #####: 69: aiocbp->aio_nbytes = len; 92: -: 73:#endif 93: -: 74:#ifdef ROMIO_HAVE_STRUCT_AIOCB_WITH_AIO_FILDES 94: #####: 75: aiocbp->aio_fildes = fd_sys; 98: -: 79: aiocbp->aio_sigevent.sigev_notify = SIGEV_NONE; 99: -: 80:# endif 100: #####: 81: aiocbp->aio_sigevent.sigev_signo = 0; 104: -: 85: aiocbp->aio_reqprio = AIO_PRIO_DFL; /* not needed in DEC Unix 4.0 */ 105: -: 86:# else 106: #####: 87: aiocbp->aio_reqprio = 0; 108: -: 89:#endif 109: -: 90: 110: #####: 91: if (wr) ADIOI_WRITE_LOCK(fd, offset, SEEK_SET, len); 112: branch 1 never executed 113: call 2 never executed 114: #####: 92: else ADIOI_READ_LOCK(fd, offset, SEEK_SET, len); 116: -: 93: 117: -: 94:#ifndef ROMIO_HAVE_AIO_CALLS_NEED_FILEDES 118: #####: 95: if (wr) err = aio_write(aiocbp); 120: branch 1 never executed 121: call 2 never executed 122: #####: 96: else err = aio_read(aiocbp); 128: -: 101:#endif 129: -: 102: 130: #####: 103: this_errno = errno; 131: call 0 never executed 132: #####: 104: ADIOI_UNLOCK(fd, offset, SEEK_SET, len); 133: call 0 never executed 134: -: 105: 135: #####: 106: if (err == -1) { 136: branch 0 never executed 137: branch 1 never executed 138: #####: 107: if (this_errno == EAGAIN) { 141: -: 108: /* exceeded the max. no. of outstanding requests. 142: -: 109: complete all previous async. requests and try again. */ 143: #####: 110: ADIO_WriteContig(fd, buf, len, MPI_BYTE, ADIO_EXPLICIT_OFFSET, 144: call 0 never executed 145: -: 111: offset, NULL, &error_code); 146: #####: 112: MPIO_Completed_request_create(&fd, len, &error_code, request); 147: call 0 never executed 148: #####: 113: return 0; 149: -: 114: } else { 150: #####: 115: return -this_errno; 151: -: 116: } 152: -: 117: } 153: #####: 118: aio_req->aiocbp = aiocbp; 154: #####: 119: if (ADIOI_GEN_greq_class == 0) { 155: branch 0 never executed 156: branch 1 never executed 157: #####: 120: MPIX_Grequest_class_create(ADIOI_GEN_aio_query_fn, 161: -: 123: &ADIOI_GEN_greq_class); 162: -: 124: } 163: #####: 125: MPIX_Grequest_class_allocate(ADIOI_GEN_greq_class, aio_req, request); 164: call 0 never executed 165: #####: 126: memcpy(&(aio_req->req), request, sizeof(MPI_Request)); 166: call 0 never executed 167: #####: 127: return 0; 40 line(s) not covered by tests in src/mpi/romio/adio/ad_nfs/ad_nfs_iwrite.c.gcov Uncovered lines in src/mpi/romio/adio/ad_nfs/ad_nfs_wait.c.gcov 15: -: 10: int *error_code) 16: function ADIOI_NFS_ReadComplete called 0 returned 0% blocks executed 0% 17: #####: 11:{ 133: -: 127: int *error_code) 134: function ADIOI_NFS_WriteComplete called 0 returned 0% blocks executed 0% 135: #####: 128:{ 136: #####: 129: ADIOI_NFS_ReadComplete(request, status, error_code); 3 line(s) not covered by tests in src/mpi/romio/adio/ad_nfs/ad_nfs_wait.c.gcov Uncovered lines in src/mpi/romio/adio/ad_nfs/ad_nfs_getsh.c.gcov 21: -: 16: int *error_code) 22: function ADIOI_NFS_Get_shared_fp called 0 returned 0% blocks executed 0% 23: #####: 17:{ 27: -: 21: static char myname[] = "ADIOI_NFS_GET_SHARED_FP"; 28: -: 22: 29: #####: 23: if (fd->shared_fp_fd == ADIO_FILE_NULL) { 30: branch 0 never executed 31: branch 1 never executed 32: #####: 24: MPI_Comm_dup(MPI_COMM_SELF, &dupcommself); 33: call 0 never executed 34: #####: 25: fd->shared_fp_fd = ADIO_Open(MPI_COMM_SELF, dupcommself, 40: -: 30: 0, MPI_BYTE, MPI_BYTE, MPI_INFO_NULL, 41: -: 31: ADIO_PERM_NULL, error_code); 42: #####: 32: if (*error_code != MPI_SUCCESS) return; 43: branch 0 never executed 44: branch 1 never executed 45: #####: 33: *shared_fp = 0; 46: #####: 34: ADIOI_WRITE_LOCK(fd->shared_fp_fd, 0, SEEK_SET, sizeof(ADIO_Offset)); 49: -: 36: MPE_Log_event( ADIOI_MPE_read_a, 0, NULL ); 50: -: 37:#endif 51: #####: 38: err = read(fd->shared_fp_fd->fd_sys, shared_fp, sizeof(ADIO_Offset)); 59: -: 45: } 60: -: 46: else { 61: #####: 47: ADIOI_WRITE_LOCK(fd->shared_fp_fd, 0, SEEK_SET, sizeof(ADIO_Offset)); 65: -: 50: MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL ); 66: -: 51:#endif 67: #####: 52: err = lseek(fd->shared_fp_fd->fd_sys, 0, SEEK_SET); 70: -: 54: MPE_Log_event( ADIOI_MPE_lseek_b, 0, NULL ); 71: -: 55:#endif 72: #####: 56: if (err == 0) { 76: -: 58: MPE_Log_event( ADIOI_MPE_read_a, 0, NULL ); 77: -: 59:#endif 78: #####: 60: err = read(fd->shared_fp_fd->fd_sys, shared_fp, 83: -: 64:#endif 84: -: 65: } 85: #####: 66: if (err == -1) { 86: branch 0 never executed 87: branch 1 never executed 88: #####: 67: ADIOI_UNLOCK(fd->shared_fp_fd, 0, SEEK_SET, sizeof(ADIO_Offset)); 89: call 0 never executed 90: #####: 68: *error_code = MPIO_Err_create_code(MPI_SUCCESS, 95: -: 70: __LINE__, MPI_ERR_IO, "**io", 96: -: 71: "**io %s", strerror(errno)); 97: #####: 72: return; 99: -: 74: } 100: -: 75: 101: #####: 76: new_fp = *shared_fp + incr; 104: -: 79: MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL ); 105: -: 80:#endif 106: #####: 81: err = lseek(fd->shared_fp_fd->fd_sys, 0, SEEK_SET); 109: -: 83: MPE_Log_event( ADIOI_MPE_lseek_b, 0, NULL ); 110: -: 84:#endif 111: #####: 85: if (err == 0) { 115: -: 87: MPE_Log_event( ADIOI_MPE_write_a, 0, NULL ); 116: -: 88:#endif 117: #####: 89: err = write(fd->shared_fp_fd->fd_sys, &new_fp, sizeof(ADIO_Offset)); 121: -: 92:#endif 122: -: 93: } 123: #####: 94: ADIOI_UNLOCK(fd->shared_fp_fd, 0, SEEK_SET, sizeof(ADIO_Offset)); 124: call 0 never executed 125: #####: 95: if (err == -1) { 126: branch 0 never executed 127: branch 1 never executed 128: #####: 96: *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, 134: -: 99: "**io %s", strerror(errno)); 135: -: 100: } 136: #####: 101: else *error_code = MPI_SUCCESS; 24 line(s) not covered by tests in src/mpi/romio/adio/ad_nfs/ad_nfs_getsh.c.gcov Uncovered lines in src/mpi/romio/adio/ad_nfs/ad_nfs_resize.c.gcov 25: -: 20:void ADIOI_NFS_Resize(ADIO_File fd, ADIO_Offset size, int *error_code) 26: function ADIOI_NFS_Resize called 0 returned 0% blocks executed 0% 27: #####: 21:{ 29: -: 23: static char myname[] = "ADIOI_GEN_RESIZE"; 30: -: 24: 31: #####: 25: err = ftruncate(fd->fd_sys, size); 46: -: 26: 47: -: 35: 48: #####: 36: *error_code = MPI_SUCCESS; 3 line(s) not covered by tests in src/mpi/romio/adio/ad_nfs/ad_nfs_resize.c.gcov Uncovered lines in src/mpi/romio/adio/ad_nfs/stdlib.h.gcov 289: -: 284:__NTH (atoi (__const char *__nptr)) 290: function atoi called 0 returned 0% blocks executed 0% 291: #####: 285:{ 292: #####: 286: return (int) strtol (__nptr, (char **) NULL, 10); 2 line(s) not covered by tests in src/mpi/romio/adio/ad_nfs/stdlib.h.gcov Uncovered lines in src/mpi/romio/adio/ad_nfs/ad_nfs_done.c.gcov 15: -: 10: int *error_code) 16: function ADIOI_NFS_ReadDone called 0 returned 0% blocks executed 0% 17: #####: 11:{ 18: #####: 12: *error_code = MPI_SUCCESS; 19: #####: 13: return 1; 22: -: 16: int *error_code) 23: function ADIOI_NFS_WriteDone called 0 returned 0% blocks executed 0% 24: #####: 17:{ 25: #####: 18: return ADIOI_NFS_ReadDone(request, status, error_code); 5 line(s) not covered by tests in src/mpi/romio/adio/ad_nfs/ad_nfs_done.c.gcov Uncovered lines in src/mpi/romio/adio/ad_nfs/ad_nfs_iread.c.gcov 19: -: 14: int *error_code) 20: function ADIOI_NFS_IreadContig called 0 returned 0% blocks executed 0% 21: #####: 15:{ 22: -: 16: int len, typesize; 23: #####: 17: int aio_errno = 0; 24: -: 18: static char myname[] = "ADIOI_NFS_IREADCONTIG"; 25: -: 19: 26: #####: 20: MPI_Type_size(datatype, &typesize); 27: call 0 never executed 28: #####: 21: len = count * typesize; 29: -: 22: 30: #####: 23: if (file_ptr_type == ADIO_INDIVIDUAL) offset = fd->fp_ind; 31: branch 0 never executed 32: branch 1 never executed 33: #####: 24: aio_errno = ADIOI_NFS_aio(fd, buf, len, offset, 0, request); 34: call 0 never executed 35: #####: 25: if (file_ptr_type == ADIO_INDIVIDUAL) fd->fp_ind += len; 37: branch 1 never executed 38: -: 26: 39: #####: 27: fd->fp_sys_posn = -1; 40: -: 28: 41: #####: 29: if (aio_errno != 0) { 49: branch 1 never executed 50: -: 34: } 51: #####: 35: else *error_code = MPI_SUCCESS; 10 line(s) not covered by tests in src/mpi/romio/adio/ad_nfs/ad_nfs_iread.c.gcov Uncovered lines in src/mpi/romio/adio/ad_nfs/ad_nfs_setsh.c.gcov 36: -: 31:void ADIOI_NFS_Set_shared_fp(ADIO_File fd, ADIO_Offset offset, int *error_code) 37: function ADIOI_NFS_Set_shared_fp called 0 returned 0% blocks executed 0% 38: #####: 32:{ 41: -: 35: static char myname[] = "ADIOI_NFS_SET_SHARED_FP"; 42: -: 36: 43: #####: 37: if (fd->shared_fp_fd == ADIO_FILE_NULL) { 44: branch 0 never executed 45: branch 1 never executed 46: #####: 38: MPI_Comm_dup(MPI_COMM_SELF, &dupcommself); 47: call 0 never executed 48: #####: 39: fd->shared_fp_fd = ADIO_Open(MPI_COMM_SELF, dupcommself, 55: -: 45: } 56: -: 46: 57: #####: 47: if (*error_code != MPI_SUCCESS) return; 59: branch 1 never executed 60: -: 48: 61: #####: 49: ADIOI_WRITE_LOCK(fd->shared_fp_fd, 0, SEEK_SET, sizeof(ADIO_Offset)); 64: -: 51: MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL ); 65: -: 52:#endif 66: #####: 53: lseek(fd->shared_fp_fd->fd_sys, 0, SEEK_SET); 72: -: 58: MPE_Log_event( ADIOI_MPE_write_a, 0, NULL ); 73: -: 59:#endif 74: #####: 60: err = write(fd->shared_fp_fd->fd_sys, &offset, sizeof(ADIO_Offset)); 77: -: 62: MPE_Log_event( ADIOI_MPE_write_b, 0, NULL ); 78: -: 63:#endif 79: #####: 64: ADIOI_UNLOCK(fd->shared_fp_fd, 0, SEEK_SET, sizeof(ADIO_Offset)); 80: call 0 never executed 81: -: 65: 82: #####: 66: if (err == -1) { 83: branch 0 never executed 84: branch 1 never executed 85: #####: 67: *error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, 91: -: 70: "**io %s", strerror(errno)); 92: -: 71: } 93: #####: 72: else *error_code = MPI_SUCCESS; 12 line(s) not covered by tests in src/mpi/romio/adio/ad_nfs/ad_nfs_setsh.c.gcov Uncovered lines in src/mpi/romio/adio/ad_nfs/ad_nfs_features.c.gcov 9: -: 4:int ADIOI_NFS_Feature(ADIO_File fd, int flag) 10: function ADIOI_NFS_Feature called 0 returned 0% blocks executed 0% 11: #####: 5:{ 12: #####: 6: switch(flag) { 17: -: 9: case ADIO_SEQUENTIAL: 18: -: 10: case ADIO_DATA_SIEVING_WRITES: 19: #####: 11: return 1; 20: -: 12: case ADIO_SCALABLE_OPEN: 21: -: 13: default: 22: #####: 14: return 0; 4 line(s) not covered by tests in src/mpi/romio/adio/ad_nfs/ad_nfs_features.c.gcov Uncovered lines in src/mpi/romio/adio/ad_ufs/ad_ufs_open.c.gcov 28: 5572: 18: perm = old_mask ^ 0666; 29: -: 19: } 30: #####: 20: else perm = fd->perm; 71: -: 46: MPE_Log_event( ADIOI_MPE_lseek_a, 0, NULL ); 72: -: 47:#endif 73: #####: 48: fd->fp_ind = fd->fp_sys_posn = lseek(fd->fd_sys, 0, SEEK_END); 2 line(s) not covered by tests in src/mpi/romio/adio/ad_ufs/ad_ufs_open.c.gcov All code covered by tests in src/mpi/romio/mpi-io/close.c.gcov All code covered by tests in src/mpi/romio/mpi-io/read.c.gcov Uncovered lines in src/mpi/romio/mpi-io/open.c.gcov 193: branch 0 taken 0% (fallthrough) 194: branch 1 taken 100% 195: #####: 146: filename = tmp + 1; 222: branch 4 never executed 223: -: 165: { 224: #####: 166: error_code = MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, 227: -: 168: MPI_ERR_UNSUPPORTED_OPERATION, 228: -: 169: "**iosequnsupported", 0); 229: #####: 170: ADIO_Close(*fh, &error_code); 253: branch 0 taken 0% (fallthrough) 254: branch 1 taken 100% 255: #####: 186: if (rank == (*fh)->hints->ranklist[0]) /* only one person need set the sharedfp */ 256: branch 0 never executed 257: branch 1 never executed 258: #####: 187: ADIO_Set_shared_fp(*fh, (*fh)->fp_ind, &error_code); 259: call 0 never executed 260: #####: 188: MPI_Barrier(dupcomm); 6 line(s) not covered by tests in src/mpi/romio/mpi-io/open.c.gcov All code covered by tests in src/mpi/romio/mpi-io/write.c.gcov All code covered by tests in src/mpi/romio/mpi-io/set_view.c.gcov Uncovered lines in src/mpi/romio/mpi-io/iread.c.gcov 228: -: 138: /* to maintain strict atomicity semantics with other concurrent 229: -: 139: operations, lock (exclusive) and call blocking routine */ 230: #####: 140: if (ADIO_Feature(fh, ADIO_LOCKS)) 233: branch 2 never executed 234: -: 141: { 235: #####: 142: ADIOI_WRITE_LOCK(fh, off, SEEK_SET, bufsize); 237: -: 143: } 238: -: 144: 239: #####: 145: ADIO_ReadContig(fh, buf, count, datatype, file_ptr_type, 241: -: 146: off, &status, &error_code); 242: -: 147: 243: #####: 148: if (ADIO_Feature(fh, ADIO_LOCKS)) 246: branch 2 never executed 247: -: 149: { 248: #####: 150: ADIOI_UNLOCK(fh, off, SEEK_SET, bufsize); 249: call 0 never executed 250: -: 151: } 251: #####: 152: if (error_code == MPI_SUCCESS) { 252: branch 0 never executed 253: branch 1 never executed 254: #####: 153: nbytes = count*datatype_size; 255: -: 154: } 256: #####: 155: MPIO_Completed_request_create(&fh, nbytes, &error_code, request); 8 line(s) not covered by tests in src/mpi/romio/mpi-io/iread.c.gcov Uncovered lines in src/mpi/romio/mpi-io/iwrite.c.gcov 230: -: 140: /* to maintain strict atomicity semantics with other concurrent 231: -: 141: operations, lock (exclusive) and call blocking routine */ 232: #####: 142: if (ADIO_Feature(fh, ADIO_LOCKS) ) 235: branch 2 never executed 236: -: 143: { 237: #####: 144: ADIOI_WRITE_LOCK(fh, off, SEEK_SET, bufsize); 239: -: 145: } 240: -: 146: 241: #####: 147: ADIO_WriteContig(fh, buf, count, datatype, file_ptr_type, off, 243: -: 148: &status, &error_code); 244: -: 149: 245: #####: 150: if (ADIO_Feature(fh, ADIO_LOCKS) ) 248: branch 2 never executed 249: -: 151: { 250: #####: 152: ADIOI_UNLOCK(fh, off, SEEK_SET, bufsize); 251: call 0 never executed 252: -: 153: } 253: #####: 154: if (error_code == MPI_SUCCESS) { 254: branch 0 never executed 255: branch 1 never executed 256: #####: 155: nbytes = count * datatype_size; 257: -: 156: } 258: -: 157: 259: #####: 158: MPIO_Completed_request_create(&fh, nbytes, &error_code, request); 8 line(s) not covered by tests in src/mpi/romio/mpi-io/iwrite.c.gcov All code covered by tests in src/mpi/romio/mpi-io/seek.c.gcov All code covered by tests in src/mpi/romio/mpi-io/get_posn.c.gcov Uncovered lines in src/mpi/romio/mpi-io/delete.c.gcov 109: branch 0 taken 0% (fallthrough) 110: branch 1 taken 100% 111: #####: 80: filename = tmp + 1; 1 line(s) not covered by tests in src/mpi/romio/mpi-io/delete.c.gcov All code covered by tests in src/mpi/romio/mpi-io/read_all.c.gcov All code covered by tests in src/mpi/romio/mpi-io/read_at.c.gcov All code covered by tests in src/mpi/romio/mpi-io/read_atall.c.gcov All code covered by tests in src/mpi/romio/mpi-io/iread_at.c.gcov All code covered by tests in src/mpi/romio/mpi-io/iwrite_at.c.gcov All code covered by tests in src/mpi/romio/mpi-io/write_all.c.gcov All code covered by tests in src/mpi/romio/mpi-io/get_bytoff.c.gcov All code covered by tests in src/mpi/romio/mpi-io/write_at.c.gcov All code covered by tests in src/mpi/romio/mpi-io/write_atall.c.gcov Uncovered lines in src/mpi/romio/mpi-io/get_view.c.gcov 117: -: 81: re-implement MPI_Type_contiguous in an unexpected way. Either use 118: -: 82: NMPI_Barrier as in MPICH2 or PMPI_Type_contiguous */ 119: #####: 83: MPI_Type_contiguous(1, fh->etype, ©_etype); 121: -: 84: 122: -: 85: /* FIXME: Ditto for MPI_Type_commit - use NMPI or PMPI */ 123: #####: 86: MPI_Type_commit(©_etype); 124: call 0 never executed 125: #####: 87: *etype = copy_etype; 3 line(s) not covered by tests in src/mpi/romio/mpi-io/get_view.c.gcov All code covered by tests in src/mpi/romio/mpi-io/get_group.c.gcov All code covered by tests in src/mpi/romio/mpi-io/get_amode.c.gcov All code covered by tests in src/mpi/romio/mpi-io/get_extent.c.gcov All code covered by tests in src/mpi/romio/mpi-io/fsync.c.gcov All code covered by tests in src/mpi/romio/mpi-io/get_atom.c.gcov Uncovered lines in src/mpi/romio/mpi-io/set_atom.c.gcov 109: branch 0 taken 0% (fallthrough) 110: branch 1 taken 100% 111: #####: 71: error_code = MPI_SUCCESS; 112: #####: 72: goto fn_exit; 2 line(s) not covered by tests in src/mpi/romio/mpi-io/set_atom.c.gcov All code covered by tests in src/mpi/romio/mpi-io/set_size.c.gcov All code covered by tests in src/mpi/romio/mpi-io/get_size.c.gcov All code covered by tests in src/mpi/romio/mpi-io/prealloc.c.gcov All code covered by tests in src/mpi/romio/mpi-io/file_f2c.c.gcov All code covered by tests in src/mpi/romio/mpi-io/file_c2f.c.gcov All code covered by tests in src/mpi/romio/mpi-io/set_info.c.gcov All code covered by tests in src/mpi/romio/mpi-io/get_info.c.gcov All code covered by tests in src/mpi/romio/mpi-io/rd_atallb.c.gcov All code covered by tests in src/mpi/romio/mpi-io/rd_atalle.c.gcov All code covered by tests in src/mpi/romio/mpi-io/read_allb.c.gcov All code covered by tests in src/mpi/romio/mpi-io/read_alle.c.gcov All code covered by tests in src/mpi/romio/mpi-io/wr_atallb.c.gcov All code covered by tests in src/mpi/romio/mpi-io/wr_atalle.c.gcov All code covered by tests in src/mpi/romio/mpi-io/write_allb.c.gcov All code covered by tests in src/mpi/romio/mpi-io/write_alle.c.gcov All code covered by tests in src/mpi/romio/mpi-io/get_posn_sh.c.gcov Uncovered lines in src/mpi/romio/mpi-io/iread_sh.c.gcov 171: -: 104: operations, lock (exclusive) and call blocking routine */ 172: -: 105: 173: #####: 106: if (fh->file_system != ADIO_NFS) 175: branch 1 never executed 176: -: 107: { 177: #####: 108: ADIOI_WRITE_LOCK(fh, off, SEEK_SET, bufsize); 179: -: 109: } 180: -: 110: 181: #####: 111: ADIO_ReadContig(fh, buf, count, datatype, ADIO_EXPLICIT_OFFSET, 183: -: 112: off, &status, &error_code); 184: -: 113: 185: #####: 114: if (fh->file_system != ADIO_NFS) 187: branch 1 never executed 188: -: 115: { 189: #####: 116: ADIOI_UNLOCK(fh, off, SEEK_SET, bufsize); 190: call 0 never executed 191: -: 117: } 192: #####: 118: if (error_code == MPI_SUCCESS){ 193: branch 0 never executed 194: branch 1 never executed 195: #####: 119: nbytes = count * datatype_size; 196: -: 120: } 197: #####: 121: MPIO_Completed_request_create(&fh, nbytes, &error_code, request); 201: -: 124: else 202: -: 125: { 203: #####: 126: ADIO_IreadStrided(fh, buf, count, datatype, ADIO_EXPLICIT_OFFSET, 9 line(s) not covered by tests in src/mpi/romio/mpi-io/iread_sh.c.gcov Uncovered lines in src/mpi/romio/mpi-io/read_sh.c.gcov 185: branch 2 never executed 186: branch 3 never executed 187: #####: 112: ADIOI_WRITE_LOCK(fh, off, SEEK_SET, bufsize); 197: branch 2 never executed 198: branch 3 never executed 199: #####: 118: ADIOI_UNLOCK(fh, off, SEEK_SET, bufsize); 202: -: 120: else 203: -: 121: { 204: #####: 122: ADIO_ReadStrided(fh, buf, count, datatype, ADIO_EXPLICIT_OFFSET, 3 line(s) not covered by tests in src/mpi/romio/mpi-io/read_sh.c.gcov Uncovered lines in src/mpi/romio/mpi-io/write_sh.c.gcov 182: branch 2 never executed 183: branch 3 never executed 184: #####: 112: ADIOI_WRITE_LOCK(fh, off, SEEK_SET, bufsize); 194: branch 2 never executed 195: branch 3 never executed 196: #####: 118: ADIOI_UNLOCK(fh, off, SEEK_SET, bufsize); 199: -: 120: else 200: -: 121: { 201: #####: 122: ADIO_WriteStrided(fh, buf, count, datatype, ADIO_EXPLICIT_OFFSET, 3 line(s) not covered by tests in src/mpi/romio/mpi-io/write_sh.c.gcov Uncovered lines in src/mpi/romio/mpi-io/iwrite_sh.c.gcov 140: branch 1 taken 100% 141: -: 82: /* note: ADIO_Get_shared_fp should have set up error code already? */ 142: #####: 83: MPIO_Err_return_file(fh, error_code); 163: -: 96: operations, lock (exclusive) and call blocking routine */ 164: -: 97: 165: #####: 98: if (fh->file_system != ADIO_NFS) 166: branch 0 never executed 167: branch 1 never executed 168: #####: 99: ADIOI_WRITE_LOCK(fh, off, SEEK_SET, bufsize); 169: call 0 never executed 170: -: 100: 171: #####: 101: ADIO_WriteContig(fh, buf, count, datatype, ADIO_EXPLICIT_OFFSET, 173: -: 102: off, &status, &error_code); 174: -: 103: 175: #####: 104: if (fh->file_system != ADIO_NFS) 176: branch 0 never executed 177: branch 1 never executed 178: #####: 105: ADIOI_UNLOCK(fh, off, SEEK_SET, bufsize); 179: call 0 never executed 180: -: 106: 181: #####: 107: MPIO_Completed_request_create(&fh, bufsize, &error_code, request); 184: -: 109: } 185: -: 110: else 186: #####: 111: ADIO_IwriteStrided(fh, buf, count, datatype, ADIO_EXPLICIT_OFFSET, 8 line(s) not covered by tests in src/mpi/romio/mpi-io/iwrite_sh.c.gcov Uncovered lines in src/mpi/romio/mpi-io/seek_sh.c.gcov 164: -: 102: case MPI_SEEK_CUR: 165: -: 103: /* get current location of shared file pointer */ 166: #####: 104: ADIO_Get_shared_fp(fh, 0, &curr_offset, &error_code); 182: #####: 104: ADIO_Get_shared_fp(fh, 0, &curr_offset, &error_code); 183: call 0 never executed 184: #####: 117: offset += curr_offset; 202: -: 131: case MPI_SEEK_END: 203: -: 132: /* find offset corr. to end of file */ 204: #####: 133: ADIOI_Get_eof_offset(fh, &eof_offset); 205: call 0 never executed 206: #####: 134: offset += eof_offset; 4 line(s) not covered by tests in src/mpi/romio/mpi-io/seek_sh.c.gcov All code covered by tests in src/mpi/romio/mpi-io/read_ord.c.gcov All code covered by tests in src/mpi/romio/mpi-io/read_orde.c.gcov All code covered by tests in src/mpi/romio/mpi-io/write_ordb.c.gcov All code covered by tests in src/mpi/romio/mpi-io/read_ordb.c.gcov All code covered by tests in src/mpi/romio/mpi-io/write_ord.c.gcov All code covered by tests in src/mpi/romio/mpi-io/write_orde.c.gcov Uncovered lines in src/mpi/romio/mpi-io/mpiu_greq.c.gcov 56: -: 44:int MPIU_Greq_cancel_fn(void *extra_state, int complete) 57: function MPIU_Greq_cancel_fn called 0 returned 0% blocks executed 0% 58: #####: 45:{ 61: -: 48: 62: -: 49: /* can't cancel */ 63: #####: 50: return MPI_SUCCESS; 2 line(s) not covered by tests in src/mpi/romio/mpi-io/mpiu_greq.c.gcov All code covered by tests in src/mpi/romio/mpi-io/mpich2_fileutil.c.gcov Uncovered lines in src/mpi/romio/mpi-io/register_datarep.c.gcov 60: -: 55: void *state) 61: function PMPI_Register_datarep called 0 returned 0% blocks executed 0% 62: #####: 56:{ 64: -: 58: ADIOI_Datarep *datarep; 65: -: 59: static char myname[] = "MPI_REGISTER_DATAREP"; 66: #####: 60: MPIU_THREADPRIV_DECL; 67: -: 61: 68: #####: 62: MPIU_THREAD_CS_ENTER(ALLFUNC,); 108: -: 63: 109: -: 80: 110: #####: 81: MPIR_MPIOInit(&error_code); 111: call 0 never executed 112: #####: 82: if (error_code != MPI_SUCCESS) goto fn_exit; 154: -: 83: 155: -: 112: 156: #####: 113: datarep = ADIOI_Malloc(sizeof(ADIOI_Datarep)); 160: -: 116: ifdef MPICH2 */ 161: -: 117:#ifdef MPICH2 162: #####: 118: datarep->name = MPIU_Strdup(name); 165: -: 120: datarep->name = ADIOI_Strdup(name); 166: -: 121:#endif 167: #####: 122: datarep->state = state; 168: #####: 123: datarep->read_conv_fn = read_conv_fn; 169: #####: 124: datarep->write_conv_fn = write_conv_fn; 170: #####: 125: datarep->extent_fn = extent_fn; 171: #####: 126: datarep->next = ADIOI_Datarep_head; 172: -: 127: 173: #####: 128: ADIOI_Datarep_head = datarep; 174: -: 129: 175: #####: 130: error_code = MPI_SUCCESS; 176: -: 131: 177: #####: 132:fn_exit: 178: #####: 133: MPIU_THREAD_CS_EXIT(ALLFUNC,); 192: call 13 never executed 193: -: 134: 194: #####: 135: return error_code; 17 line(s) not covered by tests in src/mpi/romio/mpi-io/register_datarep.c.gcov All code covered by tests in src/mpi/romio/mpi-io/mpir-mpioinit.c.gcov All code covered by tests in src/mpi/attr/attr_delete.c.gcov All code covered by tests in src/mpi/attr/attr_get.c.gcov All code covered by tests in src/mpi/attr/attr_put.c.gcov All code covered by tests in src/mpi/attr/comm_create_keyval.c.gcov All code covered by tests in src/mpi/attr/comm_delete_attr.c.gcov All code covered by tests in src/mpi/attr/comm_free_keyval.c.gcov Uncovered lines in src/mpi/attr/comm_get_attr.c.gcov 222: branch 1 taken 100% 223: -: 148: { 224: #####: 149: *attr_val_p = &attr_copy.universe; 228: branch 1 taken 100% 229: -: 152: { 230: #####: 153: *flag = 0; 252: -: 170: else 253: -: 171: { 254: #####: 172: attr_copy.universe = MPIR_UNIVERSE_SIZE_NOT_AVAILABLE; 255: #####: 173: *flag = 0; 269: branch 0 taken 0% (fallthrough) 270: branch 1 taken 100% 271: #####: 187: *flag = 0; 317: -: 219: correct location in the word. */ 318: -: 220:#if defined(WORDS_LITTLEENDIAN) || (SIZEOF_VOID_P == SIZEOF_INT) 319: #####: 221: *(void**)attribute_val = &(p->value); 6 line(s) not covered by tests in src/mpi/attr/comm_get_attr.c.gcov All code covered by tests in src/mpi/attr/comm_set_attr.c.gcov All code covered by tests in src/mpi/attr/keyval_create.c.gcov All code covered by tests in src/mpi/attr/keyval_free.c.gcov All code covered by tests in src/mpi/attr/type_create_keyval.c.gcov All code covered by tests in src/mpi/attr/type_delete_attr.c.gcov All code covered by tests in src/mpi/attr/type_free_keyval.c.gcov Uncovered lines in src/mpi/attr/type_get_attr.c.gcov 159: -: 99: correct location in the word. */ 160: -: 100:#if defined(WORDS_LITTLEENDIAN) || (SIZEOF_VOID_P == SIZEOF_INT) 161: #####: 101: *(void**)attribute_val = &(p->value); 173: branch 0 taken 0% (fallthrough) 174: branch 1 taken 100% 175: #####: 113: *(void**)attribute_val = &(p->value); 2 line(s) not covered by tests in src/mpi/attr/type_get_attr.c.gcov All code covered by tests in src/mpi/attr/type_set_attr.c.gcov All code covered by tests in src/mpi/attr/win_create_keyval.c.gcov All code covered by tests in src/mpi/attr/win_delete_attr.c.gcov All code covered by tests in src/mpi/attr/win_free_keyval.c.gcov Uncovered lines in src/mpi/attr/win_get_attr.c.gcov 227: -: 153: correct location in the word. */ 228: -: 154:#if defined(WORDS_LITTLEENDIAN) || (SIZEOF_VOID_P == SIZEOF_INT) 229: #####: 155: *(void**)attribute_val = &(p->value); 241: branch 0 taken 0% (fallthrough) 242: branch 1 taken 100% 243: #####: 167: *(void**)attribute_val = &(p->value); 2 line(s) not covered by tests in src/mpi/attr/win_get_attr.c.gcov All code covered by tests in src/mpi/attr/win_set_attr.c.gcov All code covered by tests in src/mpi/attr/dup_fn.c.gcov Uncovered lines in src/mpi/attr/attrutil.c.gcov 383: branch 0 taken 0% (fallthrough) 384: branch 1 taken 100% 385: #####: 306: attrib_val = &attrib; 409: branch 0 taken 0% (fallthrough) 410: branch 1 taken 100% 411: #####: 328: attrib_val = &attrib; 435: branch 0 taken 0% (fallthrough) 436: branch 1 taken 100% 437: #####: 345: return; 3 line(s) not covered by tests in src/mpi/attr/attrutil.c.gcov Uncovered lines in src/mpi/coll/allreduce.c.gcov 211: 3451: 181: uop = (MPI_User_function *) op_ptr->function.c_function; 212: -: 182: else 213: #####: 183: uop = (MPI_User_function *) op_ptr->function.f77_function; 468: branch 0 taken 0% 469: branch 1 taken 100% (fallthrough) 470: #####: 341: cnts[i] = count/pof2; 475: branch 0 taken 0% 476: branch 1 taken 100% (fallthrough) 477: #####: 346: disps[i] = disps[i-1] + cnts[i-1]; 483: branch 0 taken 0% 484: branch 1 taken 100% (fallthrough) 485: #####: 352: newdst = newrank ^ mask; 486: -: 353: /* find real rank of dest */ 487: #####: 354: dst = (newdst < rem) ? newdst*2 + 1 : newdst + rem; 489: branch 1 never executed 490: -: 355: 491: #####: 356: send_cnt = recv_cnt = 0; 492: #####: 357: if (newrank < newdst) { 493: branch 0 never executed 494: branch 1 never executed 495: #####: 358: send_idx = recv_idx + pof2/(mask*2); 496: #####: 359: for (i=send_idx; i newdst) send_idx = recv_idx; 621: branch 1 never executed 622: -: 448: 623: #####: 449: mask >>= 1; 657: branch 0 taken 0% (fallthrough) 658: branch 1 taken 100% 659: #####: 474: mpi_errno = MPIU_THREADPRIV_FIELD(op_errno); 768: branch 0 taken 0% (fallthrough) 769: branch 1 taken 100% 770: #####: 548: MPIR_Setup_intercomm_localcomm( comm_ptr ); 1057: branch 3 never executed 1058: -: 676: { 1059: #####: 677: mpi_errno = comm_ptr->coll_fns->Allreduce(sendbuf, recvbuf, count, 1127: branch 0 taken 0% (fallthrough) 1128: branch 1 taken 100% 1129: #####: 720: mpi_errno = MPIR_Localcopy(sendbuf, count, datatype, 48 line(s) not covered by tests in src/mpi/coll/allreduce.c.gcov Uncovered lines in src/mpi/coll/barrier.c.gcov 504: branch 3 never executed 505: -: 407: { 506: #####: 408: mpi_errno = comm_ptr->coll_fns->Barrier(comm_ptr); 539: branch 0 taken 0% (fallthrough) 540: branch 1 taken 100% 541: #####: 423: MPIR_Nest_decr(); 553: branch 0 taken 0% (fallthrough) 554: branch 1 taken 100% 555: #####: 432: MPIR_Nest_decr(); 3 line(s) not covered by tests in src/mpi/coll/barrier.c.gcov All code covered by tests in src/mpi/coll/op_create.c.gcov All code covered by tests in src/mpi/coll/op_free.c.gcov Uncovered lines in src/mpi/coll/bcast.c.gcov 52: branch 4 taken 0% (fallthrough) 53: branch 5 taken 100% 54: #####: 37: *ceil_pof2 = pof2; 139: -: 99: } 140: -: 100: else { 141: #####: 101: mpi_errno = NMPI_Pack_size(1, datatype, comm, &type_size); 381: branch 1 taken 100% 382: -: 274: { 383: #####: 275: curr_size = 0; /* this process doesn't receive any data 510: branch 1 taken 100% 511: -: 381: 512: #####: 382: if (HANDLE_GET_KIND(datatype) == HANDLE_KIND_BUILTIN) 513: branch 0 never executed 514: branch 1 never executed 515: #####: 383: is_contig = 1; 516: -: 384: else { 517: #####: 385: MPID_Datatype_get_ptr(datatype, dtp); 521: branch 3 never executed 522: call 4 never executed 523: #####: 386: is_contig = dtp->is_contig; 524: -: 387: } 525: -: 388: 526: #####: 389: is_homogeneous = 1; 537: -: 400: * possible, and MPI_Pack_size() in other places. 538: -: 401: */ 539: #####: 402: if (is_homogeneous) { 540: branch 0 never executed 541: branch 1 never executed 542: #####: 403: MPID_Datatype_get_size_macro(datatype, type_size); 548: -: 404: } 549: -: 405: else { 550: #####: 406: mpi_errno = NMPI_Pack_size(1, datatype, comm, &type_size); 555: call 2 never executed 556: -: 408: } 557: #####: 409: nbytes = type_size * count; 558: -: 410: 559: #####: 411: if (is_contig && is_homogeneous) 562: -: 412: { 563: -: 413: /* contiguous and homogeneous. no need to pack. */ 564: #####: 414: mpi_errno = NMPI_Type_get_true_extent(datatype, &true_lb, 570: call 2 never executed 571: -: 417: 572: #####: 418: tmp_buf = (char *) buffer + true_lb; 574: -: 420: else 575: -: 421: { 576: #####: 422: MPIU_CHKLMEM_MALLOC(tmp_buf, void *, nbytes, mpi_errno, "tmp_buf"); 587: -: 423: 588: -: 424: /* TODO: Pipeline the packing and communication */ 589: #####: 425: position = 0; 590: #####: 426: if (rank == root) 591: branch 0 never executed 592: branch 1 never executed 593: #####: 427: NMPI_Pack(buffer, count, datatype, tmp_buf, nbytes, 597: -: 430: 598: -: 431: 599: #####: 432: scatter_size = (nbytes + comm_size - 1)/comm_size; /* ceiling division */ 600: #####: 433: curr_size = (rank == root) ? nbytes : 0; /* root starts with all the 604: -: 435: 605: -: 436: 606: #####: 437: mpi_errno = scatter_for_bcast(buffer, count, datatype, root, comm_ptr, 614: -: 441: /* medium size allgather and pof2 comm_size. use recurive doubling. */ 615: -: 442: 616: #####: 443: mask = 0x1; 617: #####: 444: i = 0; 618: #####: 445: while (mask < comm_size) 620: branch 1 never executed 621: -: 446: { 622: #####: 447: relative_dst = relative_rank ^ mask; 623: -: 448: 624: #####: 449: dst = (relative_dst + root) % comm_size; 630: -: 455: and recv into buffer */ 631: -: 456: 632: #####: 457: dst_tree_root = relative_dst >> i; 633: #####: 458: dst_tree_root <<= i; 634: -: 459: 635: #####: 460: my_tree_root = relative_rank >> i; 636: #####: 461: my_tree_root <<= i; 637: -: 462: 638: #####: 463: send_offset = my_tree_root * scatter_size; 639: #####: 464: recv_offset = dst_tree_root * scatter_size; 640: -: 465: 641: #####: 466: if (relative_dst < comm_size) 643: branch 1 never executed 644: -: 467: { 645: #####: 468: mpi_errno = MPIC_Sendrecv(((char *)tmp_buf + send_offset), 654: call 2 never executed 655: -: 474: 656: #####: 475: NMPI_Get_count(&status, MPI_BYTE, &recv_size); 657: call 0 never executed 658: #####: 476: curr_size += recv_size; 779: -: 491: 780: -: 571: 781: #####: 572: mask <<= 1; 782: #####: 573: i++; 783: -: 574: } 784: -: 575: 785: #####: 576: if (!is_contig || !is_homogeneous) 787: branch 1 never executed 788: -: 577: { 789: #####: 578: if (rank != root) 791: branch 1 never executed 792: -: 579: { 793: #####: 580: position = 0; 794: #####: 581: NMPI_Unpack(tmp_buf, nbytes, &position, buffer, count, 799: -: 585: 800: -: 586:fn_exit: 801: #####: 587: MPIU_CHKLMEM_FREEALL(); 899: -: 663: } 900: -: 664: else { 901: #####: 665: mpi_errno = NMPI_Pack_size(1, datatype, comm, &type_size); 994: branch 0 taken 0% (fallthrough) 995: branch 1 taken 100% 996: #####: 707: recvcnts[i] = 0; 1130: -: 812: } 1131: -: 813: else { 1132: #####: 814: mpi_errno = NMPI_Pack_size(1, datatype, comm_ptr->handle, &type_size); 1284: -: 884: else 1285: -: 885: { 1286: #####: 886: MPIR_Bcast_fn_or_override(MPIR_Bcast_scatter_ring_allgather, mpi_errno, 1476: -: 1021: } 1477: -: 1022: else { 1478: #####: 1023: mpi_errno = NMPI_Pack_size(1, datatype, comm, &type_size); 1498: -: 1033: else /* (nbytes >= MPIR_BCAST_SHORT_MSG) && (comm_size >= MPIR_BCAST_MIN_PROCS) */ 1499: -: 1034: { 1500: #####: 1035: if ((nbytes < MPIR_BCAST_LONG_MSG) && (MPIU_is_pof2(comm_size, NULL))) 1504: branch 3 never executed 1505: -: 1036: { 1506: #####: 1037: mpi_errno = MPIR_Bcast_scatter_doubling_allgather(buffer, count, datatype, root, comm_ptr); 1516: -: 1043: topologically aware communicator. Doing inter/intra-node 1517: -: 1044: communication phases breaks the pipelining of the algorithm. */ 1518: #####: 1045: mpi_errno = MPIR_Bcast_scatter_ring_allgather(buffer, count, datatype, root, comm_ptr); 52 line(s) not covered by tests in src/mpi/coll/bcast.c.gcov Uncovered lines in src/mpi/coll/alltoall.c.gcov 1047: branch 3 never executed 1048: -: 724: { 1049: #####: 725: mpi_errno = comm_ptr->coll_fns->Alltoall(sendbuf, sendcount, 1 line(s) not covered by tests in src/mpi/coll/alltoall.c.gcov Uncovered lines in src/mpi/coll/alltoallv.c.gcov 700: branch 3 never executed 701: -: 421: { 702: #####: 422: mpi_errno = comm_ptr->coll_fns->Alltoallv(sendbuf, sendcnts, sdispls, 1 line(s) not covered by tests in src/mpi/coll/alltoallv.c.gcov Uncovered lines in src/mpi/coll/reduce.c.gcov 132: 10622: 94: uop = (MPI_User_function *) op_ptr->function.c_function; 133: -: 95: else 134: #####: 96: uop = (MPI_User_function *) op_ptr->function.f77_function; 278: branch 0 taken 0% (fallthrough) 279: branch 1 taken 100% 280: #####: 189: (*MPIR_Process.cxx_call_op_fn)( recvbuf, tmp_buf, 455: -: 318: } 456: -: 319: else { 457: #####: 320: MPID_Op_get_ptr(op, op_ptr); 461: branch 3 never executed 462: call 4 never executed 463: #####: 321: if (op_ptr->kind == MPID_OP_USER_NONCOMMUTE) 464: branch 0 never executed 465: branch 1 never executed 466: #####: 322: is_commutative = 0; 467: -: 323: else 468: #####: 324: is_commutative = 1; 469: -: 325: 470: -: 326:#ifdef HAVE_CXX_BINDING 471: #####: 327: if (op_ptr->language == MPID_LANG_CXX) { 472: branch 0 never executed 473: branch 1 never executed 474: #####: 328: uop = (MPI_User_function *) op_ptr->function.c_function; 475: #####: 329: is_cxx_uop = 1; 477: -: 331: else 478: -: 332:#endif 479: #####: 333: if ((op_ptr->language == MPID_LANG_C)) 480: branch 0 never executed 481: branch 1 never executed 482: #####: 334: uop = (MPI_User_function *) op_ptr->function.c_function; 483: -: 335: else 484: #####: 336: uop = (MPI_User_function *) op_ptr->function.f77_function; 608: branch 0 taken 0% (fallthrough) 609: branch 1 taken 100% 610: #####: 413: (*MPIR_Process.cxx_call_op_fn)( tmp_buf, recvbuf, 737: branch 0 taken 0% (fallthrough) 738: branch 1 taken 100% 739: #####: 494: (*MPIR_Process.cxx_call_op_fn)((char *) tmp_buf + 1747: branch 3 never executed 1748: -: 1068: { 1749: #####: 1069: mpi_errno = comm_ptr->coll_fns->Reduce(sendbuf, recvbuf, count, 1841: branch 4 taken 100% 1842: -: 1113: MPIU_Get_intranode_rank(comm_ptr, root) == -1) { 1843: #####: 1114: mpi_errno = MPIR_Reduce_or_coll_fn(sendbuf, tmp_buf, count, datatype, 1859: -: 1122: /* I am not on root's node. Use tmp_buf if we 1860: -: 1123: participated in the first reduce, otherwise use sendbuf */ 1861: #####: 1124: void *buf = (comm_ptr->node_comm == NULL ? sendbuf : tmp_buf); 1862: branch 0 never executed 1863: branch 1 never executed 1864: #####: 1125: mpi_errno = MPIR_Reduce(buf, NULL, count, datatype, 18 line(s) not covered by tests in src/mpi/coll/reduce.c.gcov Uncovered lines in src/mpi/coll/scatter.c.gcov 1162: branch 3 never executed 1163: -: 728: { 1164: #####: 729: mpi_errno = comm_ptr->coll_fns->Scatter(sendbuf, sendcnt, 1 line(s) not covered by tests in src/mpi/coll/scatter.c.gcov Uncovered lines in src/mpi/coll/gather.c.gcov 1168: branch 3 never executed 1169: -: 722: { 1170: #####: 723: mpi_errno = comm_ptr->coll_fns->Gather(sendbuf, sendcnt, 1 line(s) not covered by tests in src/mpi/coll/gather.c.gcov Uncovered lines in src/mpi/coll/scatterv.c.gcov 667: branch 3 never executed 668: -: 314: { 669: #####: 315: mpi_errno = comm_ptr->coll_fns->Scatterv(sendbuf, sendcnts, displs, 1 line(s) not covered by tests in src/mpi/coll/scatterv.c.gcov Uncovered lines in src/mpi/coll/gatherv.c.gcov 202: branch 0 taken 0% (fallthrough) 203: branch 1 taken 100% 204: #####: 139: min_procs = comm_size + 1; /* Disable ssend */ 206: branch 0 taken 0% (fallthrough) 207: branch 1 taken 100% 208: #####: 141: min_procs = MPIR_GATHERV_MIN_PROCS; /* Use the default value */ 211: branch 0 taken 0% (fallthrough) 212: branch 1 taken 100% 213: #####: 144: mpi_errno = MPIC_Ssend(sendbuf, sendcnt, sendtype, root, 691: branch 3 never executed 692: -: 332: { 693: #####: 333: mpi_errno = comm_ptr->coll_fns->Gatherv(sendbuf, sendcnt, 4 line(s) not covered by tests in src/mpi/coll/gatherv.c.gcov Uncovered lines in src/mpi/coll/stdlib.h.gcov 289: -: 284:__NTH (atoi (__const char *__nptr)) 290: -: 285:{ 291: #####: 286: return (int) strtol (__nptr, (char **) NULL, 10); 1 line(s) not covered by tests in src/mpi/coll/stdlib.h.gcov Uncovered lines in src/mpi/coll/scan.c.gcov 148: 4962: 118: uop = (MPI_User_function *) op_ptr->function.c_function; 149: -: 119: else 150: #####: 120: uop = (MPI_User_function *) op_ptr->function.f77_function; 232: -: 177: partial_scan, count, datatype); 233: -: 178: else 234: #####: 179: mpi_errno = MPIR_Localcopy(recvbuf, count, datatype, 320: branch 0 taken 0% (fallthrough) 321: branch 1 taken 100% 322: #####: 239: (*MPIR_Process.cxx_call_op_fn)( partial_scan, tmp_buf, 359: branch 0 taken 0% (fallthrough) 360: branch 1 taken 100% 361: #####: 268: mpi_errno = MPIU_THREADPRIV_FIELD(op_errno); 513: call 2 never executed 514: -: 365: } 515: #####: 366: else if (sendbuf != MPI_IN_PLACE) 517: branch 1 never executed 518: -: 367: { 519: #####: 368: mpi_errno = MPIR_Localcopy(sendbuf, count, datatype, 568: branch 1 taken 100% 569: -: 393: { 570: #####: 394: localfulldata = recvbuf; 593: -: 408: comm_ptr->node_roots_comm->local_size-1) 594: -: 409: { 595: #####: 410: mpi_errno = MPIC_Send(prefulldata, count, datatype, 608: branch 2 taken 100% 609: -: 416: { 610: #####: 417: mpi_errno = MPIC_Recv(tempbuf, count, datatype, 614: -: 419: MPIR_SCAN_TAG, comm_ptr->node_roots_comm->handle, 615: -: 420: &status); 616: #####: 421: noneed = 0; 643: branch 1 taken 100% 644: -: 438:#ifdef HAVE_CXX_BINDING 645: #####: 439: int is_cxx_uop = 0; 646: -: 440:#endif 647: #####: 441: if (comm_ptr->node_comm != NULL) { 648: branch 0 never executed 649: branch 1 never executed 650: #####: 442: mpi_errno = MPIR_Bcast_or_coll_fn(tempbuf, count, datatype, 0, comm_ptr->node_comm); 657: -: 445: 658: -: 446: /* do reduce on tempbuf and recvbuf, finish scan. */ 659: #####: 447: if (HANDLE_GET_KIND(op) == HANDLE_KIND_BUILTIN) { 661: branch 1 never executed 662: -: 448: /* get the function by indexing into the op table */ 663: #####: 449: uop = MPIR_Op_table[op%16 - 1]; 664: -: 450: } 665: -: 451: else { 666: #####: 452: MPID_Op_get_ptr(op, op_ptr); 672: -: 453: 673: -: 454:#ifdef HAVE_CXX_BINDING 674: #####: 455: if (op_ptr->language == MPID_LANG_CXX) { 675: branch 0 never executed 676: branch 1 never executed 677: #####: 456: uop = (MPI_User_function *) op_ptr->function.c_function; 678: #####: 457: is_cxx_uop = 1; 681: -: 460:#endif 682: -: 461: { 683: #####: 462: if ((op_ptr->language == MPID_LANG_C)) 684: branch 0 never executed 685: branch 1 never executed 686: #####: 463: uop = (MPI_User_function *) op_ptr->function.c_function; 687: -: 464: else 688: #####: 465: uop = (MPI_User_function *) op_ptr->function.f77_function; 691: -: 468: 692: -: 469:#ifdef HAVE_CXX_BINDING 693: #####: 470: if (is_cxx_uop) { 694: branch 0 never executed 695: branch 1 never executed 696: #####: 471: (*MPIR_Process.cxx_call_op_fn)( tempbuf, recvbuf, count, 700: -: 474: else 701: -: 475:#endif 702: #####: 476: (*uop)(tempbuf, recvbuf, &count, &datatype); 969: branch 3 never executed 970: -: 594: { 971: #####: 595: mpi_errno = comm_ptr->coll_fns->Scan(sendbuf, recvbuf, count, 26 line(s) not covered by tests in src/mpi/coll/scan.c.gcov Uncovered lines in src/mpi/coll/exscan.c.gcov 158: branch 0 taken 0% (fallthrough) 159: branch 1 taken 100% 160: #####: 134: is_commutative = 0; 171: -: 143: else 172: -: 144:#endif 173: #####: 145: if ((op_ptr->language == MPID_LANG_C)) 174: branch 0 never executed 175: branch 1 never executed 176: #####: 146: uop = (MPI_User_function *) op_ptr->function.c_function; 177: -: 147: else 178: #####: 148: uop = (MPI_User_function *) op_ptr->function.f77_function; 309: -: 213: } 310: -: 214: else { 311: #####: 215: call_uop(partial_scan, tmp_buf, count, datatype); 315: call 3 never executed 316: -: 216: 317: #####: 217: mpi_errno = MPIR_Localcopy(tmp_buf, count, datatype, 335: branch 0 taken 0% (fallthrough) 336: branch 1 taken 100% 337: #####: 231: mpi_errno = MPIU_THREADPRIV_FIELD(op_errno); 614: branch 3 never executed 615: -: 358: { 616: #####: 359: mpi_errno = comm_ptr->coll_fns->Exscan(sendbuf, recvbuf, count, 8 line(s) not covered by tests in src/mpi/coll/exscan.c.gcov Uncovered lines in src/mpi/coll/allgather.c.gcov 1170: branch 3 never executed 1171: -: 823: { 1172: #####: 824: mpi_errno = comm_ptr->coll_fns->Allgather(sendbuf, sendcount, 1 line(s) not covered by tests in src/mpi/coll/allgather.c.gcov Uncovered lines in src/mpi/coll/allgatherv.c.gcov 889: branch 0 taken 0% (fallthrough) 890: branch 1 taken 100% 891: #####: 735: min = 1; 1431: branch 3 never executed 1432: -: 1057: { 1433: #####: 1058: mpi_errno = comm_ptr->coll_fns->Allgatherv(sendbuf, sendcount, 2 line(s) not covered by tests in src/mpi/coll/allgatherv.c.gcov Uncovered lines in src/mpi/coll/red_scat.c.gcov 125: branch 0 taken 0% (fallthrough) 126: branch 1 taken 100% 127: #####: 112: is_commutative = 1; 128: -: 113: /* get the function by indexing into the op table */ 129: #####: 114: uop = MPIR_Op_table[op%16 - 1]; 141: 1956: 119: is_commutative = 0; 142: -: 120: else 143: #####: 121: is_commutative = 1; 147: branch 0 taken 0% (fallthrough) 148: branch 1 taken 100% 149: #####: 125: uop = (MPI_User_function *) op_ptr->function.c_function; 150: #####: 126: is_cxx_uop = 1; 157: 1956: 131: uop = (MPI_User_function *) op_ptr->function.c_function; 158: -: 132: else 159: #####: 133: uop = (MPI_User_function *) op_ptr->function.f77_function; 462: branch 0 taken 0% (fallthrough) 463: branch 1 taken 100% 464: #####: 340: uop = (MPI_User_function *) op_ptr->function.c_function; 465: #####: 341: is_cxx_uop = 1; 472: 4176: 346: uop = (MPI_User_function *) op_ptr->function.c_function; 473: -: 347: else 474: #####: 348: uop = (MPI_User_function *) op_ptr->function.f77_function; 498: branch 0 taken 0% (fallthrough) 499: branch 1 taken 100% 500: #####: 360: goto fn_exit; 633: branch 0 taken 0% (fallthrough) 634: branch 1 taken 100% 635: #####: 445: (*MPIR_Process.cxx_call_op_fn)( tmp_recvbuf, tmp_results, 761: -: 522: MPIR_REDUCE_SCATTER_TAG, comm, 762: -: 523: MPI_STATUS_IGNORE); 763: #####: 524: else if ((send_cnt == 0) && (recv_cnt != 0)) 764: branch 0 never executed 765: branch 1 never executed 766: #####: 525: mpi_errno = MPIC_Recv((char *) tmp_recvbuf + 770: -: 528: MPIR_REDUCE_SCATTER_TAG, comm, 771: -: 529: MPI_STATUS_IGNORE); 772: #####: 530: else if ((recv_cnt == 0) && (send_cnt != 0)) 773: branch 0 never executed 774: branch 1 never executed 775: #####: 531: mpi_errno = MPIC_Send((char *) tmp_results + 795: branch 0 taken 0% (fallthrough) 796: branch 1 taken 100% 797: #####: 545: (*MPIR_Process.cxx_call_op_fn)((char *) tmp_recvbuf + 875: -: 600: use (p-1) pairwise exchanges */ 876: -: 601: 877: #####: 602: if (sendbuf != MPI_IN_PLACE) { 879: branch 1 never executed 880: -: 603: /* copy local data into recvbuf */ 881: #####: 604: mpi_errno = MPIR_Localcopy(((char *)sendbuf+disps[rank]*extent), 890: -: 609: 891: -: 610: /* allocate temporary buffer to store incoming data */ 892: #####: 611: MPIU_CHKLMEM_MALLOC(tmp_recvbuf, void *, recvcnts[rank]*(MPIR_MAX(true_extent,extent))+1, mpi_errno, "tmp_recvbuf"); 902: call 9 never executed 903: -: 612: /* adjust for potential negative lower bound in datatype */ 904: #####: 613: tmp_recvbuf = (void *)((char*)tmp_recvbuf - true_lb); 905: -: 614: 906: #####: 615: for (i=1; irank; 1457: #####: 1001: local_size = comm_ptr->local_size; 1458: -: 1002: 1459: #####: 1003: total_count = 0; 1460: #####: 1004: for (i=0; iis_low_group) { 1528: branch 1 never executed 1529: -: 1049: /* reduce from right group to rank 0*/ 1530: #####: 1050: root = (rank == 0) ? MPI_ROOT : MPI_PROC_NULL; 1531: branch 0 never executed 1532: branch 1 never executed 1533: #####: 1051: mpi_errno = MPIR_Reduce_inter(sendbuf, tmp_buf, total_count, datatype, op, 1546: -: 1060: 1547: -: 1061: /* reduce to rank 0 of right group */ 1548: #####: 1062: root = 0; 1549: #####: 1063: mpi_errno = MPIR_Reduce_inter(sendbuf, tmp_buf, total_count, datatype, op, 1563: -: 1073: else { 1564: -: 1074: /* reduce to rank 0 of left group */ 1565: #####: 1075: root = 0; 1566: #####: 1076: mpi_errno = MPIR_Reduce_inter(sendbuf, tmp_buf, total_count, datatype, op, 1579: -: 1085: 1580: -: 1086: /* reduce from right group to rank 0 */ 1581: #####: 1087: root = (rank == 0) ? MPI_ROOT : MPI_PROC_NULL; 1582: branch 0 never executed 1583: branch 1 never executed 1584: #####: 1088: mpi_errno = MPIR_Reduce_inter(sendbuf, tmp_buf, total_count, datatype, op, 1598: -: 1098: 1599: -: 1099: /* Get the local intracommunicator */ 1600: #####: 1100: if (!comm_ptr->local_comm) 1601: branch 0 never executed 1602: branch 1 never executed 1603: #####: 1101: MPIR_Setup_intercomm_localcomm( comm_ptr ); 1604: call 0 never executed 1605: -: 1102: 1606: #####: 1103: newcomm_ptr = comm_ptr->local_comm; 1607: -: 1104: 1608: #####: 1105: mpi_errno = MPIR_Scatterv(tmp_buf, recvcnts, disps, datatype, recvbuf, 1620: -: 1106: recvcnts[rank], datatype, 0, newcomm_ptr); 1621: -: 1114: 1622: #####: 1115: if (rank == 0) { 1623: branch 0 never executed 1624: branch 1 never executed 1625: #####: 1116: MPIU_Free(disps); 1626: call 0 never executed 1627: #####: 1117: MPIU_Free((char*)tmp_buf+true_lb); 1629: -: 1118: } 1630: -: 1119: 1631: #####: 1120: return mpi_errno; 1904: branch 3 never executed 1905: -: 1244: { 1906: #####: 1245: mpi_errno = comm_ptr->coll_fns->Reduce_scatter(sendbuf, recvbuf, 1933: -: 1259: else { 1934: -: 1260: /* intercommunicator */ 1935: #####: 1261: mpi_errno = MPIR_Reduce_scatter_inter(sendbuf, recvbuf, 91 line(s) not covered by tests in src/mpi/coll/red_scat.c.gcov Uncovered lines in src/mpi/coll/alltoallw.c.gcov 720: branch 3 never executed 721: -: 447: { 722: #####: 448: mpi_errno = comm_ptr->coll_fns->Alltoallw(sendbuf, sendcnts, sdispls, 1 line(s) not covered by tests in src/mpi/coll/alltoallw.c.gcov Uncovered lines in src/mpi/coll/reduce_local.c.gcov 187: branch 0 taken 0% (fallthrough) 188: branch 1 taken 100% 189: #####: 115: uop = (MPI_User_function *) op_ptr->function.c_function; 190: #####: 116: is_cxx_uop = 1; 198: 64: 122: uop = (MPI_User_function *) op_ptr->function.c_function; 199: -: 123: else 200: #####: 124: uop = (MPI_User_function *) op_ptr->function.f77_function; 207: branch 0 taken 0% (fallthrough) 208: branch 1 taken 100% 209: #####: 131: (*MPIR_Process.cxx_call_op_fn)(inbuf, inoutbuf, count, datatype, uop); 4 line(s) not covered by tests in src/mpi/coll/reduce_local.c.gcov Uncovered lines in src/mpi/coll/op_commutative.c.gcov 58: -: 53:int MPI_Op_commutative(MPI_Op op, int *commute) 59: function PMPI_Op_commutative called 0 returned 0% blocks executed 0% 60: #####: 54:{ 61: #####: 55: MPID_Op *op_ptr = NULL; 62: #####: 56: int mpi_errno = MPI_SUCCESS; 63: #####: 57: MPIU_THREADPRIV_DECL; 64: -: 58: MPID_MPI_STATE_DECL(MPID_STATE_MPI_OP_COMMUTATIVE); 65: -: 59: 66: #####: 60: MPIR_ERRTEST_INITIALIZED_ORDIE(); 69: call 2 never executed 70: -: 61: 71: #####: 62: MPIU_THREAD_CS_ENTER(ALLFUNC,); 86: -: 63: MPID_MPI_FUNC_ENTER(MPID_STATE_MPI_OP_COMMUTATIVE); 87: -: 64: 88: #####: 65: MPID_Op_get_ptr( op, op_ptr ); 112: -: 78: /* ... body of routine ... */ 113: -: 79: 114: #####: 80: if (HANDLE_GET_KIND(op) == HANDLE_KIND_BUILTIN) { 115: branch 0 never executed 116: branch 1 never executed 117: #####: 81: *commute = 1; 119: -: 83: } 120: -: 84: else { 121: #####: 85: if (op_ptr->kind == MPID_OP_USER_NONCOMMUTE) 122: branch 0 never executed 123: branch 1 never executed 124: #####: 86: *commute = 0; 125: -: 87: else 126: #####: 88: *commute = 1; 129: -: 91: /* ... end of body of routine ... */ 130: -: 92: 131: #####: 93:fn_exit: 132: #####: 93:fn_exit: 133: #####: 95: return mpi_errno; 14 line(s) not covered by tests in src/mpi/coll/op_commutative.c.gcov Uncovered lines in src/mpi/coll/red_scat_block.c.gcov 341: branch 1 taken 100% 342: -: 160: /* Get the local intracommunicator */ 343: #####: 161: if (!comm_ptr->local_comm) 344: branch 0 never executed 345: branch 1 never executed 346: #####: 162: MPIR_Setup_intercomm_localcomm(comm_ptr); 347: call 0 never executed 348: #####: 163: scatter_comm_ptr = comm_ptr->local_comm; 3 line(s) not covered by tests in src/mpi/coll/red_scat_block.c.gcov Uncovered lines in src/mpi/coll/helper_fns.c.gcov 74: 2405302: 44: fn_exit: 75: 2405302: 46: return mpi_errno; 76: #####: 48: if (request_ptr) { 77: branch 0 never executed 78: branch 1 never executed 79: #####: 49: MPID_Request_release(request_ptr); 151: 2402627: 87: fn_exit: 152: 2402627: 89: return mpi_errno; 153: #####: 91: if (request_ptr) { 154: branch 0 never executed 155: branch 1 never executed 156: #####: 92: MPID_Request_release(request_ptr); 173: -: 102: MPI_Comm comm) 174: function MPIC_Ssend called 0 returned 0% blocks executed 0% 175: #####: 103:{ 176: -: 104: int mpi_errno, context_id; 177: #####: 105: MPID_Request *request_ptr=NULL; 178: #####: 106: MPID_Comm *comm_ptr=NULL; 181: -: 109: MPIDI_PT2PT_FUNC_ENTER_FRONT(MPID_STATE_MPIC_SSEND); 182: -: 110: 183: #####: 111: MPID_Comm_get_ptr( comm, comm_ptr ); 187: branch 3 never executed 188: call 4 never executed 189: #####: 112: context_id = (comm_ptr->comm_kind == MPID_INTRACOMM) ? 190: -: 113: MPID_CONTEXT_INTRA_COLL : MPID_CONTEXT_INTER_COLL; 191: -: 114: 192: #####: 115: mpi_errno = MPID_Ssend(buf, count, datatype, dest, tag, comm_ptr, 197: branch 1 never executed 198: call 2 never executed 199: #####: 118: if (request_ptr) { 200: branch 0 never executed 201: branch 1 never executed 202: #####: 119: mpi_errno = MPIC_Wait(request_ptr); 206: branch 1 never executed 207: call 2 never executed 208: #####: 121: MPID_Request_release(request_ptr); 215: call 6 never executed 216: -: 122: } 217: #####: 123: fn_exit: 218: #####: 123: fn_exit: 219: #####: 125: return mpi_errno; 220: #####: 125: return mpi_errno; 221: #####: 127: if (request_ptr) { 222: branch 0 never executed 223: branch 1 never executed 224: #####: 128: MPID_Request_release(request_ptr); 574: -: 318: { 575: call 0 never executed 576: #####: 320: copy_sz = rdata_sz; 752: branch 1 taken 0% (fallthrough) 753: -: 414: { 754: #####: 415: memmove(buf, buf_end - buf_off, buf_off); 19 line(s) not covered by tests in src/mpi/coll/helper_fns.c.gcov All code covered by tests in src/mpi/coll/mpid_nem_memdefs.h.gcov Uncovered lines in src/mpi/coll/opsum.c.gcov 141: branch 0 taken 75% 142: branch 1 taken 25% 143: #####: 38: MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER_EXTRA) 152: branch 8 never executed 153: branch 9 never executed 154: #####: 39: MPIR_OP_TYPE_GROUP(FLOATING_POINT_EXTRA) 173: -: 54:#undef MPIR_OP_C_COMPLEX_TYPE_MACRO 174: -: 55:#define MPIR_OP_C_COMPLEX_TYPE_MACRO(mpi_type_,c_type_) MPIR_OP_TYPE_REDUCE_CASE(mpi_type_,c_type_,MPIR_LSUM) 175: #####: 56: MPIR_OP_TYPE_GROUP(COMPLEX) 3 line(s) not covered by tests in src/mpi/coll/opsum.c.gcov Uncovered lines in src/mpi/coll/opmax.c.gcov 108: branch 34 taken 91% 109: branch 35 taken 9% 110: #####: 33: MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER) 140: branch 0 taken 75% 141: branch 1 taken 25% 142: #####: 37: MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER_EXTRA) 151: branch 8 never executed 152: branch 9 never executed 153: #####: 38: MPIR_OP_TYPE_GROUP(FLOATING_POINT_EXTRA) 3 line(s) not covered by tests in src/mpi/coll/opmax.c.gcov Uncovered lines in src/mpi/coll/opmin.c.gcov 107: branch 34 taken 91% 108: branch 35 taken 9% 109: #####: 32: MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER) 139: branch 0 taken 75% 140: branch 1 taken 25% 141: #####: 36: MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER_EXTRA) 150: branch 8 never executed 151: branch 9 never executed 152: #####: 37: MPIR_OP_TYPE_GROUP(FLOATING_POINT_EXTRA) 3 line(s) not covered by tests in src/mpi/coll/opmin.c.gcov Uncovered lines in src/mpi/coll/opband.c.gcov 105: branch 34 taken 91% 106: branch 35 taken 9% 107: #####: 36: MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER) 119: branch 0 taken 75% 120: branch 1 taken 25% 121: #####: 40: MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER_EXTRA) 2 line(s) not covered by tests in src/mpi/coll/opband.c.gcov Uncovered lines in src/mpi/coll/opbor.c.gcov 105: branch 34 taken 91% 106: branch 35 taken 9% 107: #####: 36: MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER) 119: branch 0 taken 75% 120: branch 1 taken 25% 121: #####: 40: MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER_EXTRA) 2 line(s) not covered by tests in src/mpi/coll/opbor.c.gcov Uncovered lines in src/mpi/coll/opbxor.c.gcov 105: branch 34 taken 91% 106: branch 35 taken 9% 107: #####: 36: MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER) 119: branch 0 taken 75% 120: branch 1 taken 25% 121: #####: 40: MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER_EXTRA) 2 line(s) not covered by tests in src/mpi/coll/opbxor.c.gcov Uncovered lines in src/mpi/coll/opland.c.gcov 208: -: 57: } 209: -: 58: /* expand logicals (which may include MPI_C_BOOL, a non-Fortran type) */ 210: #####: 59: MPIR_OP_TYPE_GROUP(LOGICAL) 240: branch 4 taken 75% 241: branch 5 taken 25% 242: #####: 73: MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER) 259: branch 16 taken 91% 260: branch 17 taken 9% 261: #####: 74: MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER_EXTRA) 323: branch 28 taken 75% 324: branch 29 taken 25% 325: #####: 78: MPIR_OP_TYPE_GROUP(FLOATING_POINT_EXTRA) 4 line(s) not covered by tests in src/mpi/coll/opland.c.gcov Uncovered lines in src/mpi/coll/oplor.c.gcov 208: -: 57: } 209: -: 58: /* expand logicals (which may include MPI_C_BOOL, a non-Fortran type) */ 210: #####: 59: MPIR_OP_TYPE_GROUP(LOGICAL) 240: branch 4 taken 75% 241: branch 5 taken 25% 242: #####: 73: MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER) 259: branch 16 taken 91% 260: branch 17 taken 9% 261: #####: 74: MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER_EXTRA) 323: branch 28 taken 75% 324: branch 29 taken 25% 325: #####: 78: MPIR_OP_TYPE_GROUP(FLOATING_POINT_EXTRA) 4 line(s) not covered by tests in src/mpi/coll/oplor.c.gcov Uncovered lines in src/mpi/coll/oplxor.c.gcov 280: -: 57: } 281: -: 58: /* expand logicals (which may include MPI_C_BOOL, a non-Fortran type) */ 282: #####: 59: MPIR_OP_TYPE_GROUP(LOGICAL) 324: branch 8 taken 75% 325: branch 9 taken 25% 326: #####: 73: MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER) 355: branch 28 taken 91% 356: branch 29 taken 9% 357: #####: 74: MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER_EXTRA) 459: branch 48 taken 75% 460: branch 49 taken 25% 461: #####: 78: MPIR_OP_TYPE_GROUP(FLOATING_POINT_EXTRA) 4 line(s) not covered by tests in src/mpi/coll/oplxor.c.gcov Uncovered lines in src/mpi/coll/opprod.c.gcov 119: branch 34 taken 91% 120: branch 35 taken 9% 121: #####: 34: MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER) 141: branch 0 taken 75% 142: branch 1 taken 25% 143: #####: 38: MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER_EXTRA) 152: branch 8 never executed 153: branch 9 never executed 154: #####: 39: MPIR_OP_TYPE_GROUP(FLOATING_POINT_EXTRA) 174: -: 55:#undef MPIR_OP_C_COMPLEX_TYPE_MACRO 175: -: 56:#define MPIR_OP_C_COMPLEX_TYPE_MACRO(mpi_type_,c_type_) MPIR_OP_TYPE_REDUCE_CASE(mpi_type_,c_type_,MPIR_LPROD) 176: #####: 57: MPIR_OP_TYPE_GROUP(COMPLEX) 4 line(s) not covered by tests in src/mpi/coll/opprod.c.gcov Uncovered lines in src/mpi/coll/opminloc.c.gcov 153: -: 101:#ifdef HAVE_FORTRAN_BINDING 154: -: 102:#ifndef HAVE_NO_FORTRAN_MPI_TYPES_IN_C 155: #####: 103: case MPI_2INTEGER: MPIR_MINLOC_F_CASE(int); 160: branch 4 never executed 161: branch 5 never executed 162: #####: 104: case MPI_2REAL: MPIR_MINLOC_F_CASE(float); 169: branch 6 never executed 170: branch 7 never executed 171: #####: 105: case MPI_2DOUBLE_PRECISION: MPIR_MINLOC_F_CASE(double); 3 line(s) not covered by tests in src/mpi/coll/opminloc.c.gcov Uncovered lines in src/mpi/coll/opmaxloc.c.gcov 154: -: 102:#ifdef HAVE_FORTRAN_BINDING 155: -: 103:#ifndef HAVE_NO_FORTRAN_MPI_TYPES_IN_C 156: #####: 104: case MPI_2INTEGER: MPIR_MAXLOC_F_CASE(int); 161: branch 4 never executed 162: branch 5 never executed 163: #####: 105: case MPI_2REAL: MPIR_MAXLOC_F_CASE(float); 170: branch 6 never executed 171: branch 7 never executed 172: #####: 106: case MPI_2DOUBLE_PRECISION: MPIR_MAXLOC_F_CASE(double); 3 line(s) not covered by tests in src/mpi/coll/opmaxloc.c.gcov All code covered by tests in src/mpi/comm/comm_compare.c.gcov Uncovered lines in src/mpi/comm/comm_create.c.gcov 411: branch 0 taken 0% (fallthrough) 412: branch 1 taken 100% 413: #####: 307: MPIR_Comm_release(newcomm_ptr, 0/*isDisconnect*/); 414: call 0 never executed 415: #####: 308: new_context_id = 0; /* MPIR_Comm_release frees the new ctx id */ 2 line(s) not covered by tests in src/mpi/comm/comm_create.c.gcov All code covered by tests in src/mpi/comm/comm_free.c.gcov All code covered by tests in src/mpi/comm/comm_get_name.c.gcov All code covered by tests in src/mpi/comm/comm_rank.c.gcov All code covered by tests in src/mpi/comm/comm_remote_group.c.gcov All code covered by tests in src/mpi/comm/comm_remote_size.c.gcov All code covered by tests in src/mpi/comm/comm_split.c.gcov Uncovered lines in src/mpi/comm/intercomm_create.c.gcov 579: branch 0 taken 0% (fallthrough) 580: branch 1 taken 100% 581: #####: 388: MPIR_Nest_decr(); 596: branch 0 taken 0% (fallthrough) 597: branch 1 taken 100% 598: #####: 401: MPIR_Nest_decr(); 606: branch 0 taken 0% (fallthrough) 607: branch 1 taken 100% 608: #####: 408: MPIR_Nest_decr(); 3 line(s) not covered by tests in src/mpi/comm/intercomm_create.c.gcov All code covered by tests in src/mpi/comm/intercomm_merge.c.gcov All code covered by tests in src/mpi/comm/comm_dup.c.gcov All code covered by tests in src/mpi/comm/comm_group.c.gcov All code covered by tests in src/mpi/comm/comm_size.c.gcov All code covered by tests in src/mpi/comm/comm_set_name.c.gcov All code covered by tests in src/mpi/comm/comm_test_inter.c.gcov Uncovered lines in src/mpi/comm/commutil.c.gcov 277: branch 0 taken 0% (fallthrough) 278: branch 1 taken 100% 279: #####: 239: MPIU_Free(comm->intranode_table); 282: branch 0 taken 0% (fallthrough) 283: branch 1 taken 100% 284: #####: 241: MPIU_Free(comm->internode_table); 451: branch 0 taken 0% (fallthrough) 452: branch 1 taken 100% 453: #####: 351: curr_nodeidx++; 455: branch 0 taken 0% (fallthrough) 456: branch 1 taken 100% 457: #####: 353: return 0; 901: branch 1 taken 100% 902: -: 701: /* Release the mask for use by other threads */ 903: #####: 702: if (own_mask) { 904: branch 0 never executed 905: branch 1 never executed 906: #####: 703: mask_in_use = 0; 923: 964951: 718: return mpi_errno; 924: -: 720: /* Release the masks */ 925: #####: 721: if (own_mask) { 926: branch 0 never executed 927: branch 1 never executed 928: #####: 722: mask_in_use = 0; 8 line(s) not covered by tests in src/mpi/comm/commutil.c.gcov All code covered by tests in src/mpi/datatype/unpack.c.gcov All code covered by tests in src/mpi/datatype/address.c.gcov All code covered by tests in src/mpi/datatype/get_address.c.gcov All code covered by tests in src/mpi/datatype/get_count.c.gcov Uncovered lines in src/mpi/datatype/get_elements.c.gcov 108: -: 88:#ifdef HAVE_FORTRAN_BINDING 109: -: 89: case MPI_2REAL: 110: #####: 90: type1_sz = type2_sz = MPID_Datatype_get_basic_size(MPI_REAL); 111: #####: 91: break; 112: -: 92: case MPI_2DOUBLE_PRECISION: 113: #####: 93: type1_sz = type2_sz = 114: -: 94: MPID_Datatype_get_basic_size(MPI_DOUBLE_PRECISION); 115: #####: 95: break; 116: -: 96: case MPI_2INTEGER: 117: #####: 97: type1_sz = type2_sz = MPID_Datatype_get_basic_size(MPI_INTEGER); 118: #####: 98: break; 119: -: 99:#endif 120: -: 100: case MPI_2INT: 121: #####: 101: type1_sz = type2_sz = MPID_Datatype_get_basic_size(MPI_INT); 122: #####: 102: break; 123: -: 103: case MPI_FLOAT_INT: 124: #####: 104: type1_sz = MPID_Datatype_get_basic_size(MPI_FLOAT); 125: #####: 105: type2_sz = MPID_Datatype_get_basic_size(MPI_INT); 126: #####: 106: break; 130: 1: 110: break; 131: -: 111: case MPI_LONG_INT: 132: #####: 112: type1_sz = MPID_Datatype_get_basic_size(MPI_LONG); 133: #####: 113: type2_sz = MPID_Datatype_get_basic_size(MPI_INT); 134: #####: 114: break; 135: -: 115: case MPI_SHORT_INT: 136: #####: 116: type1_sz = MPID_Datatype_get_basic_size(MPI_SHORT); 137: #####: 117: type2_sz = MPID_Datatype_get_basic_size(MPI_INT); 138: #####: 118: break; 139: -: 119: case MPI_LONG_DOUBLE_INT: 140: #####: 120: type1_sz = MPID_Datatype_get_basic_size(MPI_LONG_DOUBLE); 141: #####: 121: type2_sz = MPID_Datatype_get_basic_size(MPI_INT); 142: #####: 122: break; 219: branch 0 taken 0% (fallthrough) 220: branch 1 taken 100% 221: #####: 182: return MPIR_Type_get_basic_type_elements(bytes_p, 238: branch 0 taken 0% (fallthrough) 239: branch 1 taken 100% 240: #####: 198: return MPI_ERR_TYPE; 244: branch 0 taken 0% (fallthrough) 245: branch 1 taken 100% 246: #####: 202: return MPI_ERR_TYPE; 250: branch 0 taken 0% (fallthrough) 251: branch 1 taken 100% 252: #####: 206: return MPI_ERR_TYPE; 256: branch 0 taken 0% (fallthrough) 257: branch 1 taken 100% 258: #####: 210: return MPI_ERR_TYPE; 268: -: 214: case MPI_COMBINER_DUP: 269: -: 215: case MPI_COMBINER_RESIZED: 270: #####: 216: return MPIR_Type_get_elements(bytes_p, count, *types); 276: -: 221: case MPI_COMBINER_HVECTOR: 277: -: 222: /* count is first in ints array */ 278: #####: 223: return MPIR_Type_get_elements(bytes_p, count * (*ints), *types); 281: -: 225: case MPI_COMBINER_INDEXED_BLOCK: 282: -: 226: /* count is first in ints array, blocklength is second */ 283: #####: 227: return MPIR_Type_get_elements(bytes_p, 289: -: 232: case MPI_COMBINER_HINDEXED_INTEGER: 290: -: 233: case MPI_COMBINER_HINDEXED: 291: #####: 234: for (i=0; i < (*ints); i++) { 293: branch 1 never executed 294: -: 235: /* add up the blocklengths to get a max. # of the next type */ 295: #####: 236: typecount += ints[i+1]; 296: -: 237: } 297: #####: 238: return MPIR_Type_get_elements(bytes_p, count * typecount, *types); 528: branch 0 taken 0% (fallthrough) 529: branch 1 taken 100% 530: #####: 393: *elements = MPI_UNDEFINED; 32 line(s) not covered by tests in src/mpi/datatype/get_elements.c.gcov All code covered by tests in src/mpi/datatype/pack.c.gcov All code covered by tests in src/mpi/datatype/mpid_nem_memdefs.h.gcov All code covered by tests in src/mpi/datatype/pack_size.c.gcov All code covered by tests in src/mpi/datatype/status_set_elements.c.gcov All code covered by tests in src/mpi/datatype/type_get_name.c.gcov All code covered by tests in src/mpi/datatype/type_set_name.c.gcov All code covered by tests in src/mpi/datatype/type_size.c.gcov All code covered by tests in src/mpi/datatype/type_extent.c.gcov All code covered by tests in src/mpi/datatype/type_vector.c.gcov All code covered by tests in src/mpi/datatype/type_commit.c.gcov All code covered by tests in src/mpi/datatype/type_indexed.c.gcov All code covered by tests in src/mpi/datatype/type_hindexed.c.gcov All code covered by tests in src/mpi/datatype/type_struct.c.gcov All code covered by tests in src/mpi/datatype/type_contiguous.c.gcov All code covered by tests in src/mpi/datatype/type_free.c.gcov All code covered by tests in src/mpi/datatype/type_hvector.c.gcov All code covered by tests in src/mpi/datatype/type_dup.c.gcov All code covered by tests in src/mpi/datatype/type_get_envelope.c.gcov All code covered by tests in src/mpi/datatype/type_get_contents.c.gcov All code covered by tests in src/mpi/datatype/type_ub.c.gcov All code covered by tests in src/mpi/datatype/type_lb.c.gcov All code covered by tests in src/mpi/datatype/type_get_extent.c.gcov All code covered by tests in src/mpi/datatype/type_get_true_extent.c.gcov All code covered by tests in src/mpi/datatype/type_match_size.c.gcov All code covered by tests in src/mpi/datatype/type_create_struct.c.gcov All code covered by tests in src/mpi/datatype/type_create_hindexed.c.gcov All code covered by tests in src/mpi/datatype/type_create_hvector.c.gcov Uncovered lines in src/mpi/datatype/pack_external.c.gcov 161: branch 0 taken 0% (fallthrough) 162: branch 1 taken 100% 163: #####: 109: goto fn_exit; 1 line(s) not covered by tests in src/mpi/datatype/pack_external.c.gcov All code covered by tests in src/mpi/datatype/pack_external_size.c.gcov Uncovered lines in src/mpi/datatype/unpack_external.c.gcov 156: branch 0 taken 0% (fallthrough) 157: branch 1 taken 100% 158: #####: 107: goto fn_exit; 1 line(s) not covered by tests in src/mpi/datatype/unpack_external.c.gcov All code covered by tests in src/mpi/datatype/type_create_indexed_block.c.gcov All code covered by tests in src/mpi/datatype/type_create_resized.c.gcov Uncovered lines in src/mpi/datatype/type_create_darray.c.gcov 84: 924: 76: blksize = (global_size + nprocs - 1)/nprocs; 85: -: 77: else { 86: #####: 78: blksize = darg; 129: branch 0 taken 0% (fallthrough) 130: branch 1 taken 100% 131: #####: 113: if (dim == 0) { 132: branch 0 never executed 133: branch 1 never executed 134: #####: 114: mpi_errno = MPID_Type_contiguous(mysize, 148: -: 124: } 149: -: 125: else { 150: #####: 126: for (i=0; idim; i--) stride *= (MPI_Aint)(array_of_gsizes[i]); 304: branch 1 never executed 305: -: 238: 306: #####: 239: mpi_errno = MPID_Type_vector(count, 322: -: 244: type_new); 323: -: 252: 324: #####: 253: if (rem) { 328: -: 255: it separately using MPI_Type_struct */ 329: -: 256: 330: #####: 257: types[0] = *type_new; 331: #####: 258: types[1] = type_old; 332: #####: 259: disps[0] = 0; 333: #####: 260: disps[1] = (MPI_Aint) count * stride; 334: #####: 261: blklens[0] = 1; 335: #####: 262: blklens[1] = rem; 336: -: 263: 337: #####: 264: mpi_errno = MPID_Type_struct(2, 341: -: 267: types, 342: -: 268: &type_tmp); 343: #####: 269: MPIR_Nest_incr(); 344: #####: 270: NMPI_Type_free(type_new); 345: call 0 never executed 346: #####: 271: MPIR_Nest_decr(); 347: #####: 272: *type_new = type_tmp; 361: -: 283: /* In the first iteration, we need to set the displacement in that 362: -: 284: dimension correctly. */ 363: #####: 285: if (((order == MPI_ORDER_FORTRAN) && (dim == 0)) || 370: -: 286: ((order == MPI_ORDER_C) && (dim == ndims-1))) 371: -: 287: { 372: #####: 288: types[0] = MPI_LB; 373: #####: 289: disps[0] = 0; 374: #####: 290: types[1] = *type_new; 375: #####: 291: disps[1] = (MPI_Aint) rank * (MPI_Aint) blksize * orig_extent; 376: #####: 292: types[2] = MPI_UB; 377: #####: 293: disps[2] = orig_extent * (MPI_Aint)(array_of_gsizes[dim]); 378: #####: 294: blklens[0] = blklens[1] = blklens[2] = 1; 379: #####: 295: mpi_errno = MPID_Type_struct(3, 383: -: 298: types, 384: -: 299: &type_tmp); 385: #####: 300: MPIR_Nest_incr(); 386: #####: 301: NMPI_Type_free(type_new); 387: call 0 never executed 388: #####: 302: MPIR_Nest_decr(); 389: #####: 303: *type_new = type_tmp; 400: -: 304: 401: -: 312: 402: #####: 313: *st_offset = 0; /* set it to 0 because it is taken care of in 404: -: 315: } 405: -: 316: else { 406: #####: 317: *st_offset = (MPI_Aint) rank * (MPI_Aint) blksize; 409: -: 320: } 410: -: 321: 411: #####: 322: if (local_size == 0) *st_offset = 0; 413: branch 1 never executed 414: -: 323: 415: #####: 324: return MPI_SUCCESS; 746: branch 1 taken 100% 747: -: 529: /* dimension 0 changes fastest */ 748: #####: 530: for (i=0; ierrhandler->handle == MPI_ERRORS_ARE_FATAL) { 165: call 0 returned 0% 166: #####: 106: goto fn_exit; 171: branch 1 taken 100% 172: -: 110: /* MPI_ERRORS_RETURN should always return MPI_SUCCESS */ 173: #####: 111: goto fn_exit; 182: branch 0 taken 0% (fallthrough) 183: branch 1 taken 100% 184: #####: 120: mpi_errno = errorcode; 185: #####: 121: goto fn_exit; 207: -: 139: case MPID_LANG_FORTRAN90: 208: -: 140: case MPID_LANG_FORTRAN: 209: #####: 141: (*comm_ptr->errhandler->errfn.F77_Handler_function)( 5 line(s) not covered by tests in src/mpi/errhan/comm_call_errhandler.c.gcov All code covered by tests in src/mpi/errhan/comm_create_errhandler.c.gcov Uncovered lines in src/mpi/errhan/comm_get_errhandler.c.gcov 147: branch 0 taken 0% (fallthrough) 148: branch 1 taken 100% 149: #####: 96: *errhandler = MPI_ERRORS_ARE_FATAL; 1 line(s) not covered by tests in src/mpi/errhan/comm_get_errhandler.c.gcov All code covered by tests in src/mpi/errhan/comm_set_errhandler.c.gcov All code covered by tests in src/mpi/errhan/errhandler_create.c.gcov All code covered by tests in src/mpi/errhan/errhandler_free.c.gcov All code covered by tests in src/mpi/errhan/errhandler_get.c.gcov All code covered by tests in src/mpi/errhan/errhandler_set.c.gcov All code covered by tests in src/mpi/errhan/error_class.c.gcov All code covered by tests in src/mpi/errhan/error_string.c.gcov All code covered by tests in src/mpi/errhan/file_create_errhandler.c.gcov All code covered by tests in src/mpi/errhan/file_get_errhandler.c.gcov Uncovered lines in src/mpi/errhan/file_set_errhandler.c.gcov 241: branch 0 taken 0% (fallthrough) 242: branch 1 taken 100% 243: #####: 176: *c = 0; 244: #####: 177: *kind = 1; /* Use errors return as the default */ 258: branch 1 taken 100% 259: -: 182: /* FIXME: We need an error return */ 260: #####: 183: *c = 0; 261: #####: 184: *kind = 1; 262: #####: 185: return; 272: branch 1 taken 100% 273: -: 189: /* FIXME: We need an error return */ 274: #####: 190: *c = 0; 275: #####: 191: *kind = 1; 276: #####: 192: return; 279: branch 0 taken 0% (fallthrough) 280: branch 1 taken 100% 281: #####: 195: *c = 0; 282: #####: 196: *kind = 1; 285: branch 0 taken 0% (fallthrough) 286: branch 1 taken 100% 287: #####: 199: *c = 0; 288: #####: 200: *kind = 0; 12 line(s) not covered by tests in src/mpi/errhan/file_set_errhandler.c.gcov All code covered by tests in src/mpi/errhan/win_create_errhandler.c.gcov All code covered by tests in src/mpi/errhan/win_get_errhandler.c.gcov Uncovered lines in src/mpi/errhan/errutil.c.gcov 252: branch 0 taken 0% (fallthrough) 253: branch 1 taken 100% 254: #####: 218: MPIU_Error_printf("Attempting to use an MPI routine before initializing MPICH\n"); 262: -: 222: } 263: -: 223: else { 264: #####: 224: MPIU_Error_printf("Internal Error: Unknown state of MPI (neither initialized nor finalized)\n" ); 387: -: 306: case MPID_LANG_FORTRAN90: 388: -: 307: case MPID_LANG_FORTRAN: 389: #####: 308: (*comm_ptr->errhandler->errfn.F77_Handler_function)( 451: -: 342: win_ptr->errhandler->handle == MPI_ERRORS_ARE_FATAL) { 452: -: 343: /* Calls MPID_Abort */ 453: #####: 344: handleFatalError( NULL, fcname, errcode ); 464: -: 351: win_ptr->errhandler->handle == MPIR_ERRORS_THROW_EXCEPTIONS) 465: -: 352: { 466: #####: 353: return errcode; 489: -: 371:#ifdef HAVE_CXX_BINDING 490: -: 372: case MPID_LANG_CXX: 491: #####: 373: (*MPIR_Process.cxx_call_errfn)( 2, &win_ptr->handle, &errcode, 495: -: 376: returns something other than MPI_SUCCESS. There is no "return" 496: -: 377: of an error code. */ 497: #####: 378: errcode = MPI_SUCCESS; 498: #####: 379: break; 501: -: 382: case MPID_LANG_FORTRAN90: 502: -: 383: case MPID_LANG_FORTRAN: 503: #####: 384: (*win_ptr->errhandler->errfn.F77_Handler_function)( 554: branch 1 taken 100% 555: -: 430: { 556: #####: 431: if (errcode & ~ERROR_CLASS_MASK) 558: branch 1 never executed 559: -: 432: { 560: #####: 433: MPIU_Error_printf("INTERNAL ERROR: Invalid error class (%d) encountered while returning from\n" 569: -: 441: else 570: -: 442: { 571: #####: 443: MPIU_Error_printf("INTERNAL ERROR: Invalid error class (%d) encountered while returning from\n" 575: -: 446: /* FIXME: We probably want to set this to MPI_ERR_UNKNOWN 576: -: 447: and discard the rest of the bits */ 577: #####: 448: errcode = (errcode & ~ERROR_CLASS_MASK) | MPI_ERR_UNKNOWN; 578: #####: 449: rc = 1; 674: -: 528: { 675: -: 529: /* don't return here if the string partially matches */ 676: #####: 530: if (strncmp(generic_err_msgs[i].short_name, msg, strlen(msg)) != 0) 679: branch 2 never executed 680: branch 3 never executed 681: #####: 531: return -1; 682: -: 532: } 683: -: 533: } 684: #####: 534: return -1; 734: -: 572: { 735: -: 573: /* don't return here if the string partially matches */ 736: #####: 574: if (strncmp(specific_err_msgs[i].short_name, msg, strlen(msg)) != 0) 739: branch 2 never executed 740: branch 3 never executed 741: #####: 575: return -1; 742: -: 576: } 743: -: 577: } 744: #####: 578: return -1; 818: -: 645: } 819: -: 646: else { 820: #####: 647: return "Unknown error class"; 841: branch 0 taken 0% (fallthrough) 842: branch 1 taken 100% 843: #####: 667: num_remaining = MPI_MAX_ERROR_STRING; 884: -: 697: num_remaining)) 885: -: 698: { 886: #####: 699: msg[num_remaining - 1] = '\0'; 897: branch 1 taken 100% 898: -: 707: { 899: #####: 708: fn(errorcode, msg, length); 908: branch 3 taken 100% 909: -: 713: { 910: #####: 714: msg[num_remaining - 1] = '\0'; 921: branch 1 taken 100% 922: -: 724: { 923: #####: 725: fn(errorcode, msg, num_remaining); 979: -: 776:static const char * GetAssertString(int d) 980: function GetAssertString called 0 returned 0% blocks executed 0% 981: #####: 777:{ 982: -: 778: static char str[ASSERT_STR_MAXLEN] = ""; 983: -: 779: char *cur; 984: #####: 780: size_t len = ASSERT_STR_MAXLEN; 985: -: 781: size_t n; 986: -: 782: 987: #####: 783: if (d == 0) 989: branch 1 never executed 990: -: 784: { 991: #####: 785: MPIU_Strncpy(str, "assert=0", ASSERT_STR_MAXLEN); 992: call 0 never executed 993: #####: 786: return str; 994: -: 787: } 995: #####: 788: cur = str; 996: #####: 789: if (d & MPI_MODE_NOSTORE) 998: branch 1 never executed 999: -: 790: { 1000: #####: 791: MPIU_Strncpy(cur, "MPI_MODE_NOSTORE", len); 1001: call 0 never executed 1002: #####: 792: n = strlen(cur); 1003: call 0 never executed 1004: #####: 793: cur += n; 1005: #####: 794: len -= n; 1006: #####: 795: d ^= MPI_MODE_NOSTORE; 1007: -: 796: } 1008: #####: 797: if (d & MPI_MODE_NOCHECK) 1010: branch 1 never executed 1011: -: 798: { 1012: #####: 799: if (len < ASSERT_STR_MAXLEN) 1013: branch 0 never executed 1014: branch 1 never executed 1015: #####: 800: MPIU_Strncpy(cur, " | MPI_MODE_NOCHECK", len); 1016: call 0 never executed 1017: -: 801: else 1018: #####: 802: MPIU_Strncpy(cur, "MPI_MODE_NOCHECK", len); 1019: call 0 never executed 1020: #####: 803: n = strlen(cur); 1021: call 0 never executed 1022: #####: 804: cur += n; 1023: #####: 805: len -= n; 1024: #####: 806: d ^= MPI_MODE_NOCHECK; 1025: -: 807: } 1026: #####: 808: if (d & MPI_MODE_NOPUT) 1028: branch 1 never executed 1029: -: 809: { 1030: #####: 810: if (len < ASSERT_STR_MAXLEN) 1031: branch 0 never executed 1032: branch 1 never executed 1033: #####: 811: MPIU_Strncpy(cur, " | MPI_MODE_NOPUT", len); 1034: call 0 never executed 1035: -: 812: else 1036: #####: 813: MPIU_Strncpy(cur, "MPI_MODE_NOPUT", len); 1037: call 0 never executed 1038: #####: 814: n = strlen(cur); 1039: call 0 never executed 1040: #####: 815: cur += n; 1041: #####: 816: len -= n; 1042: #####: 817: d ^= MPI_MODE_NOPUT; 1043: -: 818: } 1044: #####: 819: if (d & MPI_MODE_NOPRECEDE) 1046: branch 1 never executed 1047: -: 820: { 1048: #####: 821: if (len < ASSERT_STR_MAXLEN) 1049: branch 0 never executed 1050: branch 1 never executed 1051: #####: 822: MPIU_Strncpy(cur, " | MPI_MODE_NOPRECEDE", len); 1052: call 0 never executed 1053: -: 823: else 1054: #####: 824: MPIU_Strncpy(cur, "MPI_MODE_NOPRECEDE", len); 1055: call 0 never executed 1056: #####: 825: n = strlen(cur); 1057: call 0 never executed 1058: #####: 826: cur += n; 1059: #####: 827: len -= n; 1060: #####: 828: d ^= MPI_MODE_NOPRECEDE; 1061: -: 829: } 1062: #####: 830: if (d & MPI_MODE_NOSUCCEED) 1064: branch 1 never executed 1065: -: 831: { 1066: #####: 832: if (len < ASSERT_STR_MAXLEN) 1067: branch 0 never executed 1068: branch 1 never executed 1069: #####: 833: MPIU_Strncpy(cur, " | MPI_MODE_NOSUCCEED", len); 1070: call 0 never executed 1071: -: 834: else 1072: #####: 835: MPIU_Strncpy(cur, "MPI_MODE_NOSUCCEED", len); 1073: call 0 never executed 1074: #####: 836: n = strlen(cur); 1075: call 0 never executed 1076: #####: 837: cur += n; 1077: #####: 838: len -= n; 1078: #####: 839: d ^= MPI_MODE_NOSUCCEED; 1079: -: 840: } 1080: #####: 841: if (d) 1082: branch 1 never executed 1083: -: 842: { 1084: #####: 843: if (len < ASSERT_STR_MAXLEN) 1085: branch 0 never executed 1086: branch 1 never executed 1087: #####: 844: MPIU_Snprintf(cur, len, " | 0x%x", d); 1088: call 0 never executed 1089: -: 845: else 1090: #####: 846: MPIU_Snprintf(cur, len, "assert=0x%x", d); 1091: call 0 never executed 1092: -: 847: } 1093: #####: 848: return str; 1108: -: 858: (HANDLE_GET_KIND(d) == HANDLE_KIND_INVALID && \ 1109: -: 859: d != MPI_DATATYPE_NULL)) 1110: #####: 860: return "INVALID DATATYPE"; 1120: branch 1 taken 100% 1121: -: 867: { 1122: #####: 868: MPIU_Strncpy(default_str, "dtype=0x0", 64); 1123: call 0 never executed 1124: #####: 869: return default_str; 1138: branch 1 taken 100% 1139: -: 878: { 1140: #####: 879: MPIU_Snprintf(default_str, 64, "dtype=0x%08x", d); 1141: call 0 never executed 1142: #####: 880: return default_str; 1152: branch 1 taken 100% 1153: -: 888: { 1154: #####: 889: MPIU_Snprintf(default_str, 64, "dtype=USER<0x%08x>", d); 1155: call 0 never executed 1156: #####: 890: return default_str; 1210: 14: 927: return "MPI_MAXLOC"; 1211: -: 928: case MPI_REPLACE: 1212: #####: 929: return "MPI_REPLACE"; 1213: -: 930: } 1214: -: 931: /* FIXME: default is not thread safe */ 1215: #####: 932: MPIU_Snprintf(default_str, 64, "op=0x%x", o); 1216: call 0 never executed 1217: #####: 933: return default_str; 1254: branch 1 taken 100% 1255: -: 967: { 1256: #####: 968: if (maxlen > 0 && str != NULL) 1257: branch 0 never executed 1258: branch 1 never executed 1259: #####: 969: *str = '\0'; 1260: #####: 970: return 0; 1341: call 0 returned 100% 1342: -: 995: else { 1343: #####: 996: MPIU_Strncpy(str, "", maxlen ); 1351: 768407: 1002: break; 1352: -: 1003: case (int)'L': 1353: #####: 1004: ll = va_arg(list, long long); 1354: #####: 1005: MPIU_Snprintf(str, maxlen, "%lld", ll); 1355: call 0 never executed 1356: #####: 1006: break; 1357: -: 1007: case (int)'x': 1358: #####: 1008: d = va_arg(list, int); 1359: #####: 1009: MPIU_Snprintf(str, maxlen, "%x", d); 1360: call 0 never executed 1361: #####: 1010: break; 1362: -: 1011: case (int)'X': 1363: #####: 1012: ll = va_arg(list, long long); 1364: #####: 1013: MPIU_Snprintf(str, maxlen, "%llx", ll); 1365: call 0 never executed 1366: #####: 1014: break; 1378: 8: 1021: break; 1379: -: 1022: case MPI_PROC_NULL: 1380: #####: 1023: MPIU_Strncpy(str, "MPI_PROC_NULL", maxlen); 1381: call 0 never executed 1382: #####: 1024: break; 1403: 25: 1039: break; 1404: -: 1040: case MPI_UNDEFINED: 1405: #####: 1041: MPIU_Strncpy(str, "MPI_UNDEFINED", maxlen); 1406: call 0 never executed 1407: #####: 1042: break; 1420: branch 1 taken 100% 1421: -: 1053: { 1422: #####: 1054: MPIU_Strncpy(str, "MPI_IN_PLACE", maxlen); 1470: -: 1089: else 1471: -: 1090: { 1472: #####: 1091: MPIU_Snprintf(str, maxlen, "info=0x%x", I); 1485: -: 1101: { 1486: -: 1102: MPI_File F; 1487: #####: 1103: F = va_arg(list, MPI_File); 1488: #####: 1104: if (F == MPI_FILE_NULL) 1490: branch 1 never executed 1491: -: 1105: { 1492: #####: 1106: MPIU_Strncpy(str, "MPI_FILE_NULL", maxlen); 1495: -: 1108: else 1496: -: 1109: { 1497: #####: 1110: MPIU_Snprintf(str, maxlen, "file=0x%lx", (unsigned long)F); 1507: branch 1 taken 100% 1508: -: 1118: { 1509: #####: 1119: MPIU_Strncpy(str, "MPI_WIN_NULL", maxlen); 1517: -: 1125: break; 1518: -: 1126: case (int)'A': 1519: #####: 1127: d = va_arg(list, int); 1520: #####: 1128: MPIU_Snprintf(str, maxlen, "%s", GetAssertString(d)); 1521: call 0 never executed 1522: call 1 never executed 1523: #####: 1129: break; 1544: 325: 1144: break; 1545: -: 1145: case (int)'R': 1546: #####: 1146: R = va_arg(list, MPI_Request); 1547: #####: 1147: if (R == MPI_REQUEST_NULL) 1549: branch 1 never executed 1550: -: 1148: { 1551: #####: 1149: MPIU_Strncpy(str, "MPI_REQUEST_NULL", maxlen); 1554: -: 1151: else 1555: -: 1152: { 1556: #####: 1153: MPIU_Snprintf(str, maxlen, "req=0x%x", R); 1575: -: 1167: default: 1576: -: 1168: /* Error: unhandled output type */ 1577: #####: 1169: return 0; 1784: branch 2 taken 0% (fallthrough) 1785: branch 3 taken 100% 1786: #####: 1364: *ring_idx > max_error_ring_loc) return 1; 1805: branch 2 taken 0% (fallthrough) 1806: branch 3 taken 100% 1807: #####: 1377: ring_idx > max_error_ring_loc) return 1; 1818: -: 1384:static const char *ErrcodeInvalidReasonStr( int reason ) 1819: function ErrcodeInvalidReasonStr called 0 returned 0% blocks executed 0% 1820: #####: 1385:{ 1821: #####: 1386: const char *str = 0; 1822: #####: 1387: switch (reason) { 1826: branch 3 never executed 1827: -: 1388: case 1: 1828: #####: 1389: str = "Ring Index out of range"; 1829: #####: 1390: break; 1830: -: 1391: case 2: 1831: #####: 1392: str = "Ring ids do not match"; 1832: #####: 1393: break; 1833: -: 1394: case 3: 1834: #####: 1395: str = "Generic message index out of range"; 1835: #####: 1396: break; 1836: -: 1397: default: 1837: #####: 1398: str = "Unknown reason for invalid errcode"; 1838: -: 1399: break; 1839: -: 1400: } 1840: #####: 1401: return str; 1863: branch 2 taken 100% 1864: -: 1416: &generic_idx ) != 0) { 1865: #####: 1417: MPIU_Error_printf( 1921: branch 0 taken 0% (fallthrough) 1922: branch 1 taken 100% 1923: #####: 1459: MPIU_Error_printf( "Internal Error: invalid error code %x (%s) in %s:%d\n", 1926: -: 1460: lastcode, ErrcodeInvalidReasonStr( reason ), 1927: -: 1461: fcname, line ); 1928: #####: 1462: lastcode = MPI_SUCCESS; 2009: -: 1518: } 2010: -: 1519: else { 2011: #####: 1520: specific_fmt = specific_msg; 2019: -: 1527: } 2020: -: 1528: else { 2021: #####: 1529: user_ring_msg[0] = 0; 2027: -: 1535: { 2028: -: 1536: /* TODO: lookup index for class error message */ 2029: #####: 1537: err_code &= ~ERROR_GENERIC_MASK; 2084: -: 1580: else 2085: -: 1581: { 2086: #####: 1582: specific_fmt = specific_msg; 2109: -: 1598: else 2110: -: 1599: { 2111: #####: 1600: MPIU_Strncpy( ring_msg, generic_msg, MPIR_MAX_ERROR_LINE ); 2144: -: 1624: &last_ring_id, 2145: -: 1625: &last_generic_idx ) != 0) { 2146: #####: 1626: MPIU_Error_printf( 2177: -: 1647: else 2178: -: 1648: { 2179: #####: 1649: ErrorRing[ring_idx].location[0] = '\0'; 2198: branch 4 taken 100% 2199: -: 1661: { 2200: #####: 1662: err_code |= ERROR_FATAL_MASK; 2212: -: 1674:int MPIR_Err_combine_codes(int error1, int error2) 2213: function MPIR_Err_combine_codes called 0 returned 0% blocks executed 0% 2214: #####: 1675:{ 2215: #####: 1676: int error1_code = error1; 2216: #####: 1677: int error2_code = error2; 2217: -: 1678: int error2_class; 2218: -: 1679: 2219: #####: 1680: if (error2_code == MPI_SUCCESS) return error1_code; 2220: branch 0 never executed 2221: branch 1 never executed 2222: #####: 1681: if (error2_code & ERROR_DYN_MASK) return error2_code; 2223: branch 0 never executed 2224: branch 1 never executed 2225: #####: 1682: if (error1_code == MPI_SUCCESS) return error2_code; 2227: branch 1 never executed 2228: -: 1683: 2229: #####: 1684: error2_class = MPIR_ERR_GET_CLASS(error2_code); 2230: #####: 1685: if (MPIR_ERR_GET_CLASS(error2_class) < MPI_SUCCESS || 2233: -: 1686: MPIR_ERR_GET_CLASS(error2_class) > MPICH_ERR_LAST_CLASS) 2234: -: 1687: { 2235: #####: 1688: error2_class = MPI_ERR_OTHER; 2240: -: 1693: int error_code; 2241: -: 1694: 2242: #####: 1695: error_code = error1_code; 2243: -: 1696: 2244: #####: 1697: error_ring_mutex_lock(); 2254: -: 1704: int generic_idx; 2255: -: 1705: 2256: #####: 1706: if (convertErrcodeToIndexes(error_code, &ring_idx, &ring_id, 2268: -: 1711: } 2269: -: 1712: 2270: #####: 1713: error_code = ErrorRing[ring_idx].prev_error; 2271: -: 1714: 2272: #####: 1715: if (error_code == MPI_SUCCESS) 2274: branch 1 never executed 2275: -: 1716: { 2276: #####: 1717: ErrorRing[ring_idx].prev_error = error2; 2277: #####: 1718: break; 2278: -: 1719: } 2279: -: 1720: 2280: #####: 1721: error_class = MPIR_ERR_GET_CLASS(error_code); 2281: -: 1722: 2282: #####: 1723: if (error_class == MPI_ERR_OTHER) 2284: branch 1 never executed 2285: -: 1724: { 2286: #####: 1725: ErrorRing[ring_idx].prev_error &= ~(ERROR_CLASS_MASK); 2287: #####: 1726: ErrorRing[ring_idx].prev_error |= error2_class; 2289: -: 1728: } 2290: -: 1729: } 2291: #####: 1730: error_ring_mutex_unlock(); 2296: -: 1732:# endif 2297: -: 1733: 2298: #####: 1734: if (MPIR_ERR_GET_CLASS(error1_code) == MPI_ERR_OTHER) 2300: branch 1 never executed 2301: -: 1735: { 2302: #####: 1736: error1_code = (error1_code & ~(ERROR_CLASS_MASK)) | error2_class; 2303: -: 1737: } 2304: -: 1738: 2305: #####: 1739: return error1_code; 2348: -: 1776: } 2349: -: 1777:#endif 2350: #####: 1778: if (n > 0) { 2351: branch 0 never executed 2352: branch 1 never executed 2353: #####: 1779: MPIR_Err_chop_error_stack = TRUE; 2354: #####: 1780: MPIR_Err_chop_width = n; 2355: -: 1781: } 2356: #####: 1782: else if (n == 0) { 2358: branch 1 never executed 2359: -: 1783: /* Use the default width */ 2360: #####: 1784: MPIR_Err_chop_error_stack = TRUE; 2368: -: 1792:void MPIR_Err_print_stack(FILE * fp, int errcode) 2369: function MPIR_Err_print_stack called 0 returned 0% blocks executed 0% 2370: #####: 1793:{ 2371: #####: 1794: error_ring_mutex_lock(); 2374: call 2 never executed 2375: -: 1795: { 2376: #####: 1796: while (errcode != MPI_SUCCESS) { 2381: -: 1799: int generic_idx; 2382: -: 1800: 2383: #####: 1801: if (convertErrcodeToIndexes( errcode, &ring_idx, &ring_id, 2386: branch 2 never executed 2387: -: 1802: &generic_idx ) != 0) { 2388: #####: 1803: MPIU_Error_printf( 2390: -: 1804: "Invalid error code (%d) (error ring index %d invalid)\n", 2391: -: 1805: errcode, ring_idx ); 2392: #####: 1806: break; 2393: -: 1807: } 2394: -: 1808: 2395: #####: 1809: if (generic_idx < 0) 2397: branch 1 never executed 2398: -: 1810: { 2399: #####: 1811: break; 2400: -: 1812: } 2401: -: 1813: 2402: #####: 1814: if (ErrorRing[ring_idx].id == ring_id) 2404: branch 1 never executed 2405: -: 1815: { 2406: #####: 1816: fprintf(fp, "%s: %s\n", ErrorRing[ring_idx].location, 2407: call 0 never executed 2408: -: 1817: ErrorRing[ring_idx].msg); 2409: #####: 1818: errcode = ErrorRing[ring_idx].prev_error; 2411: -: 1820: else 2412: -: 1821: { 2413: #####: 1822: break; 2415: -: 1824: } 2416: -: 1825: } 2417: #####: 1826: error_ring_mutex_unlock(); 2425: -: 1831: level of code (particularly when that code doesn't check for 2426: -: 1832: valid error codes!) is erroneous */ 2427: #####: 1833: if (errcode == MPI_SUCCESS) 2429: branch 1 never executed 2430: -: 1834: { 2431: #####: 1835: goto fn_exit; 2435: -: 1839: int generic_idx; 2436: -: 1840: 2437: #####: 1841: generic_idx = ((errcode & ERROR_GENERIC_MASK) >> ERROR_GENERIC_SHIFT) - 1; 2438: -: 1842: 2439: #####: 1843: if (generic_idx >= 0) 2441: branch 1 never executed 2442: -: 1844: { 2443: #####: 1845: fprintf(fp, "(unknown)(): %s\n", generic_err_msgs[generic_idx].long_name); 2444: call 0 never executed 2445: #####: 1846: goto fn_exit; 2450: -: 1851: int error_class; 2451: -: 1852: 2452: #####: 1853: error_class = ERROR_GET_CLASS(errcode); 2453: -: 1854: 2454: #####: 1855: if (error_class <= MPICH_ERR_LAST_CLASS) 2456: branch 1 never executed 2457: -: 1856: { 2458: #####: 1857: fprintf(fp, "(unknown)(): %s\n", get_class_msg(ERROR_GET_CLASS(errcode))); 2463: -: 1860: { 2464: -: 1861: /* FIXME: Not internationalized */ 2465: #####: 1862: fprintf(fp, "Error code contains an invalid class (%d)\n", error_class); 2499: branch 2 taken 100% 2500: -: 1887: &generic_idx ) != 0) { 2501: #####: 1888: MPIU_Error_printf( 2503: -: 1889: "Invalid error code (%d) (error ring index %d invalid)\n", 2504: -: 1890: errcode, ring_idx ); 2505: #####: 1891: break; 2509: branch 0 taken 0% (fallthrough) 2510: branch 1 taken 100% 2511: #####: 1895: break; 2522: -: 1903: else 2523: -: 1904: { 2524: #####: 1905: break; 2541: branch 2 taken 100% 2542: -: 1918: &generic_idx ) != 0) { 2543: #####: 1919: MPIU_Error_printf( 2551: branch 1 taken 100% 2552: -: 1925: { 2553: #####: 1926: break; 2591: branch 1 taken 100% 2592: -: 1952: { 2593: #####: 1953: cur_pos = ErrorRing[ring_idx].msg; 2594: #####: 1954: len = (int)strlen(cur_pos); 2595: call 0 never executed 2596: #####: 1955: if (len == 0 && maxlen > 0) { 2597: branch 0 never executed 2598: branch 1 never executed 2599: #####: 1956: *str++ = '\n'; 2600: #####: 1957: maxlen--; 2601: -: 1958: } 2602: #####: 1959: while (len) 2604: branch 1 never executed 2605: -: 1960: { 2606: #####: 1961: if (len >= MPIR_Err_chop_width - max_location_len) 2608: branch 1 never executed 2609: -: 1962: { 2610: #####: 1963: if (len > maxlen) 2611: branch 0 never executed 2612: branch 1 never executed 2613: #####: 1964: break; 2614: -: 1965: /* FIXME: Don't use Snprint to append a string ! */ 2615: #####: 1966: MPIU_Snprintf(str, MPIR_Err_chop_width - 1 - max_location_len, "%s", cur_pos); 2616: call 0 never executed 2617: #####: 1967: str[MPIR_Err_chop_width - 1 - max_location_len] = '\n'; 2618: #####: 1968: cur_pos += MPIR_Err_chop_width - 1 - max_location_len; 2619: #####: 1969: str += MPIR_Err_chop_width - max_location_len; 2620: #####: 1970: maxlen -= MPIR_Err_chop_width - max_location_len; 2621: #####: 1971: if (maxlen < max_location_len) 2622: branch 0 never executed 2623: branch 1 never executed 2624: #####: 1972: break; 2625: #####: 1973: for (i=0; i> ERROR_GENERIC_SHIFT) - 1; 2684: -: 2019: 2685: #####: 2020: if (generic_idx >= 0) 2690: -: 2023: /* FIXME: (Here and elsewhere) Make sure any string is 2691: -: 2024: non-null before you use it */ 2692: #####: 2025: p = generic_err_msgs[generic_idx].long_name; 2693: #####: 2026: if (!p) { p = ""; } 2694: branch 0 never executed 2695: branch 1 never executed 2696: #####: 2027: MPIU_Snprintf(str, maxlen, "(unknown)(): %s\n", p ); 2697: call 0 never executed 2698: #####: 2028: len = (int)strlen(str); 2699: call 0 never executed 2700: #####: 2029: maxlen -= len; 2701: #####: 2030: str += len; 2702: #####: 2031: goto fn_exit; 2707: -: 2036: int error_class; 2708: -: 2037: 2709: #####: 2038: error_class = ERROR_GET_CLASS(errcode); 2710: -: 2039: 2711: #####: 2040: if (error_class <= MPICH_ERR_LAST_CLASS) 2713: branch 1 never executed 2714: -: 2041: { 2715: #####: 2042: MPIU_Snprintf(str, maxlen, "(unknown)(): %s\n", 2717: call 1 never executed 2718: -: 2043: get_class_msg(ERROR_GET_CLASS(errcode))); 2719: #####: 2044: len = (int)strlen(str); 2720: call 0 never executed 2721: #####: 2045: maxlen -= len; 2722: #####: 2046: str += len; 2725: -: 2049: { 2726: -: 2050: /* FIXME: Not internationalized */ 2727: #####: 2051: MPIU_Snprintf(str, maxlen, 2729: -: 2052: "Error code contains an invalid class (%d)\n", 2730: -: 2053: error_class); 2731: #####: 2054: len = (int)strlen(str); 2732: call 0 never executed 2733: #####: 2055: maxlen -= len; 2734: #####: 2056: str += len; 2771: -: 2085: } 2772: -: 2086: else { 2773: #####: 2087: error_ring_mutex_lock(); 2776: call 2 never executed 2777: -: 2088: { 2778: #####: 2089: while (errorcode != MPI_SUCCESS) { 2783: -: 2092: int generic_idx; 2784: -: 2093: 2785: #####: 2094: if (convertErrcodeToIndexes( errorcode, &ring_idx, 2789: -: 2095: &ring_id, 2790: -: 2096: &generic_idx ) != 0) { 2791: #####: 2097: MPIU_Error_printf( 2793: -: 2098: "Invalid error code (%d) (error ring index %d invalid)\n", 2794: -: 2099: errorcode, ring_idx ); 2795: #####: 2100: break; 2796: -: 2101: } 2797: -: 2102: 2798: #####: 2103: if (generic_idx < 0) { 2799: branch 0 never executed 2800: branch 1 never executed 2801: #####: 2104: break; 2802: -: 2105: } 2803: -: 2106: 2804: #####: 2107: if (ErrorRing[ring_idx].id == ring_id) { 2807: -: 2108: /* just keep clobbering old values until the 2808: -: 2109: end of the stack is reached */ 2809: #####: 2110: MPIU_Snprintf(msg, num_remaining, ", %s", 2810: call 0 never executed 2811: -: 2111: ErrorRing[ring_idx].msg); 2812: #####: 2112: msg[num_remaining - 1] = '\0'; 2813: #####: 2113: errorcode = ErrorRing[ring_idx].prev_error; 2814: -: 2114: } 2815: -: 2115: else { 2816: #####: 2116: break; 2818: -: 2118: } 2819: -: 2119: } 2820: #####: 2120: error_ring_mutex_unlock(); 2828: branch 1 taken 0% 2829: -: 2124: 2830: #####: 2125: return 0; 259 line(s) not covered by tests in src/mpi/errhan/errutil.c.gcov Uncovered lines in src/mpi/errhan/dynerrutil.c.gcov 185: branch 0 taken 0% (fallthrough) 186: branch 1 taken 100% 187: #####: 156: MPIU_Free( (void*)(user_code_msgs[errcode]) ); 192: -: 160: else { 193: -: 161: /* FIXME : Unallocated error code? */ 194: #####: 162: MPIU_Free( str ); 203: branch 0 taken 0% (fallthrough) 204: branch 1 taken 100% 205: #####: 168: MPIU_Free( (void*)(user_class_msgs[errclass]) ); 210: -: 172: else { 211: -: 173: /* FIXME : Unallocated error code? */ 212: #####: 174: MPIU_Free( str ); 289: branch 0 taken 0% (fallthrough) 290: branch 1 taken 100% 291: #####: 243: MPIR_Init_err_dyncodes(); 343: branch 1 taken 100% 344: -: 290: /* Check for invalid error code */ 345: #####: 291: return 0; 6 line(s) not covered by tests in src/mpi/errhan/dynerrutil.c.gcov Uncovered lines in src/mpi/errhan/file_call_errhandler.c.gcov 100: branch 0 taken 0% (fallthrough) 101: branch 1 taken 100% 102: #####: 81: mpi_errno = errorcode; 103: #####: 82: goto fn_exit; 107: branch 0 taken 0% (fallthrough) 108: branch 1 taken 100% 109: #####: 86: MPID_Errhandler_get_ptr( MPI_ERRORS_RETURN, e ); 151: -: 117: the value is really const (but MPI didn't define error handlers 152: -: 118: with const), this preserves the intent */ 153: #####: 119: { void *fh1 = (void *)&fh; 154: #####: 120: (*e->errfn.F77_Handler_function)( fh1, &errorcode ); 5 line(s) not covered by tests in src/mpi/errhan/file_call_errhandler.c.gcov Uncovered lines in src/mpi/errhan/win_call_errhandler.c.gcov 140: -: 98: win_ptr->errhandler->handle == MPI_ERRORS_ARE_FATAL) { 141: call 0 never executed 142: #####: 100: goto fn_exit; 147: branch 1 taken 100% 148: -: 104: /* MPI_ERRORS_RETURN should always return MPI_SUCCESS */ 149: #####: 105: goto fn_exit; 158: branch 0 taken 0% (fallthrough) 159: branch 1 taken 100% 160: #####: 114: mpi_errno = errorcode; 161: #####: 115: goto fn_exit; 181: -: 131: case MPID_LANG_FORTRAN90: 182: -: 132: case MPID_LANG_FORTRAN: 183: #####: 133: (*win_ptr->errhandler->errfn.F77_Handler_function)( 5 line(s) not covered by tests in src/mpi/errhan/win_call_errhandler.c.gcov All code covered by tests in src/mpi/errhan/win_set_errhandler.c.gcov Uncovered lines in src/mpi/errhan/mpid_nem_memdefs.h.gcov 55: -: 50:static inline void nt_memcpy (volatile void *dst, volatile const void *src, size_t len) 56: function nt_memcpy called 0 returned 0% blocks executed 0% 57: #####: 51:{ 62: -: 56: 63: -: 57: /* copy in 8K chunks */ 64: #####: 58: n = len & (-8*1024); 65: #####: 59: if (n) 68: -: 60: { 69: -: 61: 70: #####: 62: __asm__ __volatile__ ("mov %4, %%ecx\n" 128: -: 119: : "eax", "edx", "ecx", "memory" ); 129: -: 120: 130: #####: 121: src = (char *)src + n; 131: #####: 122: dst = (char *)dst + n; 133: -: 124: 134: -: 125: /* copy in 128byte chunks */ 135: #####: 126: n = len & (8*1024 - 1) & -128; 136: #####: 127: if (n) 139: -: 128: { 140: -: 129: 141: #####: 130: __asm__ __volatile__ ("mov %4, %%ecx\n" 196: -: 184: : "0" (dst), "1" (src), "g" (n >> 3) 197: -: 185: : "eax", "edx", "ecx", "memory" ); 198: #####: 186: src = (char *)src + n; 199: #####: 187: dst = (char *)dst + n; 201: -: 189: 202: -: 190: /* copy leftover */ 203: #####: 191: n = len & (128 - 1); 204: #####: 192: if (n) 205: branch 0 never executed 206: branch 1 never executed 207: #####: 193: asm_memcpy (dst, src, n); 14 line(s) not covered by tests in src/mpi/errhan/mpid_nem_memdefs.h.gcov All code covered by tests in src/mpi/group/group_compare.c.gcov All code covered by tests in src/mpi/group/group_excl.c.gcov All code covered by tests in src/mpi/group/group_free.c.gcov All code covered by tests in src/mpi/group/group_intersection.c.gcov All code covered by tests in src/mpi/group/group_range_incl.c.gcov All code covered by tests in src/mpi/group/group_rank.c.gcov Uncovered lines in src/mpi/group/group_translate_ranks.c.gcov 226: branch 0 taken 0% (fallthrough) 227: branch 1 taken 100% 228: #####: 146: ranks2[i] = MPI_PROC_NULL; 229: #####: 147: continue; 2 line(s) not covered by tests in src/mpi/group/group_translate_ranks.c.gcov All code covered by tests in src/mpi/group/grouputil.c.gcov Uncovered lines in src/mpi/group/group_difference.c.gcov 193: branch 0 taken 0% (fallthrough) 194: branch 1 taken 100% 195: #####: 127: g2_idx = group_ptr2->lrank_to_lpid[g2_idx].next_lpid; 1 line(s) not covered by tests in src/mpi/group/group_difference.c.gcov All code covered by tests in src/mpi/group/group_incl.c.gcov All code covered by tests in src/mpi/group/group_range_excl.c.gcov All code covered by tests in src/mpi/group/group_size.c.gcov All code covered by tests in src/mpi/group/group_union.c.gcov Uncovered lines in src/mpi/init/abort.c.gcov 157: -: 107: { 158: -: 108: /* Use comm world if the communicator is not valid */ 159: #####: 109: comm_ptr = MPIR_Process.comm_world; 166: branch 1 taken 100% 167: -: 114: { 168: #####: 115: MPIU_Snprintf(comm_name, MPI_MAX_OBJECT_NAME, "comm=0x%X", comm); 2 line(s) not covered by tests in src/mpi/init/abort.c.gcov Uncovered lines in src/mpi/init/init.c.gcov 151: branch 1 taken 0% (fallthrough) 152: branch 2 taken 100% 153: #####: 126: if (strcmp(str,"MULTIPLE") == 0 || strcmp(str,"multiple") == 0) { 174: branch 20 never executed 175: branch 21 never executed 176: #####: 127: threadLevel = MPI_THREAD_MULTIPLE; 177: -: 128: } 178: #####: 129: else if (strcmp(str,"SERIALIZED") == 0 || strcmp(str,"serialized") == 0) { 199: branch 20 never executed 200: branch 21 never executed 201: #####: 130: threadLevel = MPI_THREAD_SERIALIZED; 202: -: 131: } 203: #####: 132: else if (strcmp(str,"FUNNELED") == 0 || strcmp(str,"funneled") == 0) { 224: branch 20 never executed 225: branch 21 never executed 226: #####: 133: threadLevel = MPI_THREAD_FUNNELED; 227: -: 134: } 228: #####: 135: else if (strcmp(str,"SINGLE") == 0 || strcmp(str,"single") == 0) { 249: branch 20 never executed 250: branch 21 never executed 251: #####: 136: threadLevel = MPI_THREAD_SINGLE; 252: -: 137: } 253: -: 138: else { 254: #####: 139: MPIU_Error_printf( "Unrecognized thread level %s\n", str ); 255: call 0 never executed 256: #####: 140: exit(1); 10 line(s) not covered by tests in src/mpi/init/init.c.gcov All code covered by tests in src/mpi/init/initialized.c.gcov All code covered by tests in src/mpi/init/initthread.c.gcov All code covered by tests in src/mpi/init/ismain.c.gcov All code covered by tests in src/mpi/init/pthread.h.gcov Uncovered lines in src/mpi/init/finalize.c.gcov 256: -: 184: HANDLE_KIND_BUILTIN) ) { 257: -: 185: int in_use; 258: #####: 186: MPIR_Errhandler_release_ref( MPIR_Process.comm_self->errhandler, 264: call 5 never executed 265: -: 187: &in_use); 266: #####: 188: if (!in_use) { 267: branch 0 never executed 268: branch 1 never executed 269: #####: 189: MPIU_Handle_obj_free( &MPID_Errhandler_mem, 270: call 0 never executed 271: -: 190: MPIR_Process.comm_self->errhandler ); 272: #####: 191: MPIR_Process.comm_self->errhandler = NULL; 406: -: 299: /* Because this is a maintainer item, we won't check for 407: -: 300: errors in the delayStr */ 408: #####: 301: microseconds = 1000 * atoi( delayStr ); 5 line(s) not covered by tests in src/mpi/init/finalize.c.gcov Uncovered lines in src/mpi/init/stdlib.h.gcov 289: -: 284:__NTH (atoi (__const char *__nptr)) 290: function atoi called 0 returned 0% blocks executed 0% 291: #####: 285:{ 292: #####: 286: return (int) strtol (__nptr, (char **) NULL, 10); 2 line(s) not covered by tests in src/mpi/init/stdlib.h.gcov All code covered by tests in src/mpi/init/finalized.c.gcov All code covered by tests in src/mpi/init/querythread.c.gcov Uncovered lines in src/mpi/init/async.c.gcov 26: -: 21:static void progress_fn(void * data) 27: function progress_fn called 0 returned 0% blocks executed 0% 28: #####: 22:{ 29: -: 23:#if MPICH_THREAD_LEVEL >= MPI_THREAD_SERIALIZED 30: #####: 24: int mpi_errno = MPI_SUCCESS; 31: #####: 25: MPIU_THREADPRIV_DECL; 37: -: 31: * correctly, instead of relying on the #if protection here. */ 38: -: 32:#if MPIU_THREAD_GRANULARITY == MPIU_THREAD_GRANULARITY_GLOBAL 39: #####: 33: MPID_CS_ENTER(); 61: -: 43: * this comment. */ 62: -: 44: 63: #####: 45: MPIU_THREADPRIV_GET; 72: call 8 never executed 73: -: 46: 74: #####: 47: MPIR_Nest_incr(); 75: #####: 48: mpi_errno = NMPI_Recv(NULL, 0, MPI_CHAR, 0, 0, progress_comm, MPI_STATUS_IGNORE); 76: call 0 never executed 77: #####: 49: MPIU_Assert(!mpi_errno); 80: call 2 never executed 81: call 3 never executed 82: #####: 50: MPIR_Nest_decr(); 83: -: 51: 84: -: 52: /* Send a signal to the main thread saying we are done */ 85: #####: 53: MPIU_Thread_mutex_lock(&progress_mutex, &mpi_errno); 86: call 0 never executed 87: #####: 54: MPIU_Assert(!mpi_errno); 91: call 3 never executed 92: -: 55: 93: #####: 56: progress_thread_done = 1; 94: -: 57: 95: #####: 58: MPIU_Thread_mutex_unlock(&progress_mutex, &mpi_errno); 96: call 0 never executed 97: #####: 59: MPIU_Assert(!mpi_errno); 101: call 3 never executed 102: -: 60: 103: #####: 61: MPIU_Thread_cond_signal(&progress_cond, &mpi_errno); 104: call 0 never executed 105: #####: 62: MPIU_Assert(!mpi_errno); 110: -: 63: 111: -: 64:#if MPIU_THREAD_GRANULARITY == MPIU_THREAD_GRANULARITY_GLOBAL 112: #####: 65: MPID_CS_EXIT(); 135: -: 76:int MPIR_Init_async_thread(void) 136: function MPIR_Init_async_thread called 0 returned 0% blocks executed 0% 137: #####: 77:{ 138: #####: 78: int mpi_errno = MPI_SUCCESS; 139: -: 79:#if MPICH_THREAD_LEVEL >= MPI_THREAD_SERIALIZED 140: #####: 80: MPIU_THREADPRIV_DECL; 143: -: 83: MPID_MPI_FUNC_ENTER(MPID_STATE_MPIR_INIT_ASYNC_THREAD); 144: -: 84: 145: #####: 85: MPIU_THREADPRIV_GET; 155: -: 86: 156: -: 87: /* Dup comm world for the progress thread */ 157: #####: 88: MPIR_Nest_incr(); 158: #####: 89: mpi_errno = NMPI_Comm_dup(MPI_COMM_SELF, &progress_comm); 159: call 0 never executed 160: #####: 90: MPIU_Assert(!mpi_errno); 163: call 2 never executed 164: call 3 never executed 165: #####: 91: MPIR_Nest_decr(); 166: -: 92: 167: #####: 93: MPIU_Thread_cond_create(&progress_cond, &mpi_errno); 168: call 0 never executed 169: #####: 94: MPIU_Assert(!mpi_errno); 173: call 3 never executed 174: -: 95: 175: #####: 96: MPIU_Thread_mutex_create(&progress_mutex, &mpi_errno); 176: call 0 never executed 177: #####: 97: MPIU_Assert(!mpi_errno); 181: call 3 never executed 182: -: 98: 183: #####: 99: MPIU_Thread_create((MPIU_Thread_func_t) progress_fn, NULL, &progress_thread_id, &mpi_errno); 184: call 0 never executed 185: #####: 100: MPIU_Assert(!mpi_errno); 192: -: 103: 193: -: 104:#endif /* MPICH_THREAD_LEVEL >= MPI_THREAD_SERIALIZED */ 194: #####: 105: return mpi_errno; 201: -: 112:int MPIR_Finalize_async_thread(void) 202: function MPIR_Finalize_async_thread called 0 returned 0% blocks executed 0% 203: #####: 113:{ 204: #####: 114: int mpi_errno = MPI_SUCCESS; 205: -: 115:#if MPICH_THREAD_LEVEL >= MPI_THREAD_SERIALIZED 206: #####: 116: MPIU_THREADPRIV_DECL; 209: -: 119: MPID_MPI_FUNC_ENTER(MPID_STATE_MPIR_FINALIZE_ASYNC_THREAD); 210: -: 120: 211: #####: 121: MPIU_THREADPRIV_GET; 220: call 8 never executed 221: -: 122: 222: #####: 123: MPIR_Nest_incr(); 223: #####: 124: mpi_errno = NMPI_Send(NULL, 0, MPI_CHAR, 0, 0, progress_comm); 224: call 0 never executed 225: #####: 125: MPIU_Assert(!mpi_errno); 228: call 2 never executed 229: call 3 never executed 230: #####: 126: MPIR_Nest_decr(); 231: -: 127: 232: -: 128:#if MPIU_THREAD_GRANULARITY == MPIU_THREAD_GRANULARITY_GLOBAL 233: #####: 129: MPID_CS_EXIT(); 246: -: 130:#endif 247: -: 131: 248: #####: 132: MPIU_Thread_mutex_lock(&progress_mutex, &mpi_errno); 249: call 0 never executed 250: #####: 133: MPIU_Assert(!mpi_errno); 254: call 3 never executed 255: -: 134: 256: #####: 135: while (!progress_thread_done) { 257: branch 0 never executed 258: branch 1 never executed 259: #####: 136: MPIU_Thread_cond_wait(&progress_cond, &progress_mutex, &mpi_errno); 261: branch 1 never executed 262: branch 2 never executed 263: #####: 137: MPIU_Assert(!mpi_errno); 268: -: 138: } 269: -: 139: 270: #####: 140: MPIU_Thread_mutex_unlock(&progress_mutex, &mpi_errno); 271: call 0 never executed 272: #####: 141: MPIU_Assert(!mpi_errno); 277: -: 142: 278: -: 143:#if MPIU_THREAD_GRANULARITY == MPIU_THREAD_GRANULARITY_GLOBAL 279: #####: 144: MPID_CS_ENTER(); 292: -: 145:#endif 293: -: 146: 294: #####: 147: MPIU_Thread_cond_destroy(&progress_cond, &mpi_errno); 295: call 0 never executed 296: #####: 148: MPIU_Assert(!mpi_errno); 300: call 3 never executed 301: -: 149: 302: #####: 150: MPIU_Thread_mutex_destroy(&progress_mutex, &mpi_errno); 303: call 0 never executed 304: #####: 151: MPIU_Assert(!mpi_errno); 311: -: 154: 312: -: 155:#endif /* MPICH_THREAD_LEVEL >= MPI_THREAD_SERIALIZED */ 313: #####: 156: return mpi_errno; 54 line(s) not covered by tests in src/mpi/init/async.c.gcov All code covered by tests in src/mpi/misc/getpname.c.gcov All code covered by tests in src/mpi/misc/pcontrol.c.gcov All code covered by tests in src/mpi/misc/version.c.gcov All code covered by tests in src/mpi/pt2pt/ssend.c.gcov All code covered by tests in src/mpi/pt2pt/bsend.c.gcov All code covered by tests in src/mpi/pt2pt/bsend_init.c.gcov All code covered by tests in src/mpi/pt2pt/bufattach.c.gcov All code covered by tests in src/mpi/pt2pt/buffree.c.gcov All code covered by tests in src/mpi/pt2pt/cancel.c.gcov Uncovered lines in src/mpi/pt2pt/greq_start.c.gcov 318: -: 259: } 319: -: 260: else { 320: #####: 261: class_ptr->next = MPIR_Grequest_class_list; 436: -: 360: void *extra_state, MPI_Request *request ) 437: function PMPIX_Grequest_start called 0 returned 0% blocks executed 0% 438: #####: 361:{ 440: -: 363: MPID_Request *lrequest_ptr; 441: -: 364: 442: #####: 365: mpi_errno = MPI_Grequest_start(query_fn, free_fn, cancel_fn, 444: -: 366: extra_state, request); 445: -: 367: 446: #####: 368: if (mpi_errno == MPI_SUCCESS) 448: branch 1 never executed 449: -: 369: { 450: #####: 370: MPID_Request_get_ptr(*request, lrequest_ptr); 453: branch 2 never executed 454: call 3 never executed 455: #####: 371: lrequest_ptr->poll_fn = poll_fn; 456: #####: 372: lrequest_ptr->wait_fn = wait_fn; 457: -: 373: } 458: -: 374: 459: #####: 375: return mpi_errno; 8 line(s) not covered by tests in src/mpi/pt2pt/greq_start.c.gcov All code covered by tests in src/mpi/pt2pt/greq_complete.c.gcov All code covered by tests in src/mpi/pt2pt/ibsend.c.gcov All code covered by tests in src/mpi/pt2pt/iprobe.c.gcov All code covered by tests in src/mpi/pt2pt/irecv.c.gcov All code covered by tests in src/mpi/pt2pt/irsend.c.gcov All code covered by tests in src/mpi/pt2pt/isend.c.gcov All code covered by tests in src/mpi/pt2pt/issend.c.gcov All code covered by tests in src/mpi/pt2pt/probe.c.gcov All code covered by tests in src/mpi/pt2pt/recv.c.gcov All code covered by tests in src/mpi/pt2pt/recv_init.c.gcov Uncovered lines in src/mpi/pt2pt/request_free.c.gcov 188: -: 131: { 189: -: 132: /* This is needed for persistent Bsend requests */ 190: #####: 133: mpi_errno = MPIR_Grequest_free( 1 line(s) not covered by tests in src/mpi/pt2pt/request_free.c.gcov Uncovered lines in src/mpi/pt2pt/request_get_status.c.gcov 149: branch 1 taken 100% 150: -: 109: /* request not complete. poke the progress engine. Req #3130 */ 151: #####: 110: mpi_errno = MPID_Progress_test(); 170: -: 118: case MPID_REQUEST_SEND: 171: -: 119: { 172: #####: 120: if (status != MPI_STATUS_IGNORE) 174: branch 1 never executed 175: -: 121: { 176: #####: 122: status->cancelled = request_ptr->status.cancelled; 177: -: 123: } 178: #####: 124: mpi_errno = request_ptr->status.MPI_ERROR; 179: #####: 125: break; 191: -: 135: case MPID_PREQUEST_SEND: 192: -: 136: { 193: #####: 137: MPID_Request * prequest_ptr = request_ptr->partner_request; 194: -: 138: 195: #####: 139: if (prequest_ptr != NULL) 197: branch 1 never executed 198: -: 140: { 199: #####: 141: if (prequest_ptr->kind != MPID_UREQUEST) 201: branch 1 never executed 202: -: 142: { 203: #####: 143: if (status != MPI_STATUS_IGNORE) 205: branch 1 never executed 206: -: 144: { 207: #####: 145: status->cancelled = request_ptr->status.cancelled; 208: -: 146: } 209: #####: 147: mpi_errno = prequest_ptr->status.MPI_ERROR; 212: -: 150: { 213: -: 151: /* This is needed for persistent Bsend requests */ 214: #####: 152: MPIU_THREADPRIV_DECL; 215: #####: 153: MPIU_THREADPRIV_GET; 223: call 7 never executed 224: call 8 never executed 225: #####: 154: MPIR_Nest_incr(); 227: -: 156: int rc; 228: -: 157: 229: #####: 158: rc = MPIR_Grequest_query(prequest_ptr); 230: call 0 never executed 231: #####: 159: if (mpi_errno == MPI_SUCCESS) 233: branch 1 never executed 234: -: 160: { 235: #####: 161: mpi_errno = rc; 236: -: 162: } 237: #####: 163: if (status != MPI_STATUS_IGNORE) 239: branch 1 never executed 240: -: 164: { 241: #####: 165: status->cancelled = prequest_ptr->status.cancelled; 242: -: 166: } 243: #####: 167: if (mpi_errno == MPI_SUCCESS) 245: branch 1 never executed 246: -: 168: { 247: #####: 169: mpi_errno = prequest_ptr->status.MPI_ERROR; 248: -: 170: } 249: -: 171: } 250: #####: 172: MPIR_Nest_decr(); 253: -: 175: else 254: -: 176: { 255: #####: 177: if (request_ptr->status.MPI_ERROR != MPI_SUCCESS) 259: -: 179: /* if the persistent request failed to start then 260: -: 180: make the error code available */ 261: #####: 181: if (status != MPI_STATUS_IGNORE) 263: branch 1 never executed 264: -: 182: { 265: #####: 183: status->cancelled = request_ptr->status.cancelled; 266: -: 184: } 267: #####: 185: mpi_errno = request_ptr->status.MPI_ERROR; 269: -: 187: else 270: -: 188: { 271: #####: 189: MPIR_Status_set_empty(status); 280: -: 196: case MPID_PREQUEST_RECV: 281: -: 197: { 282: #####: 198: MPID_Request * prequest_ptr = request_ptr->partner_request; 283: -: 199: 284: #####: 200: if (prequest_ptr != NULL) 286: branch 1 never executed 287: -: 201: { 288: #####: 202: MPIR_Request_extract_status(prequest_ptr, status); 289: branch 0 never executed 290: branch 1 never executed 291: #####: 203: mpi_errno = prequest_ptr->status.MPI_ERROR; 295: -: 207: /* if the persistent request failed to start then 296: -: 208: make the error code available */ 297: #####: 209: mpi_errno = request_ptr->status.MPI_ERROR; 298: #####: 210: MPIR_Status_set_empty(status); 306: -: 216: case MPID_UREQUEST: 307: -: 217: { 308: #####: 218: MPIU_THREADPRIV_DECL; 309: #####: 219: MPIU_THREADPRIV_GET; 317: call 7 never executed 318: call 8 never executed 319: #####: 220: MPIR_Nest_incr(); 321: -: 222: int rc; 322: -: 223: 323: #####: 224: rc = MPIR_Grequest_query(request_ptr); 324: call 0 never executed 325: #####: 225: if (mpi_errno == MPI_SUCCESS) 327: branch 1 never executed 328: -: 226: { 329: #####: 227: mpi_errno = rc; 330: -: 228: } 331: #####: 229: if (status != MPI_STATUS_IGNORE) 333: branch 1 never executed 334: -: 230: { 335: #####: 231: status->cancelled = request_ptr->status.cancelled; 336: -: 232: } 337: #####: 233: MPIR_Request_extract_status(request_ptr, status); 339: branch 1 never executed 340: -: 234: } 341: #####: 235: MPIR_Nest_decr(); 352: -: 246: else 353: -: 247: { 354: #####: 248: *flag = FALSE; 44 line(s) not covered by tests in src/mpi/pt2pt/request_get_status.c.gcov All code covered by tests in src/mpi/pt2pt/rsend.c.gcov All code covered by tests in src/mpi/pt2pt/rsend_init.c.gcov All code covered by tests in src/mpi/pt2pt/send.c.gcov All code covered by tests in src/mpi/pt2pt/send_init.c.gcov All code covered by tests in src/mpi/pt2pt/sendrecv.c.gcov All code covered by tests in src/mpi/pt2pt/sendrecv_rep.c.gcov All code covered by tests in src/mpi/pt2pt/status_set_cancelled.c.gcov All code covered by tests in src/mpi/pt2pt/start.c.gcov All code covered by tests in src/mpi/pt2pt/ssend_init.c.gcov Uncovered lines in src/mpi/pt2pt/startall.c.gcov 140: branch 1 taken 100% 141: -: 96: { 142: #####: 97: MPIU_CHKLMEM_MALLOC_ORJUMP(request_ptrs, MPID_Request **, count * sizeof(MPID_Request *), mpi_errno, "request pointers"); 219: branch 1 taken 100% 220: -: 135: { 221: #####: 136: MPIU_CHKLMEM_FREEALL(); 2 line(s) not covered by tests in src/mpi/pt2pt/startall.c.gcov Uncovered lines in src/mpi/pt2pt/test.c.gcov 190: branch 3 taken 100% 191: -: 126: { 192: #####: 127: mpi_errno = (request_ptr->poll_fn)(request_ptr->grequest_extra_state, 1 line(s) not covered by tests in src/mpi/pt2pt/test.c.gcov All code covered by tests in src/mpi/pt2pt/test_cancelled.c.gcov Uncovered lines in src/mpi/pt2pt/testall.c.gcov 184: branch 1 taken 100% 185: -: 130: { 186: #####: 131: MPIU_CHKLMEM_MALLOC_ORJUMP(request_ptrs, MPID_Request **, 256: -: 167: request_ptrs[i]->poll_fn != NULL) 257: -: 168: { 258: #####: 169: mpi_errno = (request_ptrs[i]->poll_fn)(request_ptrs[i]->grequest_extra_state, 315: -: 201: else 316: -: 202: { 317: #####: 203: status_ptr->MPI_ERROR = MPI_SUCCESS; 321: -: 207: else 322: -: 208: { 323: #####: 209: if (mpi_errno == MPI_ERR_IN_STATUS && array_of_statuses != MPI_STATUSES_IGNORE) 325: branch 1 never executed 326: -: 210: { 327: #####: 211: array_of_statuses[i].MPI_ERROR = MPI_ERR_PENDING; 343: branch 1 taken 100% 344: -: 222: { 345: #####: 223: array_of_statuses[i].MPI_ERROR = MPI_SUCCESS; 363: branch 1 taken 100% 364: -: 238: { 365: #####: 239: MPIU_CHKLMEM_FREEALL(); 7 line(s) not covered by tests in src/mpi/pt2pt/testall.c.gcov Uncovered lines in src/mpi/pt2pt/testany.c.gcov 172: branch 1 taken 100% 173: -: 115: { 174: #####: 116: MPIU_CHKLMEM_MALLOC_ORJUMP(request_ptrs, MPID_Request **, count * sizeof(MPID_Request *), mpi_errno, "request pointers"); 266: -: 168: request_ptrs[i]->poll_fn != NULL) 267: -: 169: { 268: #####: 170: mpi_errno = (request_ptrs[i]->poll_fn)(request_ptrs[i]->grequest_extra_state, 293: -: 185: else 294: -: 186: { 295: #####: 187: n_inactive += 1; 302: branch 1 taken 100% 303: -: 193: { 304: #####: 194: *flag = TRUE; 305: #####: 195: *index = MPI_UNDEFINED; 314: branch 1 taken 100% 315: -: 203: { 316: #####: 204: MPIU_CHKLMEM_FREEALL(); 6 line(s) not covered by tests in src/mpi/pt2pt/testany.c.gcov Uncovered lines in src/mpi/pt2pt/testsome.c.gcov 179: branch 1 taken 100% 180: -: 122: { 181: #####: 123: MPIU_CHKLMEM_MALLOC_ORJUMP(request_ptrs, MPID_Request **, incount * sizeof(MPID_Request *), mpi_errno, "request pointers"); 263: -: 169: request_ptrs[i]->poll_fn != NULL) 264: -: 170: { 265: #####: 171: mpi_errno = (request_ptrs[i]->poll_fn)(request_ptrs[i]->grequest_extra_state, 308: -: 198: else 309: -: 199: { 310: #####: 200: request_ptrs[i] = NULL; 311: #####: 201: n_inactive += 1; 346: branch 1 taken 100% 347: -: 225: { 348: #####: 226: *outcount = MPI_UNDEFINED; 360: branch 1 taken 100% 361: -: 235: { 362: #####: 236: MPIU_CHKLMEM_FREEALL(); 6 line(s) not covered by tests in src/mpi/pt2pt/testsome.c.gcov All code covered by tests in src/mpi/pt2pt/wait.c.gcov Uncovered lines in src/mpi/pt2pt/waitall.c.gcov 274: branch 1 taken 100% 275: -: 183: { 276: #####: 184: if (!ignoring_statuses) 277: branch 0 never executed 278: branch 1 never executed 279: #####: 185: array_of_statuses[i].MPI_ERROR = MPI_SUCCESS; 347: -: 229: { 348: -: 230: /* either the user specified MPI_REQUEST_NULL, or this is a completed greq */ 349: #####: 231: array_of_statuses[j].MPI_ERROR = MPI_SUCCESS; 3 line(s) not covered by tests in src/mpi/pt2pt/waitall.c.gcov Uncovered lines in src/mpi/pt2pt/waitany.c.gcov 247: -: 163: { 248: -: 164: /* this is a generalized request; make progress on it */ 249: #####: 165: mpi_errno = (request_ptrs[i]->poll_fn)(request_ptrs[i]->grequest_extra_state, status); 250: call 0 never executed 251: #####: 166: if (mpi_errno != MPI_SUCCESS) goto fn_progress_end_fail; 277: branch 1 taken 100% 278: -: 184: { 279: #####: 185: *index = MPI_UNDEFINED; 280: -: 186: /* status is set to empty by MPIR_Request_complete */ 281: #####: 187: goto break_l1; 341: 3081: 219: return mpi_errno; 342: -: 220: 343: #####: 221: fn_progress_end_fail: 5 line(s) not covered by tests in src/mpi/pt2pt/waitany.c.gcov Uncovered lines in src/mpi/pt2pt/waitsome.c.gcov 197: branch 1 taken 100% 198: -: 140: { 199: #####: 141: MPIU_CHKLMEM_MALLOC_ORJUMP(request_ptrs, MPID_Request **, incount * sizeof(MPID_Request *), mpi_errno, "request pointers"); 326: -: 222: else 327: -: 223: { 328: #####: 224: request_ptrs[i] = NULL; 329: #####: 225: n_inactive += 1; 366: branch 1 taken 100% 367: -: 251: { 368: #####: 252: *outcount = MPI_UNDEFINED; 369: #####: 253: break; 391: branch 1 taken 100% 392: -: 271: { 393: #####: 272: MPIU_CHKLMEM_FREEALL(); 6 line(s) not covered by tests in src/mpi/pt2pt/waitsome.c.gcov Uncovered lines in src/mpi/pt2pt/bsendutil.c.gcov 283: -: 234: else 284: -: 235: { 285: #####: 236: packsize = count; 323: -: 266: else 324: -: 267: { 325: #####: 268: MPIU_Memcpy(p->msg.msgbuf, buf, count); 352: call 26 never executed 353: call 27 never executed 354: #####: 269: p->msg.count = count; 526: -: 406: } 527: -: 407: else { 528: #####: 408: avail_prev->next = p; 529: #####: 409: p->prev = avail_prev; 622: branch 0 taken 0% 623: branch 1 taken 100% (fallthrough) 624: #####: 488: next_pending = pending->next; 625: -: 489: /* Retry sending this item */ 626: -: 490: /* FIXME */ 627: #####: 491: pending = next_pending; 719: branch 0 taken 0% (fallthrough) 720: branch 1 taken 100% 721: #####: 571: prev->next = p->next; 8 line(s) not covered by tests in src/mpi/pt2pt/bsendutil.c.gcov Uncovered lines in src/mpi/pt2pt/mpid_nem_memdefs.h.gcov 55: -: 50:static inline void nt_memcpy (volatile void *dst, volatile const void *src, size_t len) 56: function nt_memcpy called 0 returned 0% blocks executed 0% 57: #####: 51:{ 62: -: 56: 63: -: 57: /* copy in 8K chunks */ 64: #####: 58: n = len & (-8*1024); 65: #####: 59: if (n) 68: -: 60: { 69: -: 61: 70: #####: 62: __asm__ __volatile__ ("mov %4, %%ecx\n" 128: -: 119: : "eax", "edx", "ecx", "memory" ); 129: -: 120: 130: #####: 121: src = (char *)src + n; 131: #####: 122: dst = (char *)dst + n; 133: -: 124: 134: -: 125: /* copy in 128byte chunks */ 135: #####: 126: n = len & (8*1024 - 1) & -128; 136: #####: 127: if (n) 139: -: 128: { 140: -: 129: 141: #####: 130: __asm__ __volatile__ ("mov %4, %%ecx\n" 196: -: 184: : "0" (dst), "1" (src), "g" (n >> 3) 197: -: 185: : "eax", "edx", "ecx", "memory" ); 198: #####: 186: src = (char *)src + n; 199: #####: 187: dst = (char *)dst + n; 201: -: 189: 202: -: 190: /* copy leftover */ 203: #####: 191: n = len & (128 - 1); 204: #####: 192: if (n) 205: branch 0 never executed 206: branch 1 never executed 207: #####: 193: asm_memcpy (dst, src, n); 14 line(s) not covered by tests in src/mpi/pt2pt/mpid_nem_memdefs.h.gcov Uncovered lines in src/mpi/pt2pt/mpir_request.c.gcov 178: -: 114: /* if the persistent request failed to start then make the 179: -: 115: error code available */ 180: #####: 116: if (status != MPI_STATUS_IGNORE) 182: branch 1 never executed 183: -: 117: { 184: #####: 118: status->cancelled = FALSE; 185: -: 119: } 186: #####: 120: mpi_errno = request_ptr->status.MPI_ERROR; 365: -: 242: case MPID_PREQUEST_SEND: 366: -: 243: { 367: #####: 244: if (request_ptr->partner_request != NULL) 369: branch 1 never executed 370: -: 245: { 371: #####: 246: if (request_ptr->partner_request->kind == MPID_UREQUEST) 374: -: 247: { 375: -: 248: /* This is needed for persistent Bsend requests */ 376: #####: 249: mpi_errno = MPIR_Grequest_query( 378: -: 250: request_ptr->partner_request); 379: -: 251: } 380: #####: 252: if (mpi_errno == MPI_SUCCESS) 382: branch 1 never executed 383: -: 253: { 384: #####: 254: mpi_errno = request_ptr->partner_request->status.MPI_ERROR; 387: -: 257: else 388: -: 258: { 389: #####: 259: mpi_errno = request_ptr->status.MPI_ERROR; 395: -: 265: case MPID_PREQUEST_RECV: 396: -: 266: { 397: #####: 267: if (request_ptr->partner_request != NULL) 399: branch 1 never executed 400: -: 268: { 401: #####: 269: mpi_errno = request_ptr->partner_request->status.MPI_ERROR; 403: -: 271: else 404: -: 272: { 405: #####: 273: mpi_errno = request_ptr->status.MPI_ERROR; 443: -: 304: { 444: -: 305: MPI_Fint ierr; 445: #####: 306: ((MPIR_Grequest_f77_query_function*)(request_ptr->query_fn))( 447: -: 307: request_ptr->grequest_extra_state, &request_ptr->status, 448: -: 308: &ierr ); 449: #####: 309: rc = (int) ierr; 450: #####: 310: MPIU_ERR_CHKANDSTMT1((rc != MPI_SUCCESS), mpi_errno, 541: -: 383: MPI_Fint ierr; 542: -: 384: 543: #####: 385: ((MPIR_Grequest_f77_cancel_function *)(request_ptr->cancel_fn))( 544: call 0 never executed 545: -: 386: request_ptr->grequest_extra_state, &complete, &ierr); 546: #####: 387: rc = (int) ierr; 547: #####: 388: MPIU_ERR_CHKANDSTMT1((rc != MPI_SUCCESS), mpi_errno, MPI_ERR_OTHER, 746: branch 0 taken 0% (fallthrough) 747: branch 1 taken 100% 748: #####: 538: if (request_ptrs[i+1] == NULL || 753: -: 539: (request_ptrs[i]->greq_class != 754: -: 540: request_ptrs[i+1]->greq_class) ) 755: #####: 541: n_classes += 1; 785: -: 556: request_ptrs[i]->poll_fn != NULL) 786: -: 557: { 787: #####: 558: mpi_errno = (request_ptrs[i]->poll_fn)(request_ptrs[i]->grequest_extra_state, &(array_of_statuses[i])); 21 line(s) not covered by tests in src/mpi/pt2pt/mpir_request.c.gcov All code covered by tests in src/mpi/rma/accumulate.c.gcov All code covered by tests in src/mpi/rma/free_mem.c.gcov All code covered by tests in src/mpi/rma/get.c.gcov All code covered by tests in src/mpi/rma/win_complete.c.gcov All code covered by tests in src/mpi/rma/win_create.c.gcov All code covered by tests in src/mpi/rma/win_free.c.gcov All code covered by tests in src/mpi/rma/win_get_name.c.gcov All code covered by tests in src/mpi/rma/win_lock.c.gcov All code covered by tests in src/mpi/rma/win_set_name.c.gcov All code covered by tests in src/mpi/rma/win_start.c.gcov All code covered by tests in src/mpi/rma/win_wait.c.gcov All code covered by tests in src/mpi/rma/alloc_mem.c.gcov All code covered by tests in src/mpi/rma/put.c.gcov All code covered by tests in src/mpi/rma/win_fence.c.gcov All code covered by tests in src/mpi/rma/win_get_group.c.gcov All code covered by tests in src/mpi/rma/win_post.c.gcov All code covered by tests in src/mpi/rma/win_unlock.c.gcov All code covered by tests in src/mpi/rma/win_test.c.gcov Uncovered lines in src/mpi/spawn/comm_disconnect.c.gcov 159: -: 109: MPID_Progress_state progress_state; 160: -: 110: 161: #####: 111: MPID_Progress_start(&progress_state); 162: #####: 112: while (MPIU_Object_get_ref(comm_ptr) > 1) 164: branch 1 never executed 165: -: 113: { 166: #####: 114: mpi_errno = MPID_Progress_wait(&progress_state); 3 line(s) not covered by tests in src/mpi/spawn/comm_disconnect.c.gcov All code covered by tests in src/mpi/spawn/comm_get_parent.c.gcov All code covered by tests in src/mpi/spawn/comm_spawn.c.gcov All code covered by tests in src/mpi/spawn/lookup_name.c.gcov All code covered by tests in src/mpi/spawn/publish_name.c.gcov All code covered by tests in src/mpi/spawn/open_port.c.gcov All code covered by tests in src/mpi/spawn/close_port.c.gcov All code covered by tests in src/mpi/spawn/comm_accept.c.gcov Uncovered lines in src/mpi/spawn/comm_join.c.gcov 296: 2: 186: return mpi_errno; 297: -: 187: 298: #####: 189: MPIR_Nest_decr(); 1 line(s) not covered by tests in src/mpi/spawn/comm_join.c.gcov All code covered by tests in src/mpi/spawn/comm_spawn_multiple.c.gcov All code covered by tests in src/mpi/spawn/unpublish_name.c.gcov All code covered by tests in src/mpi/spawn/comm_connect.c.gcov All code covered by tests in src/mpi/timer/wtime.c.gcov All code covered by tests in src/mpi/timer/wtick.c.gcov Uncovered lines in src/mpi/timer/mpidtime.c.gcov 127: -: 118:void MPID_Wtime_acc( MPID_Time_t *t1, MPID_Time_t *t2, MPID_Time_t *t3 ) 128: function MPID_Wtime_acc called 0 returned 0% blocks executed 0% 129: #####: 119:{ 130: -: 120: int usec, sec; 131: -: 121: 132: #####: 122: usec = t2->tv_usec - t1->tv_usec; 133: #####: 123: sec = t2->tv_sec - t1->tv_sec; 134: #####: 124: t3->tv_usec += usec; 135: #####: 125: t3->tv_sec += sec; 136: -: 126: /* Handle carry to the integer seconds field */ 137: #####: 127: if (t3->tv_usec > 1.0e6) { 138: branch 0 never executed 139: branch 1 never executed 140: #####: 128: t3->tv_usec -= 1.0e6; 141: #####: 129: t3->tv_sec++; 8 line(s) not covered by tests in src/mpi/timer/mpidtime.c.gcov All code covered by tests in src/mpi/topo/cart_coords.c.gcov Uncovered lines in src/mpi/topo/cart_create.c.gcov 505: branch 2 never executed 506: branch 3 never executed 507: #####: 291: mpi_errno = comm_ptr->topo_fns->cartCreate( comm_ptr, ndims, 1 line(s) not covered by tests in src/mpi/topo/cart_create.c.gcov All code covered by tests in src/mpi/topo/cart_get.c.gcov Uncovered lines in src/mpi/topo/cart_map.c.gcov 63: -: 50: "**topotoolarge", 64: -: 51: "**topotoolarge %d %d", size, nranks ); 65: #####: 52: return mpi_errno; 205: branch 2 never executed 206: branch 3 never executed 207: #####: 150: mpi_errno = comm_ptr->topo_fns->cartMap( comm_ptr, ndims, 2 line(s) not covered by tests in src/mpi/topo/cart_map.c.gcov All code covered by tests in src/mpi/topo/cart_rank.c.gcov All code covered by tests in src/mpi/topo/cart_shift.c.gcov Uncovered lines in src/mpi/topo/cart_sub.c.gcov 301: -: 177: } 302: -: 178: else { 303: #####: 179: toponew_ptr->topo.cart.dims = 0; 304: #####: 180: toponew_ptr->topo.cart.periodic = 0; 305: #####: 181: toponew_ptr->topo.cart.position = 0; 3 line(s) not covered by tests in src/mpi/topo/cart_sub.c.gcov Uncovered lines in src/mpi/topo/dims_create.c.gcov 281: -: 230: "**argarrayneg", 282: -: 231: "**argarrayneg %s %d %d", "dims", i, dims[i]); 283: #####: 232: return mpi_errno; 523: branch 0 taken 0% (fallthrough) 524: branch 1 taken 100% 525: #####: 418: mpi_errno = MPIR_Process.dimsCreate( nnodes, ndims, dims ); 2 line(s) not covered by tests in src/mpi/topo/dims_create.c.gcov All code covered by tests in src/mpi/topo/graph_get.c.gcov Uncovered lines in src/mpi/topo/graph_map.c.gcov 175: branch 2 never executed 176: branch 3 never executed 177: #####: 121: mpi_errno = comm_ptr->topo_fns->graphMap( comm_ptr, nnodes, 1 line(s) not covered by tests in src/mpi/topo/graph_map.c.gcov All code covered by tests in src/mpi/topo/graph_nbr.c.gcov Uncovered lines in src/mpi/topo/graphcreate.c.gcov 495: branch 3 never executed 496: -: 327: comm_ptr->topo_fns->graphCreate != NULL) { 497: #####: 328: mpi_errno = comm_ptr->topo_fns->graphCreate( comm_ptr, nnodes, 1 line(s) not covered by tests in src/mpi/topo/graphcreate.c.gcov All code covered by tests in src/mpi/topo/graphnbrcnt.c.gcov All code covered by tests in src/mpi/topo/cartdim_get.c.gcov All code covered by tests in src/mpi/topo/dist_gr_create_adj.c.gcov Uncovered lines in src/mpi/topo/dist_gr_create.c.gcov 627: branch 0 taken 0% (fallthrough) 628: branch 1 taken 100% 629: #####: 320: in_capacity *= 2; 630: #####: 321: MPIU_REALLOC_ORJUMP(dist_graph_ptr->in, in_capacity*sizeof(int), mpi_errno); 635: branch 4 never executed 636: call 5 never executed 637: #####: 322: if (weights != MPI_UNWEIGHTED) 638: branch 0 never executed 639: branch 1 never executed 640: #####: 323: MPIU_REALLOC_ORJUMP(dist_graph_ptr->in_weights, in_capacity*sizeof(int), mpi_errno); 693: branch 0 taken 0% (fallthrough) 694: branch 1 taken 100% 695: #####: 350: out_capacity *= 2; 696: #####: 351: MPIU_REALLOC_ORJUMP(dist_graph_ptr->out, out_capacity*sizeof(int), mpi_errno); 701: branch 4 never executed 702: call 5 never executed 703: #####: 352: if (weights != MPI_UNWEIGHTED) 704: branch 0 never executed 705: branch 1 never executed 706: #####: 353: MPIU_REALLOC_ORJUMP(dist_graph_ptr->out_weights, out_capacity*sizeof(int), mpi_errno); 815: 320: 393: return mpi_errno; 816: -: 394: 817: #####: 396: if (dist_graph_ptr && dist_graph_ptr->in) 820: branch 2 never executed 821: branch 3 never executed 822: #####: 397: MPIU_Free(dist_graph_ptr->in); 823: call 0 never executed 824: #####: 398: if (dist_graph_ptr && dist_graph_ptr->in_weights) 827: branch 2 never executed 828: branch 3 never executed 829: #####: 399: MPIU_Free(dist_graph_ptr->in_weights); 830: call 0 never executed 831: #####: 400: if (dist_graph_ptr && dist_graph_ptr->out) 834: branch 2 never executed 835: branch 3 never executed 836: #####: 401: MPIU_Free(dist_graph_ptr->out); 837: call 0 never executed 838: #####: 402: if (dist_graph_ptr && dist_graph_ptr->out_weights) 841: branch 2 never executed 842: branch 3 never executed 843: #####: 403: MPIU_Free(dist_graph_ptr->out_weights); 844: call 0 never executed 845: #####: 404: MPIU_CHKPMEM_REAP(); 17 line(s) not covered by tests in src/mpi/topo/dist_gr_create.c.gcov All code covered by tests in src/mpi/topo/dist_gr_neighb_count.c.gcov Uncovered lines in src/mpi/topo/topoutil.c.gcov 58: branch 0 taken 100% (fallthrough) 59: branch 1 taken 0% 60: #####: 40: return 0; 373: -: 193: /* Return mpi_errno in case one of the copy array functions failed */ 374: 360: 194: return mpi_errno; 375: #####: 196: MPIU_CHKPMEM_REAP(); 2 line(s) not covered by tests in src/mpi/topo/topoutil.c.gcov All code covered by tests in src/mpi/topo/graphdimsget.c.gcov All code covered by tests in src/mpi/topo/topo_test.c.gcov Uncovered lines in src/mpi/topo/mpid_nem_memdefs.h.gcov 55: -: 50:static inline void nt_memcpy (volatile void *dst, volatile const void *src, size_t len) 56: function nt_memcpy called 0 returned 0% blocks executed 0% 57: #####: 51:{ 62: -: 56: 63: -: 57: /* copy in 8K chunks */ 64: #####: 58: n = len & (-8*1024); 65: #####: 59: if (n) 68: -: 60: { 69: -: 61: 70: #####: 62: __asm__ __volatile__ ("mov %4, %%ecx\n" 128: -: 119: : "eax", "edx", "ecx", "memory" ); 129: -: 120: 130: #####: 121: src = (char *)src + n; 131: #####: 122: dst = (char *)dst + n; 133: -: 124: 134: -: 125: /* copy in 128byte chunks */ 135: #####: 126: n = len & (8*1024 - 1) & -128; 136: #####: 127: if (n) 139: -: 128: { 140: -: 129: 141: #####: 130: __asm__ __volatile__ ("mov %4, %%ecx\n" 196: -: 184: : "0" (dst), "1" (src), "g" (n >> 3) 197: -: 185: : "eax", "edx", "ecx", "memory" ); 198: #####: 186: src = (char *)src + n; 199: #####: 187: dst = (char *)dst + n; 201: -: 189: 202: -: 190: /* copy leftover */ 203: #####: 191: n = len & (128 - 1); 204: #####: 192: if (n) 205: branch 0 never executed 206: branch 1 never executed 207: #####: 193: asm_memcpy (dst, src, n); 14 line(s) not covered by tests in src/mpi/topo/mpid_nem_memdefs.h.gcov All code covered by tests in src/mpi/topo/dist_gr_neighb.c.gcov All code covered by tests in src/util/info/infoutil.c.gcov All code covered by tests in src/util/info/info_create.c.gcov All code covered by tests in src/util/info/info_delete.c.gcov All code covered by tests in src/util/info/info_dup.c.gcov All code covered by tests in src/util/info/info_free.c.gcov All code covered by tests in src/util/info/info_get.c.gcov All code covered by tests in src/util/info/info_getn.c.gcov All code covered by tests in src/util/info/info_getnth.c.gcov All code covered by tests in src/util/info/info_getvallen.c.gcov All code covered by tests in src/util/info/info_set.c.gcov Uncovered lines in src/mpid/common/datatype/mpid_type_debug.c.gcov 508: branch 0 taken 100% (fallthrough) 509: branch 1 taken 0% 510: #####: 368: if (type == MPI_DOUBLE_PRECISION) return t_doubleprecision; 511: branch 0 never executed 512: branch 1 never executed 513: #####: 369: if (type == MPI_INTEGER) return t_integer; 514: branch 0 never executed 515: branch 1 never executed 516: #####: 370: if (type == MPI_2INTEGER) return t_2integer; 517: branch 0 never executed 518: branch 1 never executed 519: #####: 371: if (type == MPI_2COMPLEX) return t_2complex; 520: branch 0 never executed 521: branch 1 never executed 522: #####: 372: if (type == MPI_2DOUBLE_COMPLEX) return t_2doublecomplex; 523: branch 0 never executed 524: branch 1 never executed 525: #####: 373: if (type == MPI_2REAL) return t_2real; 526: branch 0 never executed 527: branch 1 never executed 528: #####: 374: if (type == MPI_2DOUBLE_PRECISION) return t_2doubleprecision; 529: branch 0 never executed 530: branch 1 never executed 531: #####: 375: if (type == MPI_CHARACTER) return t_character; 533: branch 1 never executed 534: -: 376: 535: #####: 377: return NULL; 588: branch 0 taken 100% (fallthrough) 589: branch 1 taken 0% 590: #####: 415: if (combiner == MPI_COMBINER_HVECTOR_INTEGER) return c_hvector_integer; 591: branch 0 never executed 592: branch 1 never executed 593: #####: 416: if (combiner == MPI_COMBINER_HINDEXED_INTEGER) return c_hindexed_integer; 594: branch 0 never executed 595: branch 1 never executed 596: #####: 417: if (combiner == MPI_COMBINER_INDEXED_BLOCK) return c_indexed_block; 597: branch 0 never executed 598: branch 1 never executed 599: #####: 418: if (combiner == MPI_COMBINER_STRUCT_INTEGER) return c_struct_integer; 600: branch 0 never executed 601: branch 1 never executed 602: #####: 419: if (combiner == MPI_COMBINER_SUBARRAY) return c_subarray; 603: branch 0 never executed 604: branch 1 never executed 605: #####: 420: if (combiner == MPI_COMBINER_DARRAY) return c_darray; 606: branch 0 never executed 607: branch 1 never executed 608: #####: 421: if (combiner == MPI_COMBINER_F90_REAL) return c_f90_real; 609: branch 0 never executed 610: branch 1 never executed 611: #####: 422: if (combiner == MPI_COMBINER_F90_COMPLEX) return c_f90_complex; 612: branch 0 never executed 613: branch 1 never executed 614: #####: 423: if (combiner == MPI_COMBINER_F90_INTEGER) return c_f90_integer; 615: branch 0 never executed 616: branch 1 never executed 617: #####: 424: if (combiner == MPI_COMBINER_RESIZED) return c_resized; 619: branch 1 never executed 620: -: 425: 621: #####: 426: return NULL; 20 line(s) not covered by tests in src/mpid/common/datatype/mpid_type_debug.c.gcov Uncovered lines in src/mpid/common/datatype/mpid_segment.c.gcov 190: -: 177: DLOOP_Offset *lengthp) 191: function MPID_Segment_flatten called 0 returned 0% blocks executed 0% 192: #####: 178:{ 196: -: 182:MPIDI_FUNC_ENTER(MPID_STATE_MPID_SEGMENT_FLATTEN); 197: -: 183: 198: #####: 184:packvec_params.u.flatten.offp = (int64_t *) offp; 199: #####: 185:packvec_params.u.flatten.sizep = sizep; 200: #####: 186:packvec_params.u.flatten.index = 0; 201: #####: 187:packvec_params.u.flatten.length = *lengthp; 202: -: 188: 203: #####: 189:MPIU_Assert(*lengthp > 0); 207: call 3 never executed 208: -: 190: 209: #####: 191:MPID_Segment_manipulate(segp, 219: -: 200: 220: -: 201:/* last value already handled by MPID_Segment_manipulate */ 221: #####: 202:*lengthp = packvec_params.u.flatten.index; 283: -: 257: * function that we are done (and that we didn't process any blocks). 284: -: 258: */ 285: #####: 259: *blocks_p = 0; 286: #####: 259: *blocks_p = 0; 287: #####: 261: return 1; 414: -: 369: { 415: -: 370: /* add this size to the last vector rather than using up new one */ 416: #####: 371: paramp->u.pack_vector.vectorp[last_idx].DLOOP_VECTOR_LEN += size; 459: -: 410: void *v_paramp) 460: function MPID_Segment_contig_flatten called 0 returned 0% blocks executed 0% 461: #####: 411:{ 462: -: 412: int index, el_size; 463: -: 413: DLOOP_Offset size; 464: #####: 414: struct MPID_Segment_piece_params *paramp = v_paramp; 467: -: 417: MPIDI_FUNC_ENTER(MPID_STATE_MPID_SEGMENT_CONTIG_FLATTEN); 468: -: 418: 469: #####: 419: el_size = MPID_Datatype_get_basic_size(el_type); 470: #####: 420: size = *blocks_p * (DLOOP_Offset) el_size; 471: #####: 421: index = paramp->u.flatten.index; 480: -: 430:#endif 481: -: 431: 482: #####: 432: if (index > 0 && ((DLOOP_Offset) MPI_VOID_PTR_CAST_TO_MPI_AINT bufp + rel_off) == 489: -: 435: { 490: -: 436: /* add this size to the last vector rather than using up another one */ 491: #####: 437: paramp->u.flatten.sizep[index - 1] += size; 492: -: 438: } 493: -: 439: else { 494: #####: 440: paramp->u.flatten.offp[index] = ((int64_t) MPI_VOID_PTR_CAST_TO_MPI_AINT bufp) + (int64_t) rel_off; 495: #####: 441: paramp->u.flatten.sizep[index] = size; 496: -: 442: 497: #####: 443: paramp->u.flatten.index++; 499: -: 445: * return 1 to stop processing 500: -: 446: */ 501: #####: 447: if (paramp->u.flatten.index == paramp->u.flatten.length) 504: branch 1 never executed 505: -: 448: { 506: #####: 450: return 1; 508: -: 451: } 509: -: 452: } 510: #####: 454: return 0; 534: -: 478: void *v_paramp) 535: function MPID_Segment_vector_flatten called 0 returned 0% blocks executed 0% 536: #####: 479:{ 537: -: 480: int i; 538: -: 481: DLOOP_Offset size, blocks_left, basic_size; 539: #####: 482: struct MPID_Segment_piece_params *paramp = v_paramp; 542: -: 485: MPIDI_FUNC_ENTER(MPID_STATE_MPID_SEGMENT_VECTOR_FLATTEN); 543: -: 486: 544: #####: 487: basic_size = (DLOOP_Offset) MPID_Datatype_get_basic_size(el_type); 545: #####: 488: blocks_left = *blocks_p; 546: -: 489: 547: #####: 490: for (i=0; i < count && blocks_left > 0; i++) { 548: branch 0 never executed 549: branch 1 never executed 550: #####: 491: int index = paramp->u.flatten.index; 551: -: 492: 552: #####: 493: if (blocks_left > (DLOOP_Offset) blksz) { 553: branch 0 never executed 554: branch 1 never executed 555: #####: 494: size = ((DLOOP_Offset) blksz) * basic_size; 556: #####: 495: blocks_left -= (DLOOP_Offset) blksz; 558: -: 497: else { 559: -: 498: /* last pass */ 560: #####: 499: size = blocks_left * basic_size; 561: #####: 500: blocks_left = 0; 562: -: 501: } 563: -: 502: 564: #####: 503: if (index > 0 && ((DLOOP_Offset) MPI_VOID_PTR_CAST_TO_MPI_AINT bufp + rel_off) == 570: -: 505: { 571: -: 506: /* add this size to the last region rather than using up another one */ 572: #####: 507: paramp->u.flatten.sizep[index - 1] += size; 573: -: 508: } 574: #####: 509: else if (index < paramp->u.flatten.length) { 576: branch 1 never executed 577: -: 510: /* take up another region */ 578: #####: 511: paramp->u.flatten.offp[index] = (DLOOP_Offset) MPI_VOID_PTR_CAST_TO_MPI_AINT bufp + rel_off; 579: #####: 512: paramp->u.flatten.sizep[index] = size; 580: #####: 513: paramp->u.flatten.index++; 582: -: 515: else { 583: -: 516: /* we tried to add to the end of the last region and failed; add blocks back in */ 584: #####: 517: *blocks_p = *blocks_p - blocks_left + (size / basic_size); 585: #####: 517: *blocks_p = *blocks_p - blocks_left + (size / basic_size); 586: #####: 519: return 1; 587: -: 520: } 588: #####: 521: rel_off += stride; 597: -: 522: 598: -: 523: } 599: #####: 528: return 0; 45 line(s) not covered by tests in src/mpid/common/datatype/mpid_segment.c.gcov Uncovered lines in src/mpid/common/datatype/mpid_ext32_segment.c.gcov 99: branch 1 taken 100% 100: -: 79: { 101: #####: 80: while(src_ptr != src_end) 103: branch 1 never executed 104: -: 81: { 105: #####: 82: BASIC_convert16((*(TWO_BYTE_BASIC_TYPE *)src_ptr), 106: -: 83: (*(TWO_BYTE_BASIC_TYPE *)dest_ptr)); 107: -: 84: 108: #####: 85: src_ptr += src_el_size; 109: #####: 86: dest_ptr += dest_el_size; 125: -: 98: } 126: -: 99: } 127: #####: 100: else if (src_el_size == 8) 129: branch 1 never executed 130: -: 101: { 131: #####: 102: while(src_ptr != src_end) 133: branch 1 never executed 134: -: 103: { 135: #####: 104: BASIC_convert64(src_ptr, dest_ptr); 136: call 0 never executed 137: -: 105: 138: #####: 106: src_ptr += src_el_size; 139: #####: 107: dest_ptr += dest_el_size; 172: branch 1 taken 100% 173: -: 132: { 174: #####: 133: while(src_ptr != src_end) 176: branch 1 never executed 177: -: 134: { 178: #####: 135: FLOAT_convert((*(FOUR_BYTE_FLOAT_TYPE *)src_ptr), 187: -: 136: (*(FOUR_BYTE_FLOAT_TYPE *)dest_ptr)); 188: -: 137: 189: #####: 138: src_ptr += src_el_size; 190: #####: 139: dest_ptr += dest_el_size; 13 line(s) not covered by tests in src/mpid/common/datatype/mpid_ext32_segment.c.gcov All code covered by tests in src/mpid/common/datatype/mpid_ext32_segment.h.gcov All code covered by tests in src/mpid/common/datatype/mpid_nem_memdefs.h.gcov Uncovered lines in src/mpid/common/datatype/mpid_ext32_datatype.c.gcov 105: -: 91: } 106: -: 92: else { 107: #####: 93: MPID_Dataloop *dlp = NULL; 108: -: 94: 109: #####: 95: MPID_Datatype_get_loopptr_macro(type, dlp, MPID_DATALOOP_HETEROGENEOUS); 113: call 3 never executed 114: -: 96: 115: #####: 97: return MPID_Dataloop_stream_size(dlp, 3 line(s) not covered by tests in src/mpid/common/datatype/mpid_ext32_datatype.c.gcov All code covered by tests in src/mpid/common/datatype/mpid_type_dup.c.gcov Uncovered lines in src/mpid/common/datatype/mpir_type_get_contig_blocks.c.gcov 32: -: 27: int *nr_blocks_p) 33: function MPIR_Type_get_contig_blocks called 0 returned 0% blocks executed 0% 34: #####: 28:{ 35: -: 29: MPID_Datatype *datatype_ptr; 36: -: 30: 37: #####: 31: if (HANDLE_GET_KIND(type) == HANDLE_KIND_BUILTIN) { 38: branch 0 never executed 39: branch 1 never executed 40: #####: 32: *nr_blocks_p = 1; 41: #####: 33: return 0; 42: -: 34: } 43: -: 35: 44: #####: 36: MPID_Datatype_get_ptr(type, datatype_ptr); 48: branch 3 never executed 49: call 4 never executed 50: #####: 37: MPIU_Assert(datatype_ptr->is_committed); 54: call 3 never executed 55: -: 38: 56: #####: 39: *nr_blocks_p = datatype_ptr->max_contig_blocks; 57: #####: 40: return 0; 8 line(s) not covered by tests in src/mpid/common/datatype/mpir_type_get_contig_blocks.c.gcov Uncovered lines in src/mpid/common/datatype/mpir_type_flatten.c.gcov 34: -: 29: MPI_Aint *array_len_p) 35: function MPIR_Type_flatten called 0 returned 0% blocks executed 0% 36: #####: 30:{ 39: -: 33: MPID_Segment *segp; 40: -: 34: 41: #####: 35: if (HANDLE_GET_KIND(type) == HANDLE_KIND_BUILTIN) { 42: branch 0 never executed 43: branch 1 never executed 44: #####: 36: off_array[0] = 0; 45: #####: 37: MPID_Datatype_get_size_macro(type, size_array[0]); 49: branch 3 never executed 50: call 4 never executed 51: #####: 38: *array_len_p = 1; 52: #####: 39: return 0; 53: -: 40: } 54: -: 41: 55: #####: 42: MPID_Datatype_get_ptr(type, datatype_ptr); 59: branch 3 never executed 60: call 4 never executed 61: #####: 43: MPIU_Assert(datatype_ptr->is_committed); 64: call 2 never executed 65: call 3 never executed 66: #####: 44: MPIU_Assert(*array_len_p >= datatype_ptr->max_contig_blocks); 70: call 3 never executed 71: -: 45: 72: #####: 46: segp = MPID_Segment_alloc(); 73: call 0 never executed 74: #####: 47: MPID_Segment_init(0, 1, type, segp, 0); /* first 0 is bufptr, 78: -: 50: */ 79: -: 51: 80: #####: 52: first = 0; 81: #####: 53: last = SEGMENT_IGNORE_LAST; 82: -: 54: 83: #####: 55: MPID_Segment_flatten(segp, 89: -: 60: array_len_p); 90: -: 61: 91: #####: 62: MPID_Segment_free(segp); 92: call 0 never executed 93: -: 63: 94: #####: 64: return 0; 16 line(s) not covered by tests in src/mpid/common/datatype/mpir_type_flatten.c.gcov All code covered by tests in src/mpid/common/datatype/mpid_type_commit.c.gcov All code covered by tests in src/mpid/common/datatype/mpid_type_zerolen.c.gcov All code covered by tests in src/mpid/common/datatype/mpid_type_vector.c.gcov All code covered by tests in src/mpid/common/datatype/mpid_type_contiguous.c.gcov All code covered by tests in src/mpid/common/datatype/mpid_type_create_resized.c.gcov All code covered by tests in src/mpid/common/datatype/mpid_type_indexed.c.gcov All code covered by tests in src/mpid/common/datatype/mpid_type_get_envelope.c.gcov Uncovered lines in src/mpid/common/datatype/mpid_datatype_contents.c.gcov 59: branch 0 taken 0% (fallthrough) 60: branch 1 taken 100% 61: #####: 51: struct_sz += align_sz - epsilon; 64: branch 0 taken 0% (fallthrough) 65: branch 1 taken 100% 66: #####: 54: types_sz += align_sz - epsilon; 69: branch 0 taken 0% (fallthrough) 70: branch 1 taken 100% 71: #####: 57: ints_sz += align_sz - epsilon; 242: branch 0 taken 0% (fallthrough) 243: branch 1 taken 100% 244: #####: 120: struct_sz += align_sz - epsilon; 310: branch 0 taken 0% (fallthrough) 311: branch 1 taken 100% 312: #####: 159: struct_sz += align_sz - epsilon; 315: branch 0 taken 0% (fallthrough) 316: branch 1 taken 100% 317: #####: 162: types_sz += align_sz - epsilon; 382: branch 0 taken 0% (fallthrough) 383: branch 1 taken 100% 384: #####: 196: struct_sz += align_sz - epsilon; 387: branch 0 taken 0% (fallthrough) 388: branch 1 taken 100% 389: #####: 199: types_sz += align_sz - epsilon; 392: branch 0 taken 0% (fallthrough) 393: branch 1 taken 100% 394: #####: 202: ints_sz += align_sz - epsilon; 455: branch 0 taken 0% (fallthrough) 456: branch 1 taken 100% 457: #####: 232: struct_sz += align_sz - epsilon; 10 line(s) not covered by tests in src/mpid/common/datatype/mpid_datatype_contents.c.gcov All code covered by tests in src/mpid/common/datatype/mpid_type_create_pairtype.c.gcov All code covered by tests in src/mpid/common/datatype/mpid_type_blockindexed.c.gcov Uncovered lines in src/mpid/common/datatype/mpid_type_struct.c.gcov 247: branch 1 taken 100% 248: -: 207: { 249: #####: 208: MPIU_Handle_obj_free(&MPID_Datatype_mem, new_dtp); 250: call 0 never executed 251: #####: 209: return MPID_Type_zerolen(newtype); 2 line(s) not covered by tests in src/mpid/common/datatype/mpid_type_struct.c.gcov All code covered by tests in src/mpid/common/datatype/mpid_datatype_free.c.gcov All code covered by tests in src/mpid/common/datatype/mpid_type_get_contents.c.gcov Uncovered lines in src/mpid/common/datatype/mpid_contents_support.c.gcov 68: branch 0 taken 0% (fallthrough) 69: branch 1 taken 100% 70: #####: 42: struct_sz += align_sz - epsilon; 73: branch 0 taken 0% (fallthrough) 74: branch 1 taken 100% 75: #####: 45: types_sz += align_sz - epsilon; 78: branch 0 taken 0% (fallthrough) 79: branch 1 taken 100% 80: #####: 48: ints_sz += align_sz - epsilon; 3 line(s) not covered by tests in src/mpid/common/datatype/mpid_contents_support.c.gcov Uncovered lines in src/mpid/common/datatype/dataloop/dataloop.c.gcov 272: -: 208: { 273: -: 209: MPID_Ensure_Aint_fits_in_pointer(MPI_VOID_PTR_CAST_TO_MPI_AINT (char *) dataloop->loop_params.i_t.dataloop + ptrdiff); 274: #####: 210: dataloop->loop_params.i_t.dataloop = 280: branch 0 taken 0% (fallthrough) 281: branch 1 taken 100% 282: #####: 216: PREPEND_PREFIX(Dataloop_update)(dataloop->loop_params.i_t.dataloop, ptrdiff); 443: -: 343: case DLOOP_KIND_STRUCT: 444: -: 344: /* need space for dataloop pointers and extents */ 445: #####: 345: ptr_sz = count * sizeof(DLOOP_Dataloop *); 446: #####: 346: extent_sz = count * sizeof(DLOOP_Offset); 455: -: 355: break; 456: -: 356: default: 457: #####: 357: DLOOP_Assert(0); 495: branch 0 taken 0% (fallthrough) 496: branch 1 taken 100% 497: #####: 382: *new_loop_p = NULL; 498: #####: 383: return; 526: -: 405: * - extents 527: -: 406: */ 528: #####: 407: new_loop->loop_params.s_t.dataloop_array = 529: -: 408: (DLOOP_Dataloop **) (((char *) new_loop) + loop_sz); 530: #####: 409: new_loop->loop_params.s_t.blocksize_array = 531: -: 410: (DLOOP_Count *) (((char *) new_loop) + loop_sz + ptr_sz); 532: #####: 411: new_loop->loop_params.s_t.offset_array = 533: -: 412: (DLOOP_Offset *) (((char *) new_loop) + loop_sz + 534: -: 413: ptr_sz + blk_sz); 535: #####: 414: new_loop->loop_params.s_t.el_extent_array = 536: -: 415: (DLOOP_Offset *) (((char *) new_loop) + loop_sz + 537: -: 416: ptr_sz + blk_sz + off_sz); 538: #####: 417: break; 596: -: 467: break; 597: -: 468: default: 598: #####: 469: DLOOP_Assert(0); 713: branch 0 taken 0% (fallthrough) 714: branch 1 taken 100% 715: #####: 563: *new_loop_p = NULL; 716: #####: 564: return; 776: branch 0 taken 0% (fallthrough) 777: branch 1 taken 100% 778: #####: 614: *new_loop_p = NULL; 779: #####: 615: return; 799: -: 634: DLOOP_Offset (*sizefn)(DLOOP_Type el_type)) 800: function MPID_Dataloop_stream_size called 0 returned 0% blocks executed 0% 801: #####: 635:{ 802: #####: 636: DLOOP_Offset tmp_sz, tmp_ct = 1; 804: -: 638: for (;;) 805: -: 639: { 806: #####: 640: if ((dl_p->kind & DLOOP_KIND_MASK) == DLOOP_KIND_STRUCT) 810: -: 642: int i; 811: -: 643: 812: #####: 644: tmp_sz = 0; 813: #####: 645: for (i = 0; i < dl_p->loop_params.s_t.count; i++) 815: branch 1 never executed 816: -: 646: { 817: #####: 647: tmp_sz += (DLOOP_Offset)(dl_p->loop_params.s_t.blocksize_array[i]) * 819: -: 648: PREPEND_PREFIX(Dataloop_stream_size)(dl_p->loop_params.s_t.dataloop_array[i], sizefn); 820: -: 649: } 821: #####: 650: return tmp_sz * tmp_ct; 822: -: 651: } 823: -: 652: 824: #####: 653: switch (dl_p->kind & DLOOP_KIND_MASK) { 829: branch 4 never executed 830: -: 654: case DLOOP_KIND_CONTIG: 831: #####: 655: tmp_ct *= (DLOOP_Offset)(dl_p->loop_params.c_t.count); 834: -: 658: (int) dl_p->loop_params.c_t.count, (MPI_Aint) tmp_ct); 835: -: 659:#endif 836: #####: 660: break; 837: -: 661: case DLOOP_KIND_VECTOR: 838: #####: 662: tmp_ct *= (DLOOP_Offset)(dl_p->loop_params.v_t.count) * 844: -: 668: (MPI_Aint) tmp_ct); 845: -: 669:#endif 846: #####: 670: break; 847: -: 671: case DLOOP_KIND_BLOCKINDEXED: 848: #####: 672: tmp_ct *= (DLOOP_Offset)(dl_p->loop_params.bi_t.count) * 854: -: 678: (MPI_Aint) tmp_ct); 855: -: 679:#endif 856: #####: 680: break; 857: -: 681: case DLOOP_KIND_INDEXED: 858: #####: 682: tmp_ct *= (DLOOP_Offset)(dl_p->loop_params.i_t.total_blocks); 862: -: 686: (MPI_Aint) tmp_ct); 863: -: 687:#endif 864: #####: 688: break; 872: -: 694: } 873: -: 695: 874: #####: 696: if (dl_p->kind & DLOOP_FINAL_MASK) break; 876: branch 1 never executed 877: -: 697: else { 878: #####: 698: DLOOP_Assert(dl_p->loop_params.cm_t.dataloop != NULL); 881: call 2 never executed 882: call 3 never executed 883: #####: 699: dl_p = dl_p->loop_params.cm_t.dataloop; 886: -: 702: 887: -: 703: /* call fn for size using bottom type, or use size if fnptr is NULL */ 888: #####: 704: tmp_sz = ((sizefn) ? sizefn(dl_p->el_type) : dl_p->el_size); 891: call 2 never executed 892: -: 705: 893: #####: 706: return tmp_sz * tmp_ct; 38 line(s) not covered by tests in src/mpid/common/datatype/dataloop/dataloop.c.gcov Uncovered lines in src/mpid/common/datatype/dataloop/segment.c.gcov 115: branch 1 taken 100% 116: -: 88: /* only use the builtin */ 117: #####: 89: sblp->kind = DLOOP_KIND_CONTIG | DLOOP_FINAL_MASK; 118: #####: 90: sblp->loop_params.c_t.count = 0; 119: #####: 91: sblp->loop_params.c_t.dataloop = 0; 120: #####: 92: sblp->el_size = 0; 121: #####: 93: sblp->el_extent = 0; 122: -: 94: 123: #####: 95: dlp = sblp; 124: #####: 96: depth = 1; 285: 157856: 190: break; 286: -: 191: case DLOOP_KIND_STRUCT: 287: #####: 192: dlp = dlp->loop_params.s_t.dataloop_array[0]; 288: #####: 193: break; 473: branch 1 taken 100% 474: -: 369: /* nothing to do */ 475: #####: 370: DLOOP_dbg_printf("dloop_segment_manipulate: warning: first == last (" MPI_AINT_FMT_DEC_SPEC ")\n", first); 476: call 0 never executed 477: #####: 371: return; 499: branch 0 taken 0% (fallthrough) 500: branch 1 taken 100% 501: #####: 387: DLOOP_Offset tmp_last = first; 504: -: 390: * stream offset 505: -: 391: */ 506: #####: 392: PREPEND_PREFIX(Segment_manipulate)(segp, 685: branch 5 taken 0% 686: -: 519: case PF_NULL: 687: #####: 520: piecefn_indicated_exit = 0; 689: -: 522: DLOOP_dbg_printf("\tNULL piecefn for this piece\n"); 690: -: 523:#endif 691: #####: 524: break; 961: 34: 711: break; 962: -: 712: case DLOOP_KIND_STRUCT: 963: #####: 713: cur_elmp->orig_block = 965: branch 1 never executed 966: -: 714: DLOOP_STACKELM_STRUCT_BLOCKSIZE(cur_elmp, cur_elmp->curcount ? cur_elmp->orig_count - cur_elmp->curcount : 0); 967: #####: 715: break; 1000: branch 0 taken 0% (fallthrough) 1001: branch 1 taken 100% 1002: #####: 742: DLOOP_Dataloop *load_dlp = NULL; 1003: #####: 743: switch (cur_elmp->loop_p->kind & DLOOP_KIND_MASK) { 1009: -: 746: case DLOOP_KIND_BLOCKINDEXED: 1010: -: 747: case DLOOP_KIND_INDEXED: 1011: #####: 748: load_dlp = cur_elmp->loop_p->loop_params.cm_t.dataloop; 1012: #####: 749: break; 1013: -: 750: case DLOOP_KIND_STRUCT: 1014: #####: 751: load_dlp = DLOOP_STACKELM_STRUCT_DATALOOP(cur_elmp, 1015: -: 752: count_index); 1016: #####: 753: break; 1031: -: 766:#endif 1032: -: 767: 1033: #####: 768: DLOOP_Stackelm_load(next_elmp, 1075: 171: 803: break; 1076: -: 804: case DLOOP_KIND_STRUCT: 1077: #####: 805: next_elmp->orig_offset = cur_elmp->orig_offset + 1078: -: 806: (DLOOP_Offset) block_index * DLOOP_STACKELM_STRUCT_EL_EXTENT(cur_elmp, count_index) + 1079: -: 807: DLOOP_STACKELM_STRUCT_OFFSET(cur_elmp, count_index); 1080: #####: 808: break; 1120: 12355188: 841: break; 1121: -: 842: case DLOOP_KIND_STRUCT: 1122: #####: 843: next_elmp->curcount = next_elmp->orig_count; 1123: #####: 844: next_elmp->curblock = 1124: -: 845: DLOOP_STACKELM_STRUCT_BLOCKSIZE(next_elmp, 0); 1125: #####: 846: next_elmp->curoffset = next_elmp->orig_offset + 1126: -: 847: DLOOP_STACKELM_STRUCT_OFFSET(next_elmp, 0); 1127: #####: 848: break; 1190: -: 902: break; 1191: -: 903: case DLOOP_KIND_STRUCT: 1192: #####: 904: return dlp->loop_params.s_t.blocksize_array[elmp->orig_count - elmp->curcount]; 1200: -: 906: default: 1201: -: 911: } 1202: #####: 912: return -1; 1235: -: 939: break; 1236: -: 940: case DLOOP_KIND_STRUCT: 1237: #####: 941: return dlp->loop_params.s_t.offset_array[elmp->orig_count - elmp->curcount]; 1245: -: 943: default: 1246: -: 948: } 1247: #####: 949: return -1; 1274: branch 3 taken 100% 1275: -: 970: { 1276: #####: 971: elmp->may_require_reloading = 1; 35 line(s) not covered by tests in src/mpid/common/datatype/dataloop/segment.c.gcov Uncovered lines in src/mpid/common/datatype/dataloop/segment_ops.c.gcov 605: branch 0 taken 0% (fallthrough) 606: branch 1 taken 100% 607: #####: 124: DLOOP_Memcpy(cbufp, paramp->streambuf, ((DLOOP_Offset) blocks_left) * el_size); 639: -: 128: MPID_Ensure_Aint_fits_in_pointer((MPI_VOID_PTR_CAST_TO_MPI_AINT (paramp->streambuf)) + 640: -: 129: ((DLOOP_Offset) blocks_left) * el_size); 641: #####: 130: paramp->streambuf += ((DLOOP_Offset) blocks_left) * el_size; 1080: branch 0 taken 0% (fallthrough) 1081: branch 1 taken 100% 1082: #####: 169: DLOOP_Memcpy(paramp->streambuf, cbufp, (DLOOP_Offset) blocks_left * el_size); 1114: -: 173: MPID_Ensure_Aint_fits_in_pointer((MPI_VOID_PTR_CAST_TO_MPI_AINT (paramp->streambuf)) + 1115: -: 174: (DLOOP_Offset) blocks_left * el_size); 1116: #####: 175: paramp->streambuf += (DLOOP_Offset) blocks_left * el_size; 1282: branch 0 taken 0% (fallthrough) 1283: branch 1 taken 100% 1284: #####: 237: MPIDI_COPY_FROM_VEC(src, dest, 0, int16_t, blocklen, 1); 1436: -: 301: MPIR_ALIGN8_TEST(src, dest)) 1437: -: 302: { 1438: #####: 303: MPIDI_COPY_FROM_VEC(src, dest, 0, int64_t, cur_block_sz, 1); 1530: branch 0 taken 0% (fallthrough) 1531: branch 1 taken 100% 1532: #####: 311: MPIDI_COPY_FROM_VEC(src, dest, 0, int16_t, cur_block_sz, 1); 1719: -: 412: { 1720: -: 413: /* this region is adjacent to the last */ 1721: #####: 414: paramp->last_loc += size; 1785: -: 460: { 1786: -: 461: /* first block sits at end of last block */ 1787: #####: 462: new_blk_count--; 1807: -: 482: void *v_paramp) 1808: function DLOOP_Segment_blkidx_count_block called 0 returned 0% blocks executed 0% 1809: #####: 483:{ 1810: -: 484: DLOOP_Count i, new_blk_count; 1811: -: 485: DLOOP_Offset size, el_size, last_loc; 1812: #####: 486: struct PREPEND_PREFIX(contig_blocks_params) *paramp = v_paramp; 1813: -: 487: 1814: #####: 488: DLOOP_Assert(count > 0 && blksz > 0 && *blocks_p > 0); 1820: call 5 never executed 1821: -: 489: 1822: #####: 490: DLOOP_Handle_get_size_macro(el_type, el_size); 1826: branch 3 never executed 1827: call 4 never executed 1828: #####: 491: size = el_size * (DLOOP_Offset) blksz; 1829: #####: 492: new_blk_count = count; 1830: -: 493: 1831: #####: 494: if (paramp->count > 0 && ((rel_off + offsetarray[0]) == paramp->last_loc)) 1836: -: 495: { 1837: -: 496: /* first block sits at end of last block */ 1838: #####: 497: new_blk_count--; 1839: -: 498: } 1840: -: 499: 1841: #####: 500: last_loc = rel_off + offsetarray[0] + size; 1842: #####: 501: for (i=1; i < count; i++) { 1843: branch 0 never executed 1844: branch 1 never executed 1845: #####: 502: if (last_loc == rel_off + offsetarray[i]) new_blk_count--; 1847: branch 1 never executed 1848: -: 503: 1849: #####: 504: last_loc = rel_off + offsetarray[i] + size; 1850: -: 505: } 1851: -: 506: 1852: #####: 507: paramp->last_loc = last_loc; 1853: #####: 508: paramp->count += new_blk_count; 1854: #####: 509: return 0; 2009: -: 638: * sizeof a pointer is less than the sizeof an MPI_Aint. 2010: -: 639: */ 2011: #####: 640: last_end = (char*) MPI_AINT_CAST_TO_VOID_PTR 2028: -: 653: * function that we are done (and that we didn't process any blocks). 2029: -: 654: */ 2030: #####: 655: *blocks_p = 0; 2031: #####: 656: return 1; 2038: -: 659: { 2039: -: 660: /* add this size to the last vector rather than using up another one */ 2040: #####: 661: paramp->blklens[last_idx] += size; 2138: -: 743: * the end of the last one. 2139: -: 744: */ 2140: #####: 745: *blocks_p -= (blocks_left + (size / (int) el_size)); 2144: -: 749: *blocks_p); 2145: -: 750:#endif 2146: #####: 751: return 1; 2153: -: 754: { 2154: -: 755: /* add this size to the last vector rather than using up new one */ 2155: #####: 756: paramp->blklens[last_idx] += size; 2195: -: 792: void *v_paramp) 2196: function DLOOP_Segment_blkidx_mpi_flatten called 0 returned 0% blocks executed 0% 2197: #####: 793:{ 2198: -: 794: int i, size, blocks_left; 2199: -: 795: DLOOP_Offset el_size; 2200: #####: 796: struct PREPEND_PREFIX(mpi_flatten_params) *paramp = v_paramp; 2201: -: 797: 2202: #####: 798: DLOOP_Handle_get_size_macro(el_type, el_size); 2206: branch 3 never executed 2207: call 4 never executed 2208: #####: 799: blocks_left = *blocks_p; 2209: -: 800: 2210: #####: 801: for (i=0; i < count && blocks_left > 0; i++) { 2212: branch 1 never executed 2213: -: 802: int last_idx; 2214: #####: 803: char *last_end = NULL; 2215: -: 804: 2216: #####: 805: if (blocks_left > blksz) { 2217: branch 0 never executed 2218: branch 1 never executed 2219: #####: 806: size = blksz * (int) el_size; 2220: #####: 807: blocks_left -= blksz; 2222: -: 809: else { 2223: -: 810: /* last pass */ 2224: #####: 811: size = blocks_left * (int) el_size; 2225: #####: 812: blocks_left = 0; 2226: -: 813: } 2227: -: 814: 2228: #####: 815: last_idx = paramp->index - 1; 2229: #####: 816: if (last_idx >= 0) { 2237: -: 822: * than the sizeof an MPI_Aint. 2238: -: 823: */ 2239: #####: 824: last_end = (char*) MPI_AINT_CAST_TO_VOID_PTR 2246: -: 831: * sum fits in a pointer. Just let it truncate. 2247: -: 832: */ 2248: #####: 833: if ((last_idx == paramp->length-1) && 2256: -: 837: * the end of the last one. 2257: -: 838: */ 2258: #####: 839: *blocks_p -= ((DLOOP_Offset) blocks_left + 2259: -: 840: (((DLOOP_Offset) size) / el_size)); 2260: #####: 841: return 1; 2261: -: 842: } 2262: #####: 843: else if (last_idx >= 0 && (last_end == ((char *) bufp + rel_off))) 2267: -: 844: { 2268: -: 845: /* add this size to the last vector rather than using up new one */ 2269: #####: 846: paramp->blklens[last_idx] += size; 2274: -: 851: * Just let it sign extend. 2275: -: 852: */ 2276: #####: 853: paramp->disps[last_idx+1] = MPI_PTR_DISP_CAST_TO_MPI_AINT bufp + 2277: -: 854: rel_off + offsetarray[i]; 2278: #####: 855: paramp->blklens[last_idx+1] = size; 2279: #####: 856: paramp->index++; 2284: -: 861: * blocks_p 2285: -: 862: */ 2286: #####: 863: DLOOP_Assert(blocks_left == 0); 2289: call 2 never executed 2290: call 3 never executed 2291: #####: 864: return 0; 2362: -: 919: * the end of the last one. 2363: -: 920: */ 2364: #####: 921: *blocks_p -= (blocks_left + (size / (int) el_size)); 2365: #####: 922: return 1; 57 line(s) not covered by tests in src/mpid/common/datatype/dataloop/segment_ops.c.gcov Uncovered lines in src/mpid/common/datatype/dataloop/dataloop_create_contig.c.gcov 142: branch 1 taken 100% 143: -: 88: { 144: #####: 89: count *= basic_sz; 145: #####: 90: new_dlp->el_size = 1; 146: #####: 91: new_dlp->el_extent = 1; 147: #####: 92: new_dlp->el_type = MPI_BYTE; 4 line(s) not covered by tests in src/mpid/common/datatype/dataloop/dataloop_create_contig.c.gcov Uncovered lines in src/mpid/common/datatype/dataloop/dataloop_create_vector.c.gcov 60: -: 52: { 61: -: 53: 62: #####: 54: err = PREPEND_PREFIX(Dataloop_create_contiguous)(0, 67: -: 58: dldepth_p, 68: -: 59: flag); 69: #####: 60: return err; 152: -: 110: { 153: -: 111: 154: #####: 112: blocklength *= basic_sz; 155: #####: 113: new_dlp->el_size = 1; 156: #####: 114: new_dlp->el_extent = 1; 157: #####: 115: new_dlp->el_type = MPI_BYTE; 158: -: 116: 159: #####: 117: if(!strideinbytes) 163: -: 119: that we're using bytes, rather than oldtype, we 164: -: 120: need to update stride. */ 165: #####: 121: stride *= basic_sz; 8 line(s) not covered by tests in src/mpid/common/datatype/dataloop/dataloop_create_vector.c.gcov Uncovered lines in src/mpid/common/datatype/dataloop/dataloop_create_indexed.c.gcov 69: branch 1 taken 100% 70: -: 62: { 71: #####: 63: err = PREPEND_PREFIX(Dataloop_create_contiguous)(0, 76: -: 67: dldepth_p, 77: -: 68: flag); 78: #####: 69: return err; 264: -: 205: { 265: -: 206: /* blocklengths are modified below */ 266: #####: 207: new_dlp->el_size = 1; 267: #####: 208: new_dlp->el_extent = 1; 268: #####: 209: new_dlp->el_type = MPI_BYTE; 355: -: 260: { 356: -: 261: DLOOP_Count *tmp_blklen_array = 357: #####: 262: new_dlp->loop_params.i_t.blocksize_array; 358: -: 263: 359: #####: 264: for (i=0; i < contig_count; i++) 362: -: 265: { 363: -: 266: /* increase block lengths so they are in bytes */ 364: #####: 267: tmp_blklen_array[i] *= old_extent; 365: -: 268: } 366: -: 269: 367: #####: 270: new_dlp->loop_params.i_t.total_blocks *= old_extent; 423: branch 1 taken 100% 424: -: 316: { 425: #####: 317: continue; 10 line(s) not covered by tests in src/mpid/common/datatype/dataloop/dataloop_create_indexed.c.gcov Uncovered lines in src/mpid/common/datatype/dataloop/dataloop_create_pairtype.c.gcov 89: 7470: 68: break; 90: -: 69: case MPI_2INT: 91: #####: 70: PAIRTYPE_CONTENTS(MPI_INT, int, MPI_INT, int); 1 line(s) not covered by tests in src/mpid/common/datatype/dataloop/dataloop_create_pairtype.c.gcov All code covered by tests in src/mpid/common/datatype/dataloop/subarray_support.c.gcov All code covered by tests in src/mpid/common/datatype/dataloop/mpid_nem_memdefs.h.gcov Uncovered lines in src/mpid/common/datatype/dataloop/dataloop_create.c.gcov 52: branch 0 taken 0% (fallthrough) 53: branch 1 taken 100% 54: #####: 45: DLOOP_Dataloop_create_named(type, dlp_p, dlsz_p, dldepth_p, flag); 55: call 0 never executed 56: #####: 46: return; 74: branch 1 taken 100% 75: -: 55: /* dataloop already created; just return it. */ 76: #####: 56: *dlp_p = old_dlp; 77: #####: 57: DLOOP_Handle_get_loopsize_macro(type, *dlsz_p, flag); 84: branch 6 never executed 85: branch 7 never executed 86: #####: 58: DLOOP_Handle_get_loopdepth_macro(type, *dldepth_p, flag); 290: branch 0 taken 0% (fallthrough) 291: branch 1 taken 100% 292: #####: 172: stride = (MPI_Aint) ints[2]; 331: branch 0 taken 0% (fallthrough) 332: branch 1 taken 100% 333: #####: 208: disps = (MPI_Aint *) DLOOP_Malloc(ints[0] * sizeof(MPI_Aint)); 334: call 0 never executed 335: -: 209: 336: #####: 210: for (i=0; i < ints[0]; i++) { 337: branch 0 never executed 338: branch 1 never executed 339: #####: 211: disps[i] = (MPI_Aint) ints[ints[0] + 1 + i]; 356: branch 0 taken 0% (fallthrough) 357: branch 1 taken 100% 358: #####: 227: DLOOP_Free(disps); 430: branch 0 taken 0% (fallthrough) 431: branch 1 taken 100% 432: #####: 258: disps = (MPI_Aint *) DLOOP_Malloc(ints[0] * sizeof(MPI_Aint)); 433: call 0 never executed 434: -: 259: 435: #####: 260: for (i=0; i < ints[0]; i++) { 436: branch 0 never executed 437: branch 1 never executed 438: #####: 261: disps[i] = (MPI_Aint) ints[ints[0] + 1 + i]; 454: branch 0 taken 0% (fallthrough) 455: branch 1 taken 100% 456: #####: 276: DLOOP_Free(disps); 508: -: 321: /* TODO: WHAT DO I DO HERE? */ 509: -: 322: default: 510: #####: 323: DLOOP_Assert(0); 541: -: 351: int flag) 542: function DLOOP_Dataloop_create_named called 0 returned 0% blocks executed 0% 543: #####: 352:{ 553: -: 362: * case. 554: -: 363: */ 555: #####: 364: if (type == MPI_FLOAT_INT || type == MPI_DOUBLE_INT || 561: -: 366: type == MPI_LONG_DOUBLE_INT) 562: -: 367: { 563: #####: 368: DLOOP_Handle_get_loopptr_macro(type, dlp, flag); 570: branch 6 never executed 571: branch 7 never executed 572: #####: 369: if (dlp != NULL) { 574: branch 1 never executed 575: -: 370: /* dataloop already created; just return it. */ 576: #####: 371: *dlp_p = dlp; 577: #####: 372: DLOOP_Handle_get_loopsize_macro(type, *dlsz_p, flag); 584: branch 6 never executed 585: branch 7 never executed 586: #####: 373: DLOOP_Handle_get_loopdepth_macro(type, *dldepth_p, flag); 595: -: 374: } 596: -: 375: else { 597: #####: 376: PREPEND_PREFIX(Dataloop_create_pairtype)(type, 606: -: 384: /* no other combiners need dataloops; exit. */ 607: -: 385: else { 608: #####: 386: *dlp_p = NULL; 609: #####: 387: *dlsz_p = 0; 610: #####: 388: *dldepth_p = 0; 611: #####: 389: return; 27 line(s) not covered by tests in src/mpid/common/datatype/dataloop/dataloop_create.c.gcov Uncovered lines in src/mpid/common/datatype/dataloop/dataloop_create_blockindexed.c.gcov 63: branch 1 taken 100% 64: -: 56: { 65: #####: 57: err = PREPEND_PREFIX(Dataloop_create_contiguous)(0, 70: -: 61: dldepth_p, 71: -: 62: flag); 72: #####: 63: return err; 245: branch 1 taken 100% 246: -: 188: { 247: #####: 189: blklen *= old_extent; 248: #####: 190: new_dlp->el_size = 1; 249: #####: 191: new_dlp->el_extent = 1; 250: #####: 192: new_dlp->el_type = MPI_BYTE; 6 line(s) not covered by tests in src/mpid/common/datatype/dataloop/dataloop_create_blockindexed.c.gcov Uncovered lines in src/mpid/common/datatype/dataloop/dataloop_create_struct.c.gcov 96: branch 1 taken 100% 97: -: 89: { 98: #####: 90: err = PREPEND_PREFIX(Dataloop_create_contiguous)(0, 103: -: 94: dldepth_p, 104: -: 95: flag); 105: #####: 96: return err; 180: branch 1 taken 100% 181: -: 154: { 182: #####: 155: err = PREPEND_PREFIX(Dataloop_create_contiguous)(0, 187: -: 159: dldepth_p, 188: -: 160: flag); 189: #####: 161: return err; 4 line(s) not covered by tests in src/mpid/common/datatype/dataloop/dataloop_create_struct.c.gcov Uncovered lines in src/mpid/common/datatype/dataloop/darray_support.c.gcov 66: branch 1 taken 100% 67: -: 54: /* dimension 0 changes fastest */ 68: #####: 55: for (i=0; idim; i--) stride *= (MPI_Aint)(array_of_gsizes[i]); 338: branch 1 never executed 339: -: 254: 340: #####: 255: NMPI_Type_hvector(count, blksize, stride, type_old, type_new); 341: call 0 never executed 342: -: 256: 343: #####: 257: if (rem) { 347: -: 259: it separately using MPI_Type_struct */ 348: -: 260: 349: #####: 261: types[0] = *type_new; 350: #####: 262: types[1] = type_old; 351: #####: 263: disps[0] = 0; 352: #####: 264: disps[1] = ((MPI_Aint) count) * stride; 353: #####: 265: blklens[0] = 1; 354: #####: 266: blklens[1] = rem; 355: -: 267: 356: #####: 268: NMPI_Type_struct(2, blklens, disps, types, &type_tmp); 357: call 0 never executed 358: -: 269: 359: #####: 270: NMPI_Type_free(type_new); 360: call 0 never executed 361: #####: 271: *type_new = type_tmp; 364: -: 274: /* In the first iteration, we need to set the displacement in that 365: -: 275: dimension correctly. */ 366: #####: 276: if (((order == MPI_ORDER_FORTRAN) && (dim == 0)) || 372: branch 5 never executed 373: -: 277: ((order == MPI_ORDER_C) && (dim == ndims-1))) { 374: #####: 278: types[0] = MPI_LB; 375: #####: 279: disps[0] = 0; 376: #####: 280: types[1] = *type_new; 377: #####: 281: disps[1] = ((MPI_Aint) rank) * ((MPI_Aint) blksize) * orig_extent; 378: #####: 282: types[2] = MPI_UB; 379: #####: 283: disps[2] = orig_extent * ((MPI_Aint)(array_of_gsizes[dim])); 380: #####: 284: blklens[0] = blklens[1] = blklens[2] = 1; 381: #####: 285: NMPI_Type_struct(3, blklens, disps, types, &type_tmp); 382: call 0 never executed 383: #####: 286: NMPI_Type_free(type_new); 384: call 0 never executed 385: #####: 287: *type_new = type_tmp; 386: -: 288: 387: #####: 289: *st_offset = 0; /* set it to 0 because it is taken care of in 389: -: 291: } 390: -: 292: else { 391: #####: 293: *st_offset = ((MPI_Aint) rank) * ((MPI_Aint) blksize); 394: -: 296: } 395: -: 297: 396: #####: 298: if (local_size == 0) *st_offset = 0; 398: branch 1 never executed 399: -: 299: 400: #####: 300: return MPI_SUCCESS; 62 line(s) not covered by tests in src/mpid/common/datatype/dataloop/darray_support.c.gcov All code covered by tests in src/mpid/ch3/channels/nemesis/src/ch3_finalize.c.gcov Uncovered lines in src/mpid/ch3/channels/nemesis/src/ch3_init.c.gcov 108: -: 83:int MPIDI_CH3_RMAFnsInit( MPIDI_RMAFns *a ) 109: function MPIDI_CH3_RMAFnsInit called 0 returned 0% blocks executed 0% 110: #####: 84:{ 114: -: 87: MPIDI_FUNC_ENTER(MPID_STATE_MPIDI_CH3_RMAFNSINIT); 115: -: 88: 116: #####: 90: return 0; 349: -: 281:int MPID_nem_register_initcomp_cb(int (* callback)(void)) 350: function MPID_nem_register_initcomp_cb called 0 returned 0% blocks executed 0% 351: #####: 282:{ 352: #####: 283: int mpi_errno = MPI_SUCCESS; 353: -: 284: initcomp_cb_t *ep; 354: #####: 285: MPIU_CHKPMEM_DECL(1); 356: -: 287: 357: -: 288: MPIDI_FUNC_ENTER(MPID_STATE_MPID_NEM_REGISTER_INITCOMP_CB); 358: #####: 289: MPIU_CHKPMEM_MALLOC(ep, initcomp_cb_t *, sizeof(*ep), mpi_errno, "initcomp callback element"); 366: call 7 never executed 367: -: 290: 368: #####: 291: ep->callback = callback; 369: #####: 292: INITCOMP_S_PUSH(ep); 370: -: 293: 371: #####: 294: MPIU_CHKPMEM_COMMIT(); 372: #####: 295: fn_exit: 373: #####: 295: fn_exit: 374: #####: 297: return mpi_errno; 375: #####: 297: return mpi_errno; 376: #####: 299: MPIU_CHKPMEM_REAP(); 398: branch 1 taken 100% (fallthrough) 399: -: 316: { 400: #####: 317: mpi_errno = ep->callback(); 404: branch 1 never executed 405: call 2 never executed 406: #####: 319: ep = ep->next; 14 line(s) not covered by tests in src/mpid/ch3/channels/nemesis/src/ch3_init.c.gcov Uncovered lines in src/mpid/ch3/channels/nemesis/src/ch3_isend.c.gcov 105: -: 61: else 106: -: 62: { 107: #####: 63: int complete = 0; 108: #####: 64: mpi_errno = reqFn (vc, sreq, &complete); 2 line(s) not covered by tests in src/mpid/ch3/channels/nemesis/src/ch3_isend.c.gcov Uncovered lines in src/mpid/ch3/channels/nemesis/src/mpid_nem_inline.h.gcov 702: branch 1 taken 100% 703: -: 581: { 704: #####: 582: if (MPID_nem_queue_empty (MPID_nem_mem_region.my_freeQ)) 711: -: 583: { 712: -: 584: DO_PAPI (PAPI_accum_var (PAPI_EventSet, PAPI_vvalues5)); 713: #####: 585: goto return_again; 714: -: 586: } 715: -: 587: 716: #####: 588: MPID_nem_queue_dequeue (MPID_nem_mem_region.my_freeQ, &el); 774: branch 5 never executed 775: -: 624: else 776: #####: 625: MPID_nem_prefetched_cell = 0; 780: 1965: 629: *again = 0; 781: 1965: 630: goto fn_exit; 782: #####: 631: return_again: 783: #####: 632: *again = 1; 6 line(s) not covered by tests in src/mpid/ch3/channels/nemesis/src/mpid_nem_inline.h.gcov All code covered by tests in src/mpid/ch3/channels/nemesis/src/mpid_nem_impl.h.gcov All code covered by tests in src/mpid/ch3/channels/nemesis/src/opa_gcc_intel_32_64_ops.h.gcov All code covered by tests in src/mpid/ch3/channels/nemesis/src/mpid_nem_defs.h.gcov All code covered by tests in src/mpid/ch3/channels/nemesis/src/mpid_nem_queue.h.gcov Uncovered lines in src/mpid/ch3/channels/nemesis/src/mpid_nem_memdefs.h.gcov 55: -: 50:static inline void nt_memcpy (volatile void *dst, volatile const void *src, size_t len) 56: function nt_memcpy called 0 returned 0% blocks executed 0% 57: #####: 51:{ 62: -: 56: 63: -: 57: /* copy in 8K chunks */ 64: #####: 58: n = len & (-8*1024); 65: #####: 59: if (n) 68: -: 60: { 69: -: 61: 70: #####: 62: __asm__ __volatile__ ("mov %4, %%ecx\n" 128: -: 119: : "eax", "edx", "ecx", "memory" ); 129: -: 120: 130: #####: 121: src = (char *)src + n; 131: #####: 122: dst = (char *)dst + n; 133: -: 124: 134: -: 125: /* copy in 128byte chunks */ 135: #####: 126: n = len & (8*1024 - 1) & -128; 136: #####: 127: if (n) 139: -: 128: { 140: -: 129: 141: #####: 130: __asm__ __volatile__ ("mov %4, %%ecx\n" 196: -: 184: : "0" (dst), "1" (src), "g" (n >> 3) 197: -: 185: : "eax", "edx", "ecx", "memory" ); 198: #####: 186: src = (char *)src + n; 199: #####: 187: dst = (char *)dst + n; 201: -: 189: 202: -: 190: /* copy leftover */ 203: #####: 191: n = len & (128 - 1); 204: #####: 192: if (n) 205: branch 0 never executed 206: branch 1 never executed 207: #####: 193: asm_memcpy (dst, src, n); 14 line(s) not covered by tests in src/mpid/ch3/channels/nemesis/src/mpid_nem_memdefs.h.gcov Uncovered lines in src/mpid/ch3/channels/nemesis/src/ch3_isendv.c.gcov 49: -: 34: { 50: -: 35: case 1: 51: #####: 36: mpi_errno = vc_ch->iSendContig(vc, sreq, iov[0].MPID_IOV_BUF, iov[0].MPID_IOV_LEN, NULL, 0); 52: call 0 never executed 53: #####: 37: break; 57: 3938: 40: break; 58: -: 41: default: 59: #####: 42: mpi_errno = MPID_nem_send_iov(vc, &sreq, iov, n_iov); 126: -: 82: else 127: -: 83: { 128: #####: 84: sreq->dev.iov[0] = remaining_iov[0]; 207: branch 1 taken 100% 208: -: 122: { 209: #####: 123: sreq->dev.iov_offset = 0; 210: #####: 124: sreq->ch.noncontig = FALSE; 211: #####: 125: sreq->ch.vc = vc; 212: #####: 126: MPIDI_CH3I_SendQ_enqueue (sreq, CH3_NORMAL_QUEUE); 221: branch 8 never executed 222: branch 9 never executed 223: #####: 127: MPIU_Assert (MPIDI_CH3I_active_send[CH3_NORMAL_QUEUE] == NULL); 226: call 2 never executed 227: call 3 never executed 228: #####: 128: MPIDI_CH3I_active_send[CH3_NORMAL_QUEUE] = sreq; 10 line(s) not covered by tests in src/mpid/ch3/channels/nemesis/src/ch3_isendv.c.gcov All code covered by tests in src/mpid/ch3/channels/nemesis/src/ch3_istartmsg.c.gcov Uncovered lines in src/mpid/ch3/channels/nemesis/src/ch3_istartmsgv.c.gcov 62: -: 47: { 63: -: 48: case 1: 64: #####: 49: mpi_errno = ((MPIDI_CH3I_VC *)vc->channel_private)->iStartContigMsg(vc, iov[0].MPID_IOV_BUF, iov[0].MPID_IOV_LEN, NULL, 0, sreq_ptr); 65: call 0 never executed 66: #####: 50: break; 71: 3314: 54: break; 72: -: 55: default: 73: #####: 56: mpi_errno = MPID_nem_send_iov(vc, &sreq, iov, n_iov); 74: call 0 never executed 75: #####: 57: *sreq_ptr = sreq; 238: branch 0 taken 0% (fallthrough) 239: branch 1 taken 100% 240: #####: 166: MPIDI_CH3I_SendQ_enqueue(sreq, CH3_NORMAL_QUEUE); 5 line(s) not covered by tests in src/mpid/ch3/channels/nemesis/src/ch3_istartmsgv.c.gcov Uncovered lines in src/mpid/ch3/channels/nemesis/src/ch3_progress.c.gcov 380: -: 272: do 381: -: 273: { 382: #####: 274: MPID_nem_mpich2_send_seg(sreq->dev.segment_ptr, &sreq->dev.segment_first, sreq->dev.segment_size, 384: -: 275: sreq->ch.vc, &again); 385: -: 276: } 386: #####: 277: while (!again && sreq->dev.segment_first < sreq->dev.segment_size); 390: branch 3 never executed 391: -: 278: 392: #####: 279: if (again) /* not finished sending */ 393: branch 0 never executed 394: branch 1 never executed 395: #####: 280: break; /* break out of send progress */ 433: branch 3 taken 100% (fallthrough) 434: -: 301: { 435: #####: 302: mpi_errno = MPID_nem_mpich2_sendv(&iov, &n_iov, sreq->ch.vc, &again); 469: branch 3 taken 100% (fallthrough) 470: -: 324: { 471: #####: 325: MPID_nem_mpich2_send_seg(sreq->dev.segment_ptr, &sreq->dev.segment_first, sreq->dev.segment_size, 766: -: 516: MPIDI_msg_sz_t copylen; 767: -: 517: MPIDI_msg_sz_t pktlen; 768: #####: 518: MPIDI_CH3_Pkt_t *pkt = (MPIDI_CH3_Pkt_t *)vc_ch->pending_pkt; 770: -: 520: MPIU_DBG_MSG(CH3_CHANNEL, VERBOSE, "received header fragment"); 771: -: 521: 772: #####: 522: copylen = ((vc_ch->pending_pkt_len + buflen <= sizeof(MPIDI_CH3_Pkt_t)) 775: -: 523: ? buflen 776: -: 524: : sizeof(MPIDI_CH3_Pkt_t) - vc_ch->pending_pkt_len); 777: #####: 525: MPIU_Memcpy((char *)vc_ch->pending_pkt + vc_ch->pending_pkt_len, buf, copylen); 804: call 26 never executed 805: call 27 never executed 806: #####: 526: vc_ch->pending_pkt_len += copylen; 807: #####: 527: if (vc_ch->pending_pkt_len < sizeof(MPIDI_CH3_Pkt_t)) 808: branch 0 never executed 809: branch 1 never executed 810: #####: 528: goto fn_exit; 812: -: 530: /* we have a whole header */ 813: -: 531: MPIU_DBG_MSG(CH3_CHANNEL, VERBOSE, " completed header"); 814: #####: 532: MPIU_Assert(vc_ch->pending_pkt_len == sizeof(MPIDI_CH3_Pkt_t)); 818: call 3 never executed 819: -: 533: 820: #####: 534: buflen -= copylen; 821: #####: 535: buf += copylen; 822: -: 536: 823: -: 537: /* invalid pkt data will result in unpredictable behavior */ 824: #####: 538: MPIU_Assert(pkt->type >= 0 && pkt->type < MPIDI_NEM_PKT_END); 828: call 3 never executed 829: -: 539: 830: #####: 540: pktlen = sizeof(MPIDI_CH3_Pkt_t); 831: #####: 541: mpi_errno = pktArray[pkt->type](vc, pkt, &pktlen, &rreq); 835: branch 1 never executed 836: call 2 never executed 837: #####: 543: MPIU_Assert(pktlen == sizeof(MPIDI_CH3_Pkt_t)); 841: call 3 never executed 842: -: 544: 843: #####: 545: vc_ch->pending_pkt_len = 0; 844: -: 546: 845: #####: 547: if (!rreq) 848: -: 548: { 849: -: 549: MPIU_DBG_MSG(CH3_CHANNEL, VERBOSE, "...completed immediately"); 850: #####: 550: continue; 851: -: 551: } 852: -: 552: /* Channel fields don't get initialized on request creation, init them here */ 853: #####: 553: rreq->dev.iov_offset = 0; 874: branch 1 taken 100% 875: -: 563: { 876: #####: 564: vc_ch->recv_active = rreq; 877: #####: 565: goto fn_exit; 1128: -: 702:int MPIDI_CH3I_Progress_finalize(void) 1129: function MPIDI_CH3I_Progress_finalize called 0 returned 0% blocks executed 0% 1130: #####: 703:{ 1134: -: 706: MPIDI_FUNC_ENTER(MPID_STATE_MPIDI_CH3I_PROGRESS_FINALIZE); 1135: -: 707: 1136: #####: 709: return MPI_SUCCESS; 1185: -: 746:int MPIDI_CH3I_Register_anysource_notification(void (*enqueue_fn)(MPID_Request *rreq), int (*dequeue_fn)(MPID_Request *rreq)) 1186: function MPIDI_CH3I_Register_anysource_notification called 0 returned 0% blocks executed 0% 1187: #####: 747:{ 1188: #####: 748: int mpi_errno = MPI_SUCCESS; 1189: -: 749: qn_ent_t *ent; 1190: #####: 750: MPIU_CHKPMEM_DECL(1); 1191: -: 751: 1192: #####: 752: MPIU_CHKPMEM_MALLOC(ent, qn_ent_t *, sizeof(qn_ent_t), mpi_errno, "queue entry"); 1200: call 7 never executed 1201: -: 753: 1202: #####: 754: ent->enqueue_fn = enqueue_fn; 1203: #####: 755: ent->dequeue_fn = dequeue_fn; 1204: #####: 756: ent->next = qn_head; 1205: #####: 757: qn_head = ent; 1206: -: 758: 1207: #####: 759: fn_exit: 1208: #####: 760: MPIU_CHKPMEM_COMMIT(); 1209: #####: 761: return mpi_errno; 1210: #####: 761: return mpi_errno; 1211: #####: 763: MPIU_CHKPMEM_REAP(); 1230: branch 1 taken 100% (fallthrough) 1231: -: 777: { 1232: #####: 778: if (ent->enqueue_fn) 1234: branch 1 never executed 1235: -: 779: { 1236: #####: 780: ent->enqueue_fn(rreq); 1237: call 0 never executed 1238: -: 781: } 1239: #####: 782: ent = ent->next; 1255: branch 0 taken 0% 1256: branch 1 taken 100% (fallthrough) 1257: #####: 797: if (ent->dequeue_fn) 1261: -: 799: int m; 1262: -: 800: 1263: #####: 801: m = ent->dequeue_fn(rreq); 1268: -: 805: defined to empty, the extra matched=m is optimized 1269: -: 806: away. */ 1270: #####: 807: MPIU_Assert(!m || !matched); 1273: call 2 never executed 1274: call 3 never executed 1275: #####: 808: matched = m; 1276: -: 809: } 1277: #####: 810: ent = ent->next; 47 line(s) not covered by tests in src/mpid/ch3/channels/nemesis/src/ch3_progress.c.gcov All code covered by tests in src/mpid/ch3/channels/nemesis/src/mpid_nem_fbox.h.gcov Uncovered lines in src/mpid/ch3/channels/nemesis/src/ch3_comm_spawn.c.gcov 22: -: 17: **intercomm, int *errcodes) 23: function MPIDI_CH3_Comm_spawn_multiple called 0 returned 0% blocks executed 0% 24: #####: 18:{ 25: #####: 19: int mpi_errno = MPI_SUCCESS; 32: -: 24: __LINE__, MPI_ERR_OTHER, 33: -: 25: "**notimpl", 0); 34: #####: 27: return mpi_errno; 41: -: 34:int MPIDI_CH3_Open_port(char *port_name) 42: function MPIDI_CH3_Open_port called 0 returned 0% blocks executed 0% 43: #####: 35:{ 44: #####: 36: int mpi_errno = MPI_SUCCESS; 51: -: 41: __LINE__, MPI_ERR_OTHER, 52: -: 42: "**notimpl", 0); 53: #####: 44: return mpi_errno; 61: -: 52: *comm_ptr, MPID_Comm **newcomm) 62: function MPIDI_CH3_Comm_accept called 0 returned 0% blocks executed 0% 63: #####: 53:{ 64: #####: 54: int mpi_errno = MPI_SUCCESS; 71: -: 59: __LINE__, MPI_ERR_OTHER, 72: -: 60: "**notimpl", 0); 73: #####: 62: return mpi_errno; 82: -: 71: *comm_ptr, MPID_Comm **newcomm) 83: function MPIDI_CH3_Comm_connect called 0 returned 0% blocks executed 0% 84: #####: 72:{ 85: #####: 73: int mpi_errno = MPI_SUCCESS; 92: -: 78: __LINE__, MPI_ERR_OTHER, 93: -: 79: "**notimpl", 0); 94: #####: 81: return mpi_errno; 12 line(s) not covered by tests in src/mpid/ch3/channels/nemesis/src/ch3_comm_spawn.c.gcov Uncovered lines in src/mpid/ch3/channels/nemesis/src/ch3_abort.c.gcov 24: -: 19:int MPIDI_CH3_Abort(int exit_code, char *error_msg) 25: function MPIDI_CH3_Abort called 0 returned 0% blocks executed 0% 26: #####: 20:{ 32: -: 26: PMI2_Abort(TRUE, error_msg); 33: -: 27:#else 34: #####: 28: PMI_Abort(exit_code, error_msg); 37: -: 30: /* if abort returns for some reason, exit here */ 38: -: 31: 39: #####: 32: MPIU_Error_printf("%s", error_msg); 40: call 0 never executed 41: #####: 33: fflush(stderr); 42: call 0 never executed 43: -: 34: 44: #####: 35: MPIU_Exit(exit_code); 46: call 0 never executed 47: -: 36: 48: #####: 38: return MPI_ERR_INTERN; 6 line(s) not covered by tests in src/mpid/ch3/channels/nemesis/src/ch3_abort.c.gcov Uncovered lines in src/mpid/ch3/channels/nemesis/src/ch3i_comm.c.gcov 43: -: 38:int MPIDI_CH3I_comm_create (MPID_Comm *comm) 44: function MPIDI_CH3I_comm_create called 0 returned 0% blocks executed 0% 45: #####: 39:{ 46: #####: 40: int mpi_errno = MPI_SUCCESS; 48: -: 42: 49: -: 43: MPIDI_FUNC_ENTER(MPID_STATE_MPIDI_CH3I_COMM_CREATE); 50: #####: 44: comm->ch.barrier_vars = NULL; 51: -: 45: 52: #####: 46: mpi_errno = MPIU_Find_local_and_external(comm, &comm->ch.local_size, &comm->ch.local_rank, 60: call 2 never executed 61: -: 51: 62: #####: 52: comm->coll_fns = &collective_functions; 63: -: 53: 64: #####: 54: fn_exit: 65: #####: 54: fn_exit: 66: #####: 56: return mpi_errno; 75: -: 65:int MPIDI_CH3I_comm_destroy (MPID_Comm *comm) 76: function MPIDI_CH3I_comm_destroy called 0 returned 0% blocks executed 0% 77: #####: 66:{ 78: #####: 67: int mpi_errno = MPI_SUCCESS; 80: -: 69: 81: -: 70: MPIDI_FUNC_ENTER(MPID_STATE_MPIDI_CH3I_COMM_DESTROY); 82: #####: 71: if (comm->ch.barrier_vars && OPA_fetch_and_decr_int(&comm->ch.barrier_vars->usage_cnt) == 1) 87: branch 4 never executed 88: -: 72: { 89: #####: 73: OPA_write_barrier(); 90: call 0 never executed 91: #####: 74: OPA_store_int(&comm->ch.barrier_vars->context_id, NULL_CONTEXT_ID); 92: call 0 never executed 93: -: 75: } 94: #####: 76: if (comm->ch.local_size) 95: branch 0 never executed 96: branch 1 never executed 97: #####: 77: MPIU_Free (comm->ch.local_ranks); 98: call 0 never executed 99: #####: 78: if (comm->ch.external_size) 100: branch 0 never executed 101: branch 1 never executed 102: #####: 79: MPIU_Free (comm->ch.external_ranks); 104: call 0 never executed 105: -: 80: 106: #####: 82: return mpi_errno; 113: -: 89:static int alloc_barrier_vars (MPID_Comm *comm, MPID_nem_barrier_vars_t **vars) 114: function alloc_barrier_vars called 0 returned 0% blocks executed 0% 115: #####: 90:{ 116: #####: 91: int mpi_errno = MPI_SUCCESS; 118: -: 93: int c; 119: -: 94: 120: #####: 95: for (i = 0; i < MPID_NEM_NUM_BARRIER_VARS; ++i) 122: branch 1 never executed 123: -: 96: { 124: #####: 97: c = OPA_cas_int(&MPID_nem_mem_region.barrier_vars[i].context_id, NULL_CONTEXT_ID, comm->context_id); 125: #####: 98: if (c == NULL_CONTEXT_ID || c == comm->context_id) 129: branch 3 never executed 130: -: 99: { 131: #####: 100: *vars = &MPID_nem_mem_region.barrier_vars[i]; 132: #####: 101: OPA_write_barrier(); 133: call 0 never executed 134: #####: 102: OPA_incr_int(&(*vars)->usage_cnt); 135: #####: 103: goto fn_exit; 137: -: 105: } 138: -: 106: 139: #####: 107: *vars = NULL; 140: -: 108: 141: #####: 109: fn_exit: 142: #####: 110: return mpi_errno; 149: -: 117:static int msg_barrier (MPID_Comm *comm_ptr, int rank, int size, int *rank_array) 150: function msg_barrier called 0 returned 0% blocks executed 0% 151: #####: 118:{ 152: #####: 119: int mpi_errno = MPI_SUCCESS; 153: -: 120: int src, dst, mask; 154: #####: 121: MPI_Comm comm = comm_ptr->handle; 155: -: 122: 156: #####: 123: mask = 0x1; 157: #####: 124: while (mask < size) 159: branch 1 never executed 160: -: 125: { 161: #####: 126: dst = rank_array[(rank + mask) % size]; 162: #####: 127: src = rank_array[(rank - mask + size) % size]; 163: #####: 128: mpi_errno = MPIC_Sendrecv (NULL, 0, MPI_BYTE, dst, MPIR_BARRIER_TAG, 168: branch 1 never executed 169: call 2 never executed 170: #####: 131: mask <<= 1; 171: -: 132: } 172: -: 133: 173: #####: 134: fn_exit: 174: #####: 135: return mpi_errno; 184: -: 145:static int barrier (MPID_Comm *comm_ptr) 185: function barrier called 0 returned 0% blocks executed 0% 186: #####: 146:{ 187: #####: 147: int mpi_errno = MPI_SUCCESS; 188: -: 148: MPID_nem_barrier_vars_t *barrier_vars; 189: #####: 149: int local_size = comm_ptr->ch.local_size; 190: #####: 150: int external_size = comm_ptr->ch.external_size; 191: -: 151: 192: -: 152: /* Trivial barriers return immediately */ 193: #####: 153: if (comm_ptr->local_size == 1) 194: branch 0 never executed 195: branch 1 never executed 196: #####: 154: return MPI_SUCCESS; 200: -: 158: MPIDU_ERR_CHECK_MULTIPLE_THREADS_ENTER (comm_ptr); 201: -: 159: 202: #####: 160: if (local_size == 1) 205: -: 161: { 206: -: 162: /* there are only external processes -- do msg barrier only */ 207: #####: 163: mpi_errno = msg_barrier (comm_ptr, comm_ptr->ch.external_rank, external_size, comm_ptr->ch.external_ranks); 215: -: 167: } 216: -: 168: 217: #####: 169: if (comm_ptr->ch.barrier_vars == NULL) 219: branch 1 never executed 220: -: 170: { 221: #####: 171: mpi_errno = alloc_barrier_vars (comm_ptr, &comm_ptr->ch.barrier_vars); 226: call 2 never executed 227: -: 173: 228: #####: 174: if (comm_ptr->ch.barrier_vars == NULL) 240: -: 184: out of barrier_vars after that, then use msg_barrier. 241: -: 185: */ 242: #####: 186: mpi_errno = msg_barrier (comm_ptr, comm_ptr->ch.local_rank, local_size, comm_ptr->ch.local_ranks); 247: call 2 never executed 248: -: 188: 249: #####: 189: if (comm_ptr->ch.local_rank == 0) 251: branch 1 never executed 252: -: 190: { 253: #####: 191: mpi_errno = msg_barrier (comm_ptr, comm_ptr->ch.external_rank, external_size, comm_ptr->ch.external_ranks); 259: -: 193: } 260: -: 194: 261: #####: 195: mpi_errno = msg_barrier (comm_ptr, comm_ptr->ch.local_rank, local_size, comm_ptr->ch.local_ranks); 270: -: 200: } 271: -: 201: 272: #####: 202: barrier_vars = comm_ptr->ch.barrier_vars; 273: -: 203: 274: #####: 204: if (external_size == 1) 280: -: 208: int sense; 281: -: 209: 282: #####: 210: sense = OPA_load_int(&barrier_vars->sig); 283: call 0 never executed 284: #####: 211: OPA_read_barrier(); 285: call 0 never executed 286: -: 212: 287: #####: 213: prev = OPA_fetch_and_incr_int(&barrier_vars->cnt); 288: call 0 never executed 289: #####: 214: if (prev == local_size - 1) 291: branch 1 never executed 292: -: 215: { 293: #####: 216: OPA_store_int(&barrier_vars->cnt, 0); 294: call 0 never executed 295: #####: 217: OPA_write_barrier(); 296: call 0 never executed 297: #####: 218: OPA_store_int(&barrier_vars->sig, 1 - sense); 300: -: 220: else 301: -: 221: { 302: #####: 222: while (OPA_load_int(&barrier_vars->sig) == sense) 304: branch 1 never executed 305: branch 2 never executed 306: #####: 223: MPIDU_Yield(); 313: -: 229: /* there are both local and external processes */ 314: -: 230: 315: #####: 231: if (comm_ptr->ch.local_rank == 0) 318: -: 232: { 319: -: 233: /* do barrier between local and external */ 320: #####: 234: int external_rank = comm_ptr->ch.external_rank; 321: #####: 235: int *external_ranks = comm_ptr->ch.external_ranks; 322: -: 236: 323: -: 237: /* wait for local procs to reach barrier */ 324: #####: 238: if (local_size > 1) 325: branch 0 never executed 326: branch 1 never executed 327: #####: 239: while (OPA_load_int(&barrier_vars->sig0) == 0) 329: branch 1 never executed 330: branch 2 never executed 331: #####: 240: MPIDU_Yield(); 333: -: 241: 334: -: 242: /* now do a barrier with external processes */ 335: #####: 243: mpi_errno = msg_barrier (comm_ptr, external_rank, external_size, external_ranks); 341: -: 245: 342: -: 246: /* reset ctr and release local procs */ 343: #####: 247: if (local_size > 1) 345: branch 1 never executed 346: -: 248: { 347: #####: 249: OPA_store_int(&barrier_vars->sig0, 0); 348: call 0 never executed 349: #####: 250: OPA_store_int(&barrier_vars->cnt, 0); 350: call 0 never executed 351: #####: 251: OPA_write_barrier(); 352: call 0 never executed 353: #####: 252: OPA_store_int(&barrier_vars->sig, 1 - OPA_load_int(&barrier_vars->sig)); 363: -: 260: int prev; 364: -: 261: int sense; 365: #####: 262: sense = OPA_load_int(&barrier_vars->sig); 366: call 0 never executed 367: #####: 263: OPA_read_barrier(); 368: call 0 never executed 369: -: 264: 370: #####: 265: prev = OPA_fetch_and_incr_int(&barrier_vars->cnt); 371: call 0 never executed 372: #####: 266: if (prev == local_size - 2) /* - 2 because it's the value before we added 1 and we're not waiting for root */ 374: branch 1 never executed 375: -: 267: { 376: #####: 268: OPA_write_barrier(); 377: call 0 never executed 378: #####: 269: OPA_store_int(&barrier_vars->sig0, 1); 380: -: 270: } 381: -: 271: 382: #####: 272: while (OPA_load_int(&barrier_vars->sig) == sense) 384: branch 1 never executed 385: branch 2 never executed 386: #####: 273: MPIDU_Yield(); 388: -: 274: } 389: -: 275: 390: #####: 276: fn_exit: 391: -: 277: MPIDU_ERR_CHECK_MULTIPLE_THREADS_EXIT( comm_ptr ); 392: #####: 278: return mpi_errno; 88 line(s) not covered by tests in src/mpid/ch3/channels/nemesis/src/ch3i_comm.c.gcov Uncovered lines in src/mpid/ch3/channels/nemesis/src/opa_emulated.h.gcov 118: -: 113:static _opa_inline int OPA_fetch_and_incr_int_by_faa(OPA_int_t *ptr) 119: function OPA_fetch_and_incr_int called 0 returned 0% blocks executed 0% 120: #####: 114:{ 121: #####: 115: return OPA_fetch_and_add_int(ptr, 1); 124: -: 118:static _opa_inline int OPA_fetch_and_decr_int_by_faa(OPA_int_t *ptr) 125: function OPA_fetch_and_decr_int called 0 returned 0% blocks executed 0% 126: #####: 119:{ 127: #####: 120: return OPA_fetch_and_add_int(ptr, -1); 4 line(s) not covered by tests in src/mpid/ch3/channels/nemesis/src/opa_emulated.h.gcov Uncovered lines in src/mpid/ch3/channels/nemesis/src/ch3i_eagernoncontig.c.gcov 44: -: 36: MPIDI_DBG_PRINTF((55, FCNAME, "enqueuing")); 45: -: 37: 46: #####: 38: sreq->dev.pending_pkt = *(MPIDI_CH3_PktGeneric_t *)header; 47: #####: 39: sreq->ch.noncontig = TRUE; 48: #####: 40: sreq->ch.header_sz = hdr_sz; 49: #####: 41: sreq->ch.vc = vc; 50: -: 42: 51: #####: 43: MPIDI_CH3I_SendQ_enqueue(sreq, CH3_NORMAL_QUEUE); 60: branch 8 never executed 61: branch 9 never executed 62: #####: 44: mpi_errno = MPIDI_CH3_Progress_test(); 97: -: 65: { 98: -: 66: /* part of message was sent, make this req an active send */ 99: #####: 67: MPIU_Assert(MPIDI_CH3I_active_send[CH3_NORMAL_QUEUE] == NULL); 102: call 2 never executed 103: call 3 never executed 104: #####: 68: MPIDI_CH3I_active_send[CH3_NORMAL_QUEUE] = sreq; 8 line(s) not covered by tests in src/mpid/ch3/channels/nemesis/src/ch3i_eagernoncontig.c.gcov All code covered by tests in src/mpid/ch3/src/stdlib.h.gcov Uncovered lines in src/mpid/ch3/src/ch3u_buffer.c.gcov 304: -: 210: MPIU_DBG_MSG_FMT(CH3_OTHER, VERBOSE, (MPIU_DBG_FDEST, 305: -: 211: "moved " MPIDI_MSG_SZ_FMT " bytes to the beginning of the tmp buffer", buf_off)); 306: #####: 212: memmove(buf, buf_end - buf_off, buf_off); 1 line(s) not covered by tests in src/mpid/ch3/src/ch3u_buffer.c.gcov Uncovered lines in src/mpid/ch3/src/mpid_nem_memdefs.h.gcov 55: -: 50:static inline void nt_memcpy (volatile void *dst, volatile const void *src, size_t len) 56: function nt_memcpy called 0 returned 0% blocks executed 0% 57: #####: 51:{ 62: -: 56: 63: -: 57: /* copy in 8K chunks */ 64: #####: 58: n = len & (-8*1024); 65: #####: 59: if (n) 68: -: 60: { 69: -: 61: 70: #####: 62: __asm__ __volatile__ ("mov %4, %%ecx\n" 128: -: 119: : "eax", "edx", "ecx", "memory" ); 129: -: 120: 130: #####: 121: src = (char *)src + n; 131: #####: 122: dst = (char *)dst + n; 133: -: 124: 134: -: 125: /* copy in 128byte chunks */ 135: #####: 126: n = len & (8*1024 - 1) & -128; 136: #####: 127: if (n) 139: -: 128: { 140: -: 129: 141: #####: 130: __asm__ __volatile__ ("mov %4, %%ecx\n" 196: -: 184: : "0" (dst), "1" (src), "g" (n >> 3) 197: -: 185: : "eax", "edx", "ecx", "memory" ); 198: #####: 186: src = (char *)src + n; 199: #####: 187: dst = (char *)dst + n; 201: -: 189: 202: -: 190: /* copy leftover */ 203: #####: 191: n = len & (128 - 1); 204: #####: 192: if (n) 205: branch 0 never executed 206: branch 1 never executed 207: #####: 193: asm_memcpy (dst, src, n); 14 line(s) not covered by tests in src/mpid/ch3/src/mpid_nem_memdefs.h.gcov Uncovered lines in src/mpid/ch3/src/ch3u_comm_spawn_multiple.c.gcov 65: branch 0 taken 0% (fallthrough) 66: branch 1 taken 100% 67: #####: 51: goto fn_exit; 214: branch 0 taken 0% (fallthrough) 215: branch 1 taken 100% 216: #####: 142: for (i=0; istate, vc ); 350: call 0 never executed 351: #####: 272: fflush(stdout); 4 line(s) not covered by tests in src/mpid/ch3/src/ch3u_handle_connection.c.gcov Uncovered lines in src/mpid/ch3/src/ch3u_handle_recv_pkt.c.gcov 59: -: 54: MPIDI_msg_sz_t *buflen, MPID_Request ** rreqp) 60: function MPIDI_CH3U_Handle_recv_pkt called 0 returned 0% blocks executed 0% 61: #####: 55:{ 62: #####: 56: int mpi_errno = MPI_SUCCESS; 77: -: 71: */ 78: -: 72: 79: #####: 73: if (needsInit) { 80: branch 0 never executed 81: branch 1 never executed 82: #####: 74: MPIDI_CH3_PktHandler_Init( pktArray, MPIDI_CH3_PKT_END_CH3 ); 83: call 0 never executed 84: #####: 75: needsInit = 0; 85: -: 76: } 86: -: 77: /* Packet type is an enum and hence >= 0 */ 87: #####: 78: MPIU_Assert(pkt->type <= MPIDI_CH3_PKT_END_CH3); 90: call 2 never executed 91: call 3 never executed 92: #####: 79: mpi_errno = pktArray[pkt->type](vc, pkt, buflen, rreqp); 94: call 0 never executed 95: -: 80: 96: #####: 82: return mpi_errno; 374: -: 263: else 375: -: 264: { 376: #####: 265: rreq->dev.iov[0].MPID_IOV_BUF = (MPID_IOV_BUF_CAST)((char *)rreq->dev.tmpbuf); 377: #####: 266: rreq->dev.iov[0].MPID_IOV_LEN = rreq->dev.recv_data_sz; 378: #####: 267: rreq->dev.iov_count = 1; 379: #####: 268: rreq->dev.recv_pending_count = 2; 380: #####: 269: *buflen = 0; 381: #####: 270: *complete = FALSE; 400: -: 289:int MPIDI_CH3U_Post_data_receive_found(MPID_Request * rreq) 401: function MPIDI_CH3U_Post_data_receive_found called 0 returned 0% blocks executed 0% 402: #####: 290:{ 403: #####: 291: int mpi_errno = MPI_SUCCESS; 405: -: 293: MPI_Aint dt_true_lb; 406: -: 294: MPIDI_msg_sz_t userbuf_sz; 407: #####: 295: MPID_Datatype * dt_ptr = NULL; 413: -: 301: MPIU_DBG_MSG(CH3_OTHER,VERBOSE,"posted request found"); 414: -: 302: 415: #####: 303: MPIDI_Datatype_get_info(rreq->dev.user_count, rreq->dev.datatype, 423: -: 304: dt_contig, userbuf_sz, dt_ptr, dt_true_lb); 424: -: 305: 425: #####: 306: if (rreq->dev.recv_data_sz <= userbuf_sz) { 426: branch 0 never executed 427: branch 1 never executed 428: #####: 307: data_sz = rreq->dev.recv_data_sz; 439: -: 317: rreq->status.MPI_SOURCE, rreq->status.MPI_TAG, 440: -: 318: rreq->dev.recv_data_sz, userbuf_sz ); 441: #####: 319: rreq->status.count = userbuf_sz; 442: #####: 320: data_sz = userbuf_sz; 443: -: 321: } 444: -: 322: 445: #####: 323: if (dt_contig && data_sz == rreq->dev.recv_data_sz) 453: -: 327: (this code describes how to read the data into the destination) */ 454: -: 328: MPIU_DBG_MSG(CH3_OTHER,VERBOSE,"IOV loaded for contiguous read"); 455: #####: 329: rreq->dev.iov[0].MPID_IOV_BUF = 456: -: 330: (MPID_IOV_BUF_CAST)((char*)(rreq->dev.user_buf) + dt_true_lb); 457: #####: 331: rreq->dev.iov[0].MPID_IOV_LEN = data_sz; 458: #####: 332: rreq->dev.iov_count = 1; 460: -: 334: function, which depends on whether this is an RMA 461: -: 335: request or a pt-to-pt request. */ 462: #####: 336: rreq->dev.OnDataAvail = 0; 466: -: 340: the entire message */ 467: -: 341: MPIU_DBG_MSG(CH3_OTHER,VERBOSE,"IOV loaded for non-contiguous read"); 468: #####: 342: rreq->dev.segment_ptr = MPID_Segment_alloc( ); 469: call 0 never executed 470: #####: 343: MPIU_ERR_CHKANDJUMP1((rreq->dev.segment_ptr == NULL), mpi_errno, MPI_ERR_OTHER, "**nomem", "**nomem %s", "MPID_Segment_alloc"); 472: branch 1 never executed 473: call 2 never executed 474: #####: 344: MPID_Segment_init(rreq->dev.user_buf, rreq->dev.user_count, 475: call 0 never executed 476: -: 345: rreq->dev.datatype, rreq->dev.segment_ptr, 0); 477: #####: 346: rreq->dev.segment_first = 0; 478: #####: 347: rreq->dev.segment_size = data_sz; 479: #####: 348: mpi_errno = MPIDI_CH3U_Request_load_recv_iov(rreq); 480: call 0 never executed 481: #####: 349: if (mpi_errno != MPI_SUCCESS) { 488: -: 353: } 489: -: 354: 490: #####: 355: fn_exit: 491: #####: 355: fn_exit: 492: #####: 357: return mpi_errno; 501: -: 366:int MPIDI_CH3U_Post_data_receive_unexpected(MPID_Request * rreq) 502: function MPIDI_CH3U_Post_data_receive_unexpected called 0 returned 0% blocks executed 0% 503: #####: 367:{ 504: #####: 368: int mpi_errno = MPI_SUCCESS; 513: -: 377: MPIU_DBG_MSG(CH3_OTHER,VERBOSE,"unexpected request allocated"); 514: -: 378: 515: #####: 379: rreq->dev.tmpbuf = MPIU_Malloc(rreq->dev.recv_data_sz); 516: call 0 never executed 517: #####: 380: if (!rreq->dev.tmpbuf) { 521: call 0 never executed 522: -: 382: } 523: #####: 383: rreq->dev.tmpbuf_sz = rreq->dev.recv_data_sz; 524: -: 384: 525: #####: 385: rreq->dev.iov[0].MPID_IOV_BUF = (MPID_IOV_BUF_CAST)rreq->dev.tmpbuf; 526: #####: 386: rreq->dev.iov[0].MPID_IOV_LEN = rreq->dev.recv_data_sz; 527: #####: 387: rreq->dev.iov_count = 1; 528: #####: 388: rreq->dev.OnDataAvail = MPIDI_CH3_ReqHandler_UnpackUEBufComplete; 529: #####: 389: rreq->dev.recv_pending_count = 2; 531: #####: 389: rreq->dev.recv_pending_count = 2; 532: -: 390: 533: #####: 393: return mpi_errno; 628: -: 479: MPIDI_msg_sz_t *buflen, MPID_Request **rreqp) 629: function MPIDI_CH3_PktHandler_FlowCntlUpdate called 0 returned 0% blocks executed 0% 630: #####: 480:{ 631: #####: 481: *buflen = sizeof(MPIDI_CH3_Pkt_t); 632: #####: 482: return MPI_SUCCESS; 643: -: 493: MPID_Request **rreqp ATTRIBUTE((unused)) ) 644: function MPIDI_CH3_PktHandler_EndCH3 called 0 returned 0% blocks executed 0% 645: #####: 494:{ 650: -: 498: 651: -: 500: 652: #####: 501: return MPI_SUCCESS; 52 line(s) not covered by tests in src/mpid/ch3/src/ch3u_handle_recv_pkt.c.gcov Uncovered lines in src/mpid/ch3/src/ch3u_handle_recv_req.c.gcov 25: -: 20: int * complete) 26: function MPIDI_CH3U_Handle_recv_req called 0 returned 0% blocks executed 0% 27: #####: 21:{ 28: -: 22: static int in_routine = FALSE; 29: #####: 23: int mpi_errno = MPI_SUCCESS; 33: -: 27: MPIDI_FUNC_ENTER(MPID_STATE_MPIDI_CH3U_HANDLE_RECV_REQ); 34: -: 28: 35: #####: 29: MPIU_Assert(in_routine == FALSE); 38: call 2 never executed 39: call 3 never executed 40: #####: 30: in_routine = TRUE; 41: -: 31: 42: #####: 32: reqFn = rreq->dev.OnDataAvail; 43: #####: 33: if (!reqFn) { 44: branch 0 never executed 45: branch 1 never executed 46: #####: 34: MPIU_Assert(MPIDI_Request_get_type(rreq) == MPIDI_REQUEST_TYPE_RECV); 49: call 2 never executed 50: call 3 never executed 51: #####: 35: MPIDI_CH3U_Request_complete(rreq); 64: branch 12 never executed 65: call 13 never executed 66: #####: 36: *complete = TRUE; 67: -: 37: } 68: -: 38: else { 69: #####: 39: mpi_errno = reqFn( vc, rreq, complete ); 71: -: 40: } 72: -: 41: 73: #####: 42: in_routine = FALSE; 74: #####: 42: in_routine = FALSE; 75: #####: 44: return mpi_errno; 99: -: 68: int *complete ) 100: function MPIDI_CH3_ReqHandler_RecvComplete called 0 returned 0% blocks executed 0% 101: #####: 69:{ 102: -: 70: /* mark data transfer as complete and decrement CC */ 103: #####: 71: MPIDI_CH3U_Request_complete(rreq); 116: branch 12 never executed 117: call 13 never executed 118: #####: 72: *complete = TRUE; 119: #####: 73: return MPI_SUCCESS; 513: -: 347: int *complete ) 514: function MPIDI_CH3_ReqHandler_SinglePutAccumComplete called 0 returned 0% blocks executed 0% 515: #####: 348:{ 516: #####: 349: int mpi_errno = MPI_SUCCESS; 526: -: 359: operation. */ 527: -: 360: 528: #####: 361: MPID_Win_get_ptr(rreq->dev.target_win_handle, win_ptr); 532: call 3 never executed 533: -: 362: 534: #####: 363: lock_queue_entry = rreq->dev.lock_queue_entry; 535: -: 364: 536: #####: 365: if (MPIDI_CH3I_Try_acquire_win_lock(win_ptr, 541: -: 367: { 542: -: 368: 543: #####: 369: if (MPIDI_Request_get_type(rreq) == MPIDI_REQUEST_TYPE_PT_SINGLE_PUT) { 545: branch 1 never executed 546: -: 370: /* copy the data over */ 547: #####: 371: mpi_errno = MPIR_Localcopy(rreq->dev.user_buf, 554: -: 377: } 555: -: 378: else { 556: #####: 379: mpi_errno = do_simple_accumulate(lock_queue_entry->pt_single_op); 558: -: 380: } 559: -: 381: 560: #####: 382: if (mpi_errno) { 566: -: 385: 567: -: 386: /* increment counter */ 568: #####: 387: win_ptr->my_pt_rma_puts_accs++; 569: -: 388: 570: -: 389: /* send done packet */ 571: #####: 390: mpi_errno = MPIDI_CH3I_Send_pt_rma_done_pkt(vc, 572: call 0 never executed 573: -: 391: lock_queue_entry->source_win_handle); 574: #####: 392: if (mpi_errno) { 581: -: 396: /* free lock_queue_entry including data buffer and remove 582: -: 397: it from the queue. */ 583: #####: 398: curr_ptr = (MPIDI_Win_lock_queue *) win_ptr->lock_queue; 584: #####: 399: curr_ptr_ptr = (MPIDI_Win_lock_queue **) &(win_ptr->lock_queue); 585: #####: 400: while (curr_ptr != lock_queue_entry) { 586: branch 0 never executed 587: branch 1 never executed 588: #####: 401: curr_ptr_ptr = &(curr_ptr->next); 589: #####: 402: curr_ptr = curr_ptr->next; 590: -: 403: } 591: #####: 404: *curr_ptr_ptr = curr_ptr->next; 592: -: 405: 593: #####: 406: MPIU_Free(lock_queue_entry->pt_single_op->data); 594: call 0 never executed 595: #####: 407: MPIU_Free(lock_queue_entry->pt_single_op); 596: call 0 never executed 597: #####: 408: MPIU_Free(lock_queue_entry); 599: -: 409: 600: -: 410: /* Release lock and grant next lock if there is one. */ 601: #####: 411: mpi_errno = MPIDI_CH3I_Release_lock(win_ptr); 604: -: 413: else { 605: -: 414: /* could not acquire lock. mark data recd as 1 */ 606: #####: 415: lock_queue_entry->pt_single_op->data_recd = 1; 608: -: 417: 609: -: 418: /* mark data transfer as complete and decrement CC */ 610: #####: 419: MPIDI_CH3U_Request_complete(rreq); 623: branch 12 never executed 624: call 13 never executed 625: #####: 420: *complete = TRUE; 626: call 13 never executed 627: #####: 420: *complete = TRUE; 628: #####: 423: return mpi_errno; 637: -: 432: int *complete ) 638: function MPIDI_CH3_ReqHandler_UnpackUEBufComplete called 0 returned 0% blocks executed 0% 639: #####: 433:{ 643: -: 437: MPIDI_FUNC_ENTER(MPID_STATE_MPIDI_CH3_REQHANDLER_UNPACKUEBUFCOMPLETE); 644: -: 438: 645: #####: 439: MPIDI_Request_decr_pending(rreq); 646: #####: 440: MPIDI_Request_check_pending(rreq, &recv_pending); 647: #####: 441: if (!recv_pending) 649: branch 1 never executed 650: -: 442: { 651: #####: 443: if (rreq->dev.recv_data_sz > 0) 653: branch 1 never executed 654: -: 444: { 655: #####: 445: MPIDI_CH3U_Request_unpack_uebuf(rreq); 656: call 0 never executed 657: #####: 446: MPIU_Free(rreq->dev.tmpbuf); 666: -: 454: 667: -: 455: /* mark data transfer as complete and decrement CC */ 668: #####: 456: MPIDI_CH3U_Request_complete(rreq); 681: branch 12 never executed 682: call 13 never executed 683: #####: 457: *complete = TRUE; 684: #####: 457: *complete = TRUE; 685: -: 458: 686: #####: 460: return MPI_SUCCESS; 1104: branch 0 taken 0% (fallthrough) 1105: branch 1 taken 100% 1106: #####: 773: entered_count++; 1107: #####: 774: goto fn_exit; 1154: -: 808: MPIDI_PT_single_op * single_op; 1155: -: 809: 1156: #####: 810: single_op = lock_queue->pt_single_op; 1157: #####: 811: if (single_op->type == MPIDI_RMA_PUT) { 1158: branch 0 never executed 1159: branch 1 never executed 1160: #####: 812: mpi_errno = MPIR_Localcopy(single_op->data, 1166: -: 817: single_op->datatype); 1167: -: 818: } 1168: #####: 819: else if (single_op->type == MPIDI_RMA_ACCUMULATE) { 1169: branch 0 never executed 1170: branch 1 never executed 1171: #####: 820: mpi_errno = do_simple_accumulate(single_op); 1172: call 0 never executed 1173: -: 821: } 1174: #####: 822: else if (single_op->type == MPIDI_RMA_GET) { 1175: branch 0 never executed 1176: branch 1 never executed 1177: #####: 823: mpi_errno = do_simple_get(win_ptr, lock_queue); 1179: -: 824: } 1180: -: 825: 1181: #####: 826: if (mpi_errno != MPI_SUCCESS) goto fn_exit; 1184: -: 827: 1185: -: 828: /* if put or accumulate, send rma done packet and release lock. */ 1186: #####: 829: if (single_op->type != MPIDI_RMA_GET) { 1188: branch 1 never executed 1189: -: 830: /* increment counter */ 1190: #####: 831: win_ptr->my_pt_rma_puts_accs++; 1191: -: 832: 1192: #####: 833: mpi_errno = 1194: -: 834: MPIDI_CH3I_Send_pt_rma_done_pkt(lock_queue->vc, 1195: -: 835: lock_queue->source_win_handle); 1196: #####: 836: if (mpi_errno != MPI_SUCCESS) goto fn_exit; 1199: -: 837: 1200: -: 838: /* release the lock */ 1201: #####: 839: if (win_ptr->current_lock_type == MPI_LOCK_SHARED) { 1204: -: 840: /* decr ref cnt */ 1205: -: 841: /* FIXME: MT: Must be done atomically */ 1206: #####: 842: win_ptr->shared_lock_ref_cnt--; 1210: -: 846: (which is also true if the lock is an 1211: -: 847: exclusive lock), release the lock. */ 1212: #####: 848: if (win_ptr->shared_lock_ref_cnt == 0) { 1215: -: 849: /* FIXME: MT: The setting of the lock type 1216: -: 850: must be done atomically */ 1217: #####: 851: win_ptr->current_lock_type = MPID_LOCK_NONE; 1219: -: 853: 1220: -: 854: /* dequeue entry from lock queue */ 1221: #####: 855: MPIU_Free(single_op->data); 1222: call 0 never executed 1223: #####: 856: MPIU_Free(single_op); 1224: call 0 never executed 1225: #####: 857: *lock_queue_ptr = lock_queue->next; 1226: #####: 858: MPIU_Free(lock_queue); 1227: call 0 never executed 1228: #####: 859: lock_queue = *lock_queue_ptr; 1236: -: 867: next operation. */ 1237: -: 868: 1238: #####: 869: MPIU_Free(single_op); 1239: call 0 never executed 1240: #####: 870: *lock_queue_ptr = lock_queue->next; 1241: #####: 871: MPIU_Free(lock_queue); 1242: call 0 never executed 1243: #####: 872: lock_queue = *lock_queue_ptr; 1244: -: 873: 1245: #####: 874: if (requested_lock == MPI_LOCK_EXCLUSIVE) 1246: branch 0 never executed 1247: branch 1 never executed 1248: #####: 875: break; 1273: -: 896: } 1274: -: 897: else { 1275: #####: 898: lock_queue_ptr = &(lock_queue->next); 1276: #####: 899: lock_queue = lock_queue->next; 1324: branch 1 taken 100% 1325: -: 939: { 1326: #####: 940: MPID_Request_release(req); 1346: -: 953:static int do_simple_accumulate(MPIDI_PT_single_op *single_op) 1347: function do_simple_accumulate called 0 returned 0% blocks executed 0% 1348: #####: 954:{ 1349: #####: 955: int mpi_errno = MPI_SUCCESS; 1353: -: 959: MPIDI_FUNC_ENTER(MPID_STATE_DO_SIMPLE_ACCUMULATE); 1354: -: 960: 1355: #####: 961: if (single_op->op == MPI_REPLACE) 1358: -: 962: { 1359: -: 963: /* simply copy the data */ 1360: #####: 964: mpi_errno = MPIR_Localcopy(single_op->data, single_op->count, 1362: -: 965: single_op->datatype, single_op->addr, 1363: -: 966: single_op->count, single_op->datatype); 1364: #####: 967: if (mpi_errno) { 1371: -: 971: } 1372: -: 972: 1373: #####: 973: if (HANDLE_GET_KIND(single_op->op) == HANDLE_KIND_BUILTIN) 1376: -: 974: { 1377: -: 975: /* get the function by indexing into the op table */ 1378: #####: 976: uop = MPIR_Op_table[(single_op->op)%16 - 1]; 1388: -: 985: 1389: -: 986: /* only basic datatypes supported for this optimization. */ 1390: #####: 987: (*uop)(single_op->data, single_op->addr, 1393: -: 988: &(single_op->count), &(single_op->datatype)); 1394: -: 989: 1395: #####: 991: fn_exit: 1396: #####: 991: fn_exit: 1397: #####: 993: return mpi_errno; 1406: -: 1002:static int do_simple_get(MPID_Win *win_ptr, MPIDI_Win_lock_queue *lock_queue) 1407: function do_simple_get called 0 returned 0% blocks executed 0% 1408: #####: 1003:{ 1409: -: 1004: MPIDI_CH3_Pkt_t upkt; 1410: #####: 1005: MPIDI_CH3_Pkt_get_resp_t * get_resp_pkt = &upkt.get_resp; 1411: -: 1006: MPID_Request *req; 1412: -: 1007: MPID_IOV iov[MPID_IOV_LIMIT]; 1413: #####: 1008: int type_size, mpi_errno=MPI_SUCCESS; 1416: -: 1011: MPIDI_FUNC_ENTER(MPID_STATE_DO_SIMPLE_GET); 1417: -: 1012: 1418: #####: 1013: req = MPID_Request_create(); 1419: call 0 never executed 1420: #####: 1014: if (req == NULL) { 1424: call 0 never executed 1425: -: 1016: } 1426: #####: 1017: req->dev.target_win_handle = win_ptr->handle; 1427: #####: 1018: req->dev.source_win_handle = lock_queue->source_win_handle; 1428: #####: 1019: req->dev.single_op_opt = 1; 1429: -: 1020: 1430: #####: 1021: MPIDI_Request_set_type(req, MPIDI_REQUEST_TYPE_GET_RESP); 1431: #####: 1022: req->kind = MPID_REQUEST_SEND; 1432: #####: 1023: req->dev.OnDataAvail = MPIDI_CH3_ReqHandler_GetSendRespComplete; 1433: #####: 1024: req->dev.OnFinal = MPIDI_CH3_ReqHandler_GetSendRespComplete; 1434: -: 1025: 1435: #####: 1026: MPIDI_Pkt_init(get_resp_pkt, MPIDI_CH3_PKT_GET_RESP); 1436: #####: 1027: get_resp_pkt->request_handle = lock_queue->pt_single_op->request_handle; 1437: -: 1028: 1438: #####: 1029: iov[0].MPID_IOV_BUF = (MPID_IOV_BUF_CAST) get_resp_pkt; 1439: #####: 1030: iov[0].MPID_IOV_LEN = sizeof(*get_resp_pkt); 1440: -: 1031: 1441: #####: 1032: iov[1].MPID_IOV_BUF = (MPID_IOV_BUF_CAST)lock_queue->pt_single_op->addr; 1442: #####: 1033: MPID_Datatype_get_size_macro(lock_queue->pt_single_op->datatype, type_size); 1446: branch 3 never executed 1447: call 4 never executed 1448: #####: 1034: iov[1].MPID_IOV_LEN = lock_queue->pt_single_op->count * type_size; 1450: -: 1036: /* Because this is in a packet handler, it is already within a critical section */ 1451: -: 1037: /* MPIU_THREAD_CS_ENTER(CH3COMM,vc); */ 1452: #####: 1038: mpi_errno = MPIU_CALL(MPIDI_CH3,iSendv(lock_queue->vc, req, iov, 2)); 1469: -: 1048: 1470: -: 1051: 1471: #####: 1052: return mpi_errno; 115 line(s) not covered by tests in src/mpid/ch3/src/ch3u_handle_recv_req.c.gcov Uncovered lines in src/mpid/ch3/src/ch3u_handle_send_req.c.gcov 19: -: 14: int *complete) 20: function MPIDI_CH3U_Handle_send_req called 0 returned 0% blocks executed 0% 21: #####: 15:{ 22: #####: 16: int mpi_errno = MPI_SUCCESS; 28: -: 22: /* Use the associated function rather than switching on the old ca field */ 29: -: 23: /* Routines can call the attached function directly */ 30: #####: 24: reqFn = sreq->dev.OnDataAvail; 31: #####: 25: if (!reqFn) { 32: branch 0 never executed 33: branch 1 never executed 34: #####: 26: MPIU_Assert(MPIDI_Request_get_type(sreq) != MPIDI_REQUEST_TYPE_GET_RESP); 37: call 2 never executed 38: call 3 never executed 39: #####: 27: MPIDI_CH3U_Request_complete(sreq); 52: branch 12 never executed 53: call 13 never executed 54: #####: 28: *complete = 1; 55: -: 29: } 56: -: 30: else { 57: #####: 31: mpi_errno = reqFn( vc, sreq, complete ); 60: -: 32: } 61: -: 33: 62: #####: 35: return mpi_errno; 129: -: 78: int *complete ) 130: function MPIDI_CH3_ReqHandler_SendReloadIOV called 0 returned 0% blocks executed 0% 131: #####: 79:{ 134: -: 82: /* setting the iov_offset to 0 here is critical, since it is intentionally 135: -: 83: * not set in the _load_send_iov function */ 136: #####: 84: sreq->dev.iov_offset = 0; 137: #####: 85: sreq->dev.iov_count = MPID_IOV_LIMIT; 138: #####: 86: mpi_errno = MPIDI_CH3U_Request_load_send_iov(sreq, sreq->dev.iov, 139: call 0 never executed 140: -: 87: &sreq->dev.iov_count); 141: #####: 88: if (mpi_errno != MPI_SUCCESS) { 146: -: 90: } 147: -: 91: 148: #####: 92: *complete = FALSE; 149: #####: 92: *complete = FALSE; 150: -: 93: 151: #####: 95: return mpi_errno; 16 line(s) not covered by tests in src/mpid/ch3/src/ch3u_handle_send_req.c.gcov Uncovered lines in src/mpid/ch3/src/ch3u_port.c.gcov 769: branch 0 taken 0% (fallthrough) 770: branch 1 taken 100% 771: #####: 602: pg_trailer = pg_trailer->next; 820: 1337: 638: fn_exit: 821: 1337: 640: return mpi_errno; 822: #####: 642: MPIU_CHKPMEM_REAP(); 1020: branch 1 taken 100% 1021: -: 781: /* FIXME: Error, the pg_list is broken */ 1022: #####: 782: printf( "Unexpected end of pg_list\n" ); fflush(stdout); 1023: call 0 never executed 1024: call 1 never executed 1025: #####: 783: break; 4 line(s) not covered by tests in src/mpid/ch3/src/ch3u_port.c.gcov Uncovered lines in src/mpid/ch3/src/ch3u_recvq.c.gcov 627: branch 0 taken 0% (fallthrough) 628: branch 1 taken 100% 629: #####: 497: goto top_loop; 793: -: 622:int MPIDI_CH3U_Recvq_count_unexp(void) 794: function MPIDI_CH3U_Recvq_count_unexp called 0 returned 0% blocks executed 0% 795: #####: 623:{ 796: #####: 624: int count = 0; 797: #####: 625: MPID_Request *req = recvq_unexpected_head; 798: -: 626: 799: #####: 627: while (req) 801: branch 1 never executed 802: -: 628: { 803: #####: 629: ++count; 804: #####: 630: req = req->dev.next; 805: -: 631: } 806: -: 632: 807: #####: 633: return count; 8 line(s) not covered by tests in src/mpid/ch3/src/ch3u_recvq.c.gcov Uncovered lines in src/mpid/ch3/src/ch3u_request.c.gcov 230: -: 191: MPID_IOV * const iov, int * const iov_n) 231: function MPIDI_CH3U_Request_load_send_iov called 0 returned 0% blocks executed 0% 232: #####: 192:{ 233: -: 193: MPI_Aint last; 234: #####: 194: int mpi_errno = MPI_SUCCESS; 236: -: 196: 237: -: 197: MPIDI_FUNC_ENTER(MPID_STATE_MPIDI_CH3U_REQUEST_LOAD_SEND_IOV); 238: #####: 198: MPIU_Assert(sreq->dev.segment_ptr != NULL); 241: call 2 never executed 242: call 3 never executed 243: #####: 199: last = sreq->dev.segment_size; 245: -: 201: "pre-pv: first=" MPIDI_MSG_SZ_FMT ", last=" MPIDI_MSG_SZ_FMT ", iov_n=%d", 246: -: 202: sreq->dev.segment_first, last, *iov_n)); 247: #####: 203: MPIU_Assert(sreq->dev.segment_first < last); 250: call 2 never executed 251: call 3 never executed 252: #####: 204: MPIU_Assert(last > 0); 255: call 2 never executed 256: call 3 never executed 257: #####: 205: MPIU_Assert(*iov_n > 0 && *iov_n <= MPID_IOV_LIMIT); 260: call 2 never executed 261: call 3 never executed 262: #####: 206: MPID_Segment_pack_vector(sreq->dev.segment_ptr, sreq->dev.segment_first, 266: -: 209: "post-pv: first=" MPIDI_MSG_SZ_FMT ", last=" MPIDI_MSG_SZ_FMT ", iov_n=%d", 267: -: 210: sreq->dev.segment_first, last, *iov_n)); 268: #####: 211: MPIU_Assert(*iov_n > 0 && *iov_n <= MPID_IOV_LIMIT); 272: call 3 never executed 273: -: 212: 274: #####: 213: if (last == sreq->dev.segment_size) 277: -: 214: { 278: -: 215: MPIU_DBG_MSG(CH3_CHANNEL,VERBOSE,"remaining data loaded into IOV"); 279: #####: 216: sreq->dev.OnDataAvail = sreq->dev.OnFinal; 280: -: 217: } 281: #####: 218: else if ((last - sreq->dev.segment_first) / *iov_n >= MPIDI_IOV_DENSITY_MIN) 284: -: 219: { 285: -: 220: MPIU_DBG_MSG(CH3_CHANNEL,VERBOSE,"more data loaded into IOV"); 286: #####: 221: sreq->dev.segment_first = last; 287: #####: 222: sreq->dev.OnDataAvail = MPIDI_CH3_ReqHandler_SendReloadIOV; 294: -: 229: MPIU_DBG_MSG(CH3_CHANNEL,VERBOSE,"low density. using SRBuf."); 295: -: 230: 296: #####: 231: data_sz = sreq->dev.segment_size - sreq->dev.segment_first; 297: #####: 232: if (!MPIDI_Request_get_srbuf_flag(sreq)) 299: branch 1 never executed 300: -: 233: { 301: #####: 234: MPIDI_CH3U_SRBuf_alloc(sreq, data_sz); 320: -: 245: } 321: -: 246: 322: #####: 247: iov_data_copied = 0; 323: #####: 248: for (i = 0; i < *iov_n; i++) { 324: branch 0 never executed 325: branch 1 never executed 326: #####: 249: MPIU_Memcpy((char*) sreq->dev.tmpbuf + iov_data_copied, 354: call 27 never executed 355: -: 250: iov[i].MPID_IOV_BUF, iov[i].MPID_IOV_LEN); 356: #####: 251: iov_data_copied += iov[i].MPID_IOV_LEN; 357: -: 252: } 358: #####: 253: sreq->dev.segment_first = last; 359: -: 254: 360: #####: 255: last = (data_sz <= sreq->dev.tmpbuf_sz - iov_data_copied) ? 366: -: 259: "pre-pack: first=" MPIDI_MSG_SZ_FMT ", last=" MPIDI_MSG_SZ_FMT, 367: -: 260: sreq->dev.segment_first, last)); 368: #####: 261: MPID_Segment_pack(sreq->dev.segment_ptr, sreq->dev.segment_first, 372: -: 264: "post-pack: first=" MPIDI_MSG_SZ_FMT ", last=" MPIDI_MSG_SZ_FMT, 373: -: 265: sreq->dev.segment_first, last)); 374: #####: 266: iov[0].MPID_IOV_BUF = (MPID_IOV_BUF_CAST)sreq->dev.tmpbuf; 375: #####: 267: iov[0].MPID_IOV_LEN = last - sreq->dev.segment_first + iov_data_copied; 376: #####: 268: *iov_n = 1; 377: #####: 269: if (last == sreq->dev.segment_size) 380: -: 270: { 381: -: 271: MPIU_DBG_MSG(CH3_CHANNEL,VERBOSE,"remaining data packed into SRBuf"); 382: #####: 272: sreq->dev.OnDataAvail = sreq->dev.OnFinal; 385: -: 275: { 386: -: 276: MPIU_DBG_MSG(CH3_CHANNEL,VERBOSE,"more data packed into SRBuf"); 387: #####: 277: sreq->dev.segment_first = last; 388: #####: 278: sreq->dev.OnDataAvail = MPIDI_CH3_ReqHandler_SendReloadIOV; 390: -: 280: } 391: -: 281: 392: #####: 282: fn_exit: 393: #####: 282: fn_exit: 394: #####: 284: return mpi_errno; 651: -: 468: MPIU_DBG_MSG(CH3_CHANNEL,VERBOSE, 652: -: 469: "updating rreq to read overflow data into the SRBuf and reload IOV"); 653: #####: 470: rreq->dev.iov[0].MPID_IOV_LEN = rreq->dev.tmpbuf_sz; 654: #####: 471: rreq->dev.segment_first += rreq->dev.tmpbuf_sz; 655: #####: 472: rreq->dev.OnDataAvail = MPIDI_CH3_ReqHandler_ReloadIOV; 748: -: 549: Note: memmove() is used since the data regions could 749: -: 550: overlap. */ 750: #####: 551: memmove(rreq->dev.tmpbuf, (char *) rreq->dev.tmpbuf + 37 line(s) not covered by tests in src/mpid/ch3/src/ch3u_request.c.gcov Uncovered lines in src/mpid/ch3/src/ch3u_rma_ops.c.gcov 274: -: 154: 275: -: 155: /* poke the progress engine until the two are equal */ 276: #####: 156: MPID_Progress_start(&progress_state); 277: #####: 157: while (total_pt_rma_puts_accs != (*win_ptr)->my_pt_rma_puts_accs) 279: branch 1 never executed 280: -: 158: { 281: #####: 159: mpi_errno = MPID_Progress_wait(&progress_state); 381: branch 1 taken 100% 382: -: 220: { 383: #####: 221: goto fn_exit; 556: branch 1 taken 100% 557: -: 323: { 558: #####: 324: goto fn_exit; 736: branch 1 taken 100% 737: -: 431: { 738: #####: 432: goto fn_exit; 775: branch 1 taken 100% 776: -: 453: { 777: #####: 454: mpi_errno = MPIR_Localcopy(origin_addr, origin_count, 780: -: 456: (char *) win_ptr->base + win_ptr->disp_unit * 781: -: 457: target_disp, target_count, target_datatype); 782: #####: 458: goto fn_exit; 866: -: 510: /* target predefined type, origin derived datatype */ 867: -: 511: 868: #####: 512: (*uop)(tmp_buf, (char *) win_ptr->base + win_ptr->disp_unit * 9 line(s) not covered by tests in src/mpid/ch3/src/ch3u_rma_ops.c.gcov Uncovered lines in src/mpid/ch3/src/ch3u_rma_sync.c.gcov 89: branch 1 taken 100% 90: -: 73: { 91: #####: 74: MPID_Progress_start(&progress_state); 92: #####: 75: while (win_ptr->current_lock_type != MPID_LOCK_NONE) 95: -: 76: { 96: -: 77: /* poke the progress engine */ 97: #####: 78: mpi_errno = MPID_Progress_wait(&progress_state); 1359: -: 840: 1360: -: 841: /* poke the progress engine */ 1361: #####: 842: MPID_Progress_start(&progress_state); 1362: #####: 843: while (win_ptr->current_lock_type != MPID_LOCK_NONE) 1364: branch 1 never executed 1365: -: 844: { 1366: #####: 845: mpi_errno = MPID_Progress_wait(&progress_state); 1535: -: 957: 1536: -: 958: /* poke the progress engine */ 1537: #####: 959: MPID_Progress_start(&progress_state); 1538: #####: 960: while (win_ptr->current_lock_type != MPID_LOCK_NONE) 1540: branch 1 never executed 1541: -: 961: { 1542: #####: 962: mpi_errno = MPID_Progress_wait(&progress_state); 2169: -: 1368: MPID_Progress_state progress_state; 2170: -: 1369: 2171: #####: 1370: MPID_Progress_start(&progress_state); 2172: #####: 1371: while (MPIDI_CH3I_Try_acquire_win_lock(win_ptr, lock_type) == 0) 2175: branch 2 never executed 2176: -: 1372: { 2177: #####: 1373: mpi_errno = MPID_Progress_wait(&progress_state); 2401: branch 1 taken 100% 2402: -: 1518: { 2403: #####: 1519: MPID_Request_release(req); 2541: branch 0 taken 0% 2542: branch 1 taken 100% (fallthrough) 2543: #####: 1625: curr_ptr = curr_ptr->next; 2547: branch 1 taken 100% 2548: -: 1628: /* last operation is a get. no need to wait for rma done pkt */ 2549: #####: 1629: *wait_for_rma_done_pkt = 0; 2564: branch 0 taken 0% (fallthrough) 2565: branch 1 taken 100% 2566: #####: 1642: *wait_for_rma_done_pkt = 0; 2567: #####: 1643: *curr_ptr_ptr = curr_ptr->next; 2568: #####: 1644: tmp_ptr = curr_ptr; 2569: #####: 1645: while (curr_ptr->next != NULL) 2570: branch 0 never executed 2571: branch 1 never executed 2572: #####: 1646: curr_ptr = curr_ptr->next; 2573: #####: 1647: curr_ptr->next = tmp_ptr; 2574: #####: 1648: tmp_ptr->next = NULL; 2575: #####: 1649: break; 2869: -: 1848: } 2870: -: 1849: 2871: #####: 1850: else if (rma_op->type == MPIDI_RMA_ACCUMULATE) { 2872: branch 0 never executed 2873: branch 1 never executed 2874: #####: 1851: MPIDI_Pkt_init(lock_accum_unlock_pkt, MPIDI_CH3_PKT_LOCK_ACCUM_UNLOCK); 2875: #####: 1852: lock_accum_unlock_pkt->target_win_handle = 2876: -: 1853: win_ptr->all_win_handles[rma_op->target_rank]; 2877: #####: 1854: lock_accum_unlock_pkt->source_win_handle = win_ptr->handle; 2878: #####: 1855: lock_accum_unlock_pkt->lock_type = lock_type; 2879: -: 1856: 2880: #####: 1857: lock_accum_unlock_pkt->addr = 2882: -: 1859: win_ptr->disp_units[rma_op->target_rank] * rma_op->target_disp; 2883: -: 1860: 2884: #####: 1861: lock_accum_unlock_pkt->count = rma_op->target_count; 2885: #####: 1862: lock_accum_unlock_pkt->datatype = rma_op->target_datatype; 2886: #####: 1863: lock_accum_unlock_pkt->op = rma_op->op; 2887: -: 1864: 2888: #####: 1865: iov[0].MPID_IOV_BUF = (MPID_IOV_BUF_CAST) lock_accum_unlock_pkt; 2889: #####: 1866: iov[0].MPID_IOV_LEN = sizeof(*lock_accum_unlock_pkt); 2917: branch 1 taken 100% 2918: -: 1874: { 2919: #####: 1875: origin_dt_derived = 1; 2920: #####: 1876: MPID_Datatype_get_ptr(rma_op->origin_datatype, origin_dtp); 2962: -: 1902: /* derived datatype on origin */ 2963: -: 1903: 2964: #####: 1904: iovcnt = 1; 2965: -: 1905: 2966: #####: 1906: request = MPID_Request_create(); 2967: call 0 never executed 2968: #####: 1907: if (request == NULL) { 2973: -: 1909: } 2974: -: 1910: 2975: #####: 1911: MPIU_Object_set_ref(request, 2); 2976: #####: 1912: request->kind = MPID_REQUEST_SEND; 2977: -: 1913: 2978: #####: 1914: request->dev.datatype_ptr = origin_dtp; 2980: -: 1916: is freed. */ 2981: -: 1917: 2982: #####: 1918: request->dev.segment_ptr = MPID_Segment_alloc( ); 2983: call 0 never executed 2984: #####: 1919: MPIU_ERR_CHKANDJUMP1(request->dev.segment_ptr == NULL, mpi_errno, MPI_ERR_OTHER, "**nomem", "**nomem %s", "MPID_Segment_alloc"); 2987: call 2 never executed 2988: -: 1920: 2989: #####: 1921: MPID_Segment_init(rma_op->origin_addr, rma_op->origin_count, 2991: -: 1922: rma_op->origin_datatype, 2992: -: 1923: request->dev.segment_ptr, 0); 2993: #####: 1924: request->dev.segment_first = 0; 2994: #####: 1925: request->dev.segment_size = rma_op->origin_count * origin_type_size; 2995: -: 1926: 2996: #####: 1927: request->dev.OnFinal = 0; 2997: #####: 1928: request->dev.OnDataAvail = 0; 2998: -: 1929: 2999: #####: 1930: mpi_errno = vc->sendNoncontig_fn(vc, request, iov[0].MPID_IOV_BUF, iov[0].MPID_IOV_LEN); 3031: branch 0 taken 0% (fallthrough) 3032: branch 1 taken 100% 3033: #####: 1943: if (*(request->cc_ptr) != 0) 3037: -: 1945: MPID_Progress_state progress_state; 3038: -: 1946: 3039: #####: 1947: MPID_Progress_start(&progress_state); 3040: #####: 1948: while (*(request->cc_ptr) != 0) 3042: branch 1 never executed 3043: -: 1949: { 3044: #####: 1950: mpi_errno = MPID_Progress_wait(&progress_state); 3058: -: 1960: } 3059: -: 1961: 3060: #####: 1962: mpi_errno = request->status.MPI_ERROR; 3061: #####: 1963: if (mpi_errno != MPI_SUCCESS) { 3066: -: 1965: } 3067: -: 1966: 3068: #####: 1967: MPID_Request_release(request); 3152: branch 1 taken 100% 3153: -: 2024: { 3154: #####: 2025: MPID_Datatype_get_ptr(rreq->dev.datatype, dtp); 3158: branch 3 never executed 3159: call 4 never executed 3160: #####: 2026: rreq->dev.datatype_ptr = dtp; 3202: branch 1 taken 100% 3203: -: 2056: { 3204: #####: 2057: MPID_Request_release(sreq); 3309: branch 1 taken 100% 3310: -: 2129: { 3311: #####: 2130: MPID_Request_release(req); 3430: branch 0 taken 0% (fallthrough) 3431: branch 1 taken 100% 3432: #####: 2208: MPIDI_CH3U_Request_complete( req ); 3445: branch 12 never executed 3446: call 13 never executed 3447: #####: 2209: *buflen = sizeof(MPIDI_CH3_Pkt_t); 3448: #####: 2210: *rreqp = NULL; 3449: #####: 2211: goto fn_exit; 3591: branch 1 taken 100% 3592: -: 2273: { 3593: #####: 2274: *rreqp = NULL; 3594: #####: 2275: goto fn_exit; 3597: -: 2278: else 3598: -: 2279: { 3599: #####: 2280: req->dev.iov[0].MPID_IOV_BUF = (MPID_IOV_BUF_CAST)((char *)req->dev.dtype_info); 3600: #####: 2281: req->dev.iov[0].MPID_IOV_LEN = sizeof(MPIDI_RMA_dtype_info); 3601: #####: 2282: req->dev.iov[1].MPID_IOV_BUF = (MPID_IOV_BUF_CAST)req->dev.dataloop; 3602: #####: 2283: req->dev.iov[1].MPID_IOV_LEN = put_pkt->dataloop_size; 3603: #####: 2284: req->dev.iov_count = 2; 3604: -: 2285: 3605: #####: 2286: *buflen = sizeof(MPIDI_CH3_Pkt_t); 3606: -: 2287: 3607: #####: 2288: req->dev.OnDataAvail = MPIDI_CH3_ReqHandler_PutRespDerivedDTComplete; 3829: -: 2414: else 3830: -: 2415: { 3831: #####: 2416: req->dev.iov[0].MPID_IOV_BUF = (MPID_IOV_BUF_CAST)req->dev.dtype_info; 3832: #####: 2417: req->dev.iov[0].MPID_IOV_LEN = sizeof(MPIDI_RMA_dtype_info); 3833: #####: 2418: req->dev.iov[1].MPID_IOV_BUF = (MPID_IOV_BUF_CAST)req->dev.dataloop; 3834: #####: 2419: req->dev.iov[1].MPID_IOV_LEN = get_pkt->dataloop_size; 3835: #####: 2420: req->dev.iov_count = 2; 3836: -: 2421: 3837: #####: 2422: *buflen = sizeof(MPIDI_CH3_Pkt_t); 3838: #####: 2423: *rreqp = req; 3958: branch 0 taken 0% (fallthrough) 3959: branch 1 taken 100% 3960: #####: 2501: MPIDI_CH3U_Request_complete(req); 3973: branch 12 never executed 3974: call 13 never executed 3975: #####: 2502: *buflen = sizeof(MPIDI_CH3_Pkt_t); 3976: #####: 2503: *rreqp = NULL; 4114: branch 1 taken 100% 4115: -: 2561: { 4116: #####: 2562: *rreqp = NULL; 4117: #####: 2563: goto fn_exit; 4120: -: 2566: else 4121: -: 2567: { 4122: #####: 2568: req->dev.iov[0].MPID_IOV_BUF = (MPID_IOV_BUF_CAST)req->dev.dtype_info; 4123: #####: 2569: req->dev.iov[0].MPID_IOV_LEN = sizeof(MPIDI_RMA_dtype_info); 4124: #####: 2570: req->dev.iov[1].MPID_IOV_BUF = (MPID_IOV_BUF_CAST)req->dev.dataloop; 4125: #####: 2571: req->dev.iov[1].MPID_IOV_LEN = accum_pkt->dataloop_size; 4126: #####: 2572: req->dev.iov_count = 2; 4127: #####: 2573: *buflen = sizeof(MPIDI_CH3_Pkt_t); 4292: -: 2704: MPIDI_Win_lock_queue *curr_ptr, *prev_ptr, *new_ptr; 4293: -: 2705: 4294: #####: 2706: new_ptr = (MPIDI_Win_lock_queue *) MPIU_Malloc(sizeof(MPIDI_Win_lock_queue)); 4295: call 0 never executed 4296: #####: 2707: if (!new_ptr) { 4301: -: 2709: } 4302: -: 2710: 4303: #####: 2711: new_ptr->pt_single_op = (MPIDI_PT_single_op *) MPIU_Malloc(sizeof(MPIDI_PT_single_op)); 4304: call 0 never executed 4305: #####: 2712: if (new_ptr->pt_single_op == NULL) { 4312: -: 2716: /* FIXME: MT: The queuing may need to be done atomically. */ 4313: -: 2717: 4314: #####: 2718: curr_ptr = (MPIDI_Win_lock_queue *) win_ptr->lock_queue; 4315: #####: 2719: prev_ptr = curr_ptr; 4316: #####: 2720: while (curr_ptr != NULL) 4318: branch 1 never executed 4319: -: 2721: { 4320: #####: 2722: prev_ptr = curr_ptr; 4321: #####: 2723: curr_ptr = curr_ptr->next; 4322: -: 2724: } 4323: -: 2725: 4324: #####: 2726: if (prev_ptr != NULL) 4325: branch 0 never executed 4326: branch 1 never executed 4327: #####: 2727: prev_ptr->next = new_ptr; 4328: -: 2728: else 4329: #####: 2729: win_ptr->lock_queue = new_ptr; 4330: -: 2730: 4331: #####: 2731: new_ptr->next = NULL; 4332: #####: 2732: new_ptr->lock_type = lock_put_unlock_pkt->lock_type; 4333: #####: 2733: new_ptr->source_win_handle = lock_put_unlock_pkt->source_win_handle; 4334: #####: 2734: new_ptr->vc = vc; 4335: -: 2735: 4336: #####: 2736: new_ptr->pt_single_op->type = MPIDI_RMA_PUT; 4337: #####: 2737: new_ptr->pt_single_op->addr = lock_put_unlock_pkt->addr; 4338: #####: 2738: new_ptr->pt_single_op->count = lock_put_unlock_pkt->count; 4339: #####: 2739: new_ptr->pt_single_op->datatype = lock_put_unlock_pkt->datatype; 4340: -: 2740: /* allocate memory to receive the data */ 4341: #####: 2741: new_ptr->pt_single_op->data = MPIU_Malloc(req->dev.recv_data_sz); 4342: call 0 never executed 4343: #####: 2742: if (new_ptr->pt_single_op->data == NULL) { 4348: -: 2744: } 4349: -: 2745: 4350: #####: 2746: new_ptr->pt_single_op->data_recd = 0; 4351: -: 2747: 4352: #####: 2748: MPIDI_Request_set_type(req, MPIDI_REQUEST_TYPE_PT_SINGLE_PUT); 4353: #####: 2749: req->dev.OnDataAvail = MPIDI_CH3_ReqHandler_SinglePutAccumComplete; 4354: #####: 2750: req->dev.user_buf = new_ptr->pt_single_op->data; 4355: #####: 2751: req->dev.lock_queue_entry = new_ptr; 4359: branch 0 taken 0% (fallthrough) 4360: branch 1 taken 100% 4361: #####: 2755: *buflen = sizeof(MPIDI_CH3_Pkt_t); 4362: #####: 2756: MPIDI_CH3U_Request_complete(req); 4375: branch 12 never executed 4376: call 13 never executed 4377: #####: 2757: *rreqp = NULL; 4514: -: 2863: /* FIXME: MT: This may need to be done atomically. */ 4515: -: 2864: 4516: #####: 2865: curr_ptr = (MPIDI_Win_lock_queue *) win_ptr->lock_queue; 4517: #####: 2866: prev_ptr = curr_ptr; 4518: #####: 2867: while (curr_ptr != NULL) 4520: branch 1 never executed 4521: -: 2868: { 4522: #####: 2869: prev_ptr = curr_ptr; 4523: #####: 2870: curr_ptr = curr_ptr->next; 4524: -: 2871: } 4525: -: 2872: 4526: #####: 2873: new_ptr = (MPIDI_Win_lock_queue *) MPIU_Malloc(sizeof(MPIDI_Win_lock_queue)); 4527: call 0 never executed 4528: #####: 2874: if (!new_ptr) { 4532: call 0 never executed 4533: -: 2876: } 4534: #####: 2877: new_ptr->pt_single_op = (MPIDI_PT_single_op *) MPIU_Malloc(sizeof(MPIDI_PT_single_op)); 4535: call 0 never executed 4536: #####: 2878: if (new_ptr->pt_single_op == NULL) { 4541: -: 2880: } 4542: -: 2881: 4543: #####: 2882: if (prev_ptr != NULL) 4544: branch 0 never executed 4545: branch 1 never executed 4546: #####: 2883: prev_ptr->next = new_ptr; 4547: -: 2884: else 4548: #####: 2885: win_ptr->lock_queue = new_ptr; 4549: -: 2886: 4550: #####: 2887: new_ptr->next = NULL; 4551: #####: 2888: new_ptr->lock_type = lock_get_unlock_pkt->lock_type; 4552: #####: 2889: new_ptr->source_win_handle = lock_get_unlock_pkt->source_win_handle; 4553: #####: 2890: new_ptr->vc = vc; 4554: -: 2891: 4555: #####: 2892: new_ptr->pt_single_op->type = MPIDI_RMA_GET; 4556: #####: 2893: new_ptr->pt_single_op->addr = lock_get_unlock_pkt->addr; 4557: #####: 2894: new_ptr->pt_single_op->count = lock_get_unlock_pkt->count; 4558: #####: 2895: new_ptr->pt_single_op->datatype = lock_get_unlock_pkt->datatype; 4559: #####: 2896: new_ptr->pt_single_op->data = NULL; 4560: #####: 2897: new_ptr->pt_single_op->request_handle = lock_get_unlock_pkt->request_handle; 4561: #####: 2898: new_ptr->pt_single_op->data_recd = 1; 4577: -: 2914: MPIDI_msg_sz_t *buflen, MPID_Request **rreqp ) 4578: function MPIDI_CH3_PktHandler_LockAccumUnlock called 0 returned 0% blocks executed 0% 4579: #####: 2915:{ 4580: -: 2916: MPIDI_CH3_Pkt_lock_accum_unlock_t * lock_accum_unlock_pkt = 4581: #####: 2917: &pkt->lock_accum_unlock; 4582: #####: 2918: MPID_Request *req = NULL; 4583: #####: 2919: MPID_Win *win_ptr = NULL; 4584: #####: 2920: MPIDI_Win_lock_queue *curr_ptr = NULL, *prev_ptr = NULL, *new_ptr = NULL; 4585: -: 2921: int type_size; 4586: -: 2922: int complete; 4587: #####: 2923: char *data_buf = NULL; 4588: -: 2924: MPIDI_msg_sz_t data_len; 4589: #####: 2925: int mpi_errno = MPI_SUCCESS; 4597: -: 2933: data into a temporary buffer first */ 4598: -: 2934: 4599: #####: 2935: data_len = *buflen - sizeof(MPIDI_CH3_Pkt_t); 4600: #####: 2936: data_buf = (char *)pkt + sizeof(MPIDI_CH3_Pkt_t); 4601: -: 2937: 4602: #####: 2938: req = MPID_Request_create(); 4603: call 0 never executed 4604: #####: 2939: MPIU_Object_set_ref(req, 1); 4605: -: 2940: 4606: #####: 2941: req->dev.datatype = lock_accum_unlock_pkt->datatype; 4607: #####: 2942: MPID_Datatype_get_size_macro(lock_accum_unlock_pkt->datatype, type_size); 4611: branch 3 never executed 4612: call 4 never executed 4613: #####: 2943: req->dev.recv_data_sz = type_size * lock_accum_unlock_pkt->count; 4614: #####: 2944: req->dev.user_count = lock_accum_unlock_pkt->count; 4615: #####: 2945: req->dev.target_win_handle = lock_accum_unlock_pkt->target_win_handle; 4617: -: 2947: /* queue the information */ 4618: -: 2948: 4619: #####: 2949: new_ptr = (MPIDI_Win_lock_queue *) MPIU_Malloc(sizeof(MPIDI_Win_lock_queue)); 4620: call 0 never executed 4621: #####: 2950: if (!new_ptr) { 4626: -: 2952: } 4627: -: 2953: 4628: #####: 2954: new_ptr->pt_single_op = (MPIDI_PT_single_op *) MPIU_Malloc(sizeof(MPIDI_PT_single_op)); 4629: call 0 never executed 4630: #####: 2955: if (new_ptr->pt_single_op == NULL) { 4635: -: 2957: } 4636: -: 2958: 4637: #####: 2959: MPID_Win_get_ptr(lock_accum_unlock_pkt->target_win_handle, win_ptr); 4643: -: 2961: /* FIXME: MT: The queuing may need to be done atomically. */ 4644: -: 2962: 4645: #####: 2963: curr_ptr = (MPIDI_Win_lock_queue *) win_ptr->lock_queue; 4646: #####: 2964: prev_ptr = curr_ptr; 4647: #####: 2965: while (curr_ptr != NULL) 4649: branch 1 never executed 4650: -: 2966: { 4651: #####: 2967: prev_ptr = curr_ptr; 4652: #####: 2968: curr_ptr = curr_ptr->next; 4653: -: 2969: } 4654: -: 2970: 4655: #####: 2971: if (prev_ptr != NULL) 4656: branch 0 never executed 4657: branch 1 never executed 4658: #####: 2972: prev_ptr->next = new_ptr; 4659: -: 2973: else 4660: #####: 2974: win_ptr->lock_queue = new_ptr; 4661: -: 2975: 4662: #####: 2976: new_ptr->next = NULL; 4663: #####: 2977: new_ptr->lock_type = lock_accum_unlock_pkt->lock_type; 4664: #####: 2978: new_ptr->source_win_handle = lock_accum_unlock_pkt->source_win_handle; 4665: #####: 2979: new_ptr->vc = vc; 4666: -: 2980: 4667: #####: 2981: new_ptr->pt_single_op->type = MPIDI_RMA_ACCUMULATE; 4668: #####: 2982: new_ptr->pt_single_op->addr = lock_accum_unlock_pkt->addr; 4669: #####: 2983: new_ptr->pt_single_op->count = lock_accum_unlock_pkt->count; 4670: #####: 2984: new_ptr->pt_single_op->datatype = lock_accum_unlock_pkt->datatype; 4671: #####: 2985: new_ptr->pt_single_op->op = lock_accum_unlock_pkt->op; 4672: -: 2986: /* allocate memory to receive the data */ 4673: #####: 2987: new_ptr->pt_single_op->data = MPIU_Malloc(req->dev.recv_data_sz); 4674: call 0 never executed 4675: #####: 2988: if (new_ptr->pt_single_op->data == NULL) { 4680: -: 2990: } 4681: -: 2991: 4682: #####: 2992: new_ptr->pt_single_op->data_recd = 0; 4683: -: 2993: 4684: #####: 2994: MPIDI_Request_set_type(req, MPIDI_REQUEST_TYPE_PT_SINGLE_ACCUM); 4685: #####: 2995: req->dev.user_buf = new_ptr->pt_single_op->data; 4686: #####: 2996: req->dev.lock_queue_entry = new_ptr; 4687: -: 2997: 4688: #####: 2998: *rreqp = req; 4689: #####: 2999: if (req->dev.recv_data_sz == 0) { 4690: branch 0 never executed 4691: branch 1 never executed 4692: #####: 3000: *buflen = sizeof(MPIDI_CH3_Pkt_t); 4693: #####: 3001: MPIDI_CH3U_Request_complete(req); 4706: branch 12 never executed 4707: call 13 never executed 4708: #####: 3002: *rreqp = NULL; 4709: -: 3003: } 4710: -: 3004: else { 4711: #####: 3005: mpi_errno = MPIDI_CH3U_Receive_data_found(req, data_buf, &data_len, 4715: -: 3008: post_data_receive reset the handler. There should 4716: -: 3009: be a cleaner way to do this */ 4717: #####: 3010: if (!req->dev.OnDataAvail) { 4718: branch 0 never executed 4719: branch 1 never executed 4720: #####: 3011: req->dev.OnDataAvail = MPIDI_CH3_ReqHandler_SinglePutAccumComplete; 4721: -: 3012: } 4722: #####: 3013: if (mpi_errno != MPI_SUCCESS) { 4728: -: 3016: } 4729: -: 3017: /* return the number of bytes processed in this function */ 4730: #####: 3018: *buflen = data_len + sizeof(MPIDI_CH3_Pkt_t); 4731: -: 3019: 4732: #####: 3020: if (complete) 4734: branch 1 never executed 4735: -: 3021: { 4736: #####: 3022: mpi_errno = MPIDI_CH3_ReqHandler_SinglePutAccumComplete(vc, req, &complete); 4737: call 0 never executed 4738: #####: 3023: if (complete) 4740: branch 1 never executed 4741: -: 3024: { 4742: #####: 3025: *rreqp = NULL; 4746: -: 3027: } 4747: -: 3028: } 4748: #####: 3031: return mpi_errno; 4794: branch 0 taken 0% (fallthrough) 4795: branch 1 taken 100% 4796: #####: 3067: MPIDI_CH3U_Request_complete( req ); 4809: branch 12 never executed 4810: call 13 never executed 4811: #####: 3068: *buflen = sizeof(MPIDI_CH3_Pkt_t); 4812: #####: 3069: *rreqp = NULL; 207 line(s) not covered by tests in src/mpid/ch3/src/ch3u_rma_sync.c.gcov Uncovered lines in src/mpid/ch3/src/ch3u_rndv.c.gcov 28: -: 23: int tag, MPID_Comm * comm, int context_offset ) 29: function MPIDI_CH3_RndvSend called 0 returned 0% blocks executed 0% 30: #####: 24:{ 31: -: 25: MPIDI_CH3_Pkt_t upkt; 32: #####: 26: MPIDI_CH3_Pkt_rndv_req_to_send_t * const rts_pkt = &upkt.rndv_req_to_send; 33: -: 27: MPIDI_VC_t * vc; 34: -: 28: MPID_Request * rts_sreq; 35: #####: 29: MPID_Request *sreq =*sreq_p; 36: #####: 30: int mpi_errno = MPI_SUCCESS; 39: -: 33: "sending rndv RTS, data_sz=" MPIDI_MSG_SZ_FMT, data_sz); 40: -: 34: 41: #####: 35: sreq->dev.OnDataAvail = 0; 42: -: 36: 43: #####: 37: sreq->partner_request = NULL; 44: -: 38: 45: #####: 39: MPIDI_Pkt_init(rts_pkt, MPIDI_CH3_PKT_RNDV_REQ_TO_SEND); 46: #####: 40: rts_pkt->match.parts.rank = comm->rank; 47: #####: 41: rts_pkt->match.parts.tag = tag; 48: #####: 42: rts_pkt->match.parts.context_id = comm->context_id + context_offset; 49: #####: 43: rts_pkt->sender_req_id = sreq->handle; 50: #####: 44: rts_pkt->data_sz = data_sz; 51: -: 45: 52: #####: 46: MPIDI_Comm_get_vc_set_active(comm, rank, &vc); 60: -: 52: 61: -: 53: MPIU_THREAD_CS_ENTER(CH3COMM,vc); 62: #####: 54: mpi_errno = MPIU_CALL(MPIDI_CH3,iStartMsg(vc, rts_pkt, sizeof(*rts_pkt), 78: -: 55: &rts_sreq)); 79: -: 56: MPIU_THREAD_CS_EXIT(CH3COMM,vc); 80: #####: 67: if (rts_sreq != NULL) 82: branch 1 never executed 83: -: 68: { 84: #####: 69: if (rts_sreq->status.MPI_ERROR != MPI_SUCCESS) 86: branch 1 never executed 87: -: 70: { 88: #####: 71: MPIU_Object_set_ref(sreq, 0); 89: #####: 72: MPIDI_CH3_Request_destroy(sreq); 90: call 0 never executed 91: #####: 73: *sreq_p = NULL; 92: #####: 73: *sreq_p = NULL; 93: call 0 never executed 94: #####: 75: MPID_Request_release(rts_sreq); 102: -: 76: goto fn_exit; 103: -: 77: } 104: #####: 78: MPID_Request_release(rts_sreq); 118: -: 85: engine, threads, etc.). */ 119: -: 86: 120: #####: 87: fn_exit: 121: -: 88: 122: #####: 89: return mpi_errno; 147: -: 114: MPIDI_msg_sz_t *buflen, MPID_Request **rreqp ) 148: function MPIDI_CH3_PktHandler_RndvReqToSend called 0 returned 0% blocks executed 0% 149: #####: 115:{ 150: -: 116: MPID_Request * rreq; 151: -: 117: int found; 152: #####: 118: MPIDI_CH3_Pkt_rndv_req_to_send_t * rts_pkt = &pkt->rndv_req_to_send; 153: #####: 119: int mpi_errno = MPI_SUCCESS; 162: -: 128: "ReceivedRndv"); 163: -: 129: 164: #####: 130: rreq = MPIDI_CH3U_Recvq_FDP_or_AEU(&rts_pkt->match, &found); 165: call 0 never executed 166: #####: 131: MPIU_ERR_CHKANDJUMP1(!rreq, mpi_errno,MPI_ERR_OTHER, "**nomemreq", "**nomemuereq %d", MPIDI_CH3U_Recvq_count_unexp()); 170: call 3 never executed 171: -: 132: 172: #####: 133: set_request_info(rreq, rts_pkt, MPIDI_REQUEST_RNDV_MSG); 173: -: 134: 174: #####: 135: *buflen = sizeof(MPIDI_CH3_Pkt_t); 175: -: 136: 176: #####: 137: if (found) 180: -: 139: MPID_Request * cts_req; 181: -: 140: MPIDI_CH3_Pkt_t upkt; 182: #####: 141: MPIDI_CH3_Pkt_rndv_clr_to_send_t * cts_pkt = &upkt.rndv_clr_to_send; 188: -: 147: 189: -: 148: MPIU_DBG_MSG(CH3_OTHER,VERBOSE,"sending rndv CTS packet"); 190: #####: 149: MPIDI_Pkt_init(cts_pkt, MPIDI_CH3_PKT_RNDV_CLR_TO_SEND); 191: #####: 150: cts_pkt->sender_req_id = rts_pkt->sender_req_id; 192: #####: 151: cts_pkt->receiver_req_id = rreq->handle; 194: -: 153: /* FIXME: is that a ch3 or an mpid critical section? */ 195: -: 154: /* MPIU_THREAD_CS_ENTER(CH3COMM,vc); */ 196: #####: 155: mpi_errno = MPIU_CALL(MPIDI_CH3,iStartMsg(vc, cts_pkt, 198: -: 156: sizeof(*cts_pkt), &cts_req)); 199: -: 157: /* MPIU_THREAD_CS_EXIT(CH3COMM,vc); */ 200: #####: 158: if (mpi_errno != MPI_SUCCESS) { 205: -: 160: "**ch3|ctspkt"); 206: -: 161: } 207: #####: 162: if (cts_req != NULL) { 208: branch 0 never executed 209: branch 1 never executed 210: #####: 163: MPID_Request_release(cts_req); 232: -: 178: * should only be called if that counter is greater than zero. 233: -: 179: */ 234: #####: 180: MPIDI_CH3_Progress_signal_completion(); 240: -: 181: } 241: -: 182: 242: #####: 183: *rreqp = NULL; 243: #####: 183: *rreqp = NULL; 244: -: 184: 245: #####: 186: return mpi_errno; 253: -: 194: MPIDI_msg_sz_t *buflen, MPID_Request **rreqp ) 254: function MPIDI_CH3_PktHandler_RndvClrToSend called 0 returned 0% blocks executed 0% 255: #####: 195:{ 256: #####: 196: MPIDI_CH3_Pkt_rndv_clr_to_send_t * cts_pkt = &pkt->rndv_clr_to_send; 258: -: 198: MPID_Request * rts_sreq; 259: -: 199: MPIDI_CH3_Pkt_t upkt; 260: #####: 200: MPIDI_CH3_Pkt_rndv_send_t * rs_pkt = &upkt.rndv_send; 263: -: 203: MPIDI_msg_sz_t data_sz; 264: -: 204: MPID_Datatype * dt_ptr; 265: #####: 205: int mpi_errno = MPI_SUCCESS; 267: -: 207: MPIU_DBG_MSG(CH3_OTHER,VERBOSE,"received rndv CTS pkt"); 268: -: 208: 269: #####: 209: MPID_Request_get_ptr(cts_pkt->sender_req_id, sreq); 274: -: 210: MPIU_DBG_PRINTF(("received cts, count=%d\n", sreq->dev.user_count)); 275: -: 211: 276: #####: 212: sreq->dev.OnDataAvail = 0; 277: #####: 213: sreq->dev.OnFinal = 0; 284: -: 220: rts_sreq, then MPID_Cancel_send() is responsible for releasing 285: -: 221: the RTS request object. */ 286: #####: 222: MPIDI_Request_fetch_and_clear_rts_sreq(sreq, &rts_sreq); 287: #####: 223: if (rts_sreq != NULL) 289: branch 1 never executed 290: -: 224: { 291: #####: 225: MPID_Request_release(rts_sreq); 299: -: 226: } 300: -: 227: 301: #####: 228: *buflen = sizeof(MPIDI_CH3_Pkt_t); 302: -: 229: 303: #####: 230: MPIDI_Pkt_init(rs_pkt, MPIDI_CH3_PKT_RNDV_SEND); 304: #####: 231: rs_pkt->receiver_req_id = cts_pkt->receiver_req_id; 305: -: 232: 306: #####: 233: MPIDI_Datatype_get_info(sreq->dev.user_count, sreq->dev.datatype, dt_contig, data_sz, dt_ptr, dt_true_lb); 313: call 6 never executed 314: -: 234: 315: #####: 235: if (dt_contig) 323: -: 241: data_sz)); 324: -: 242: 325: #####: 243: iov[0].MPID_IOV_BUF = (MPID_IOV_BUF_CAST)rs_pkt; 326: #####: 244: iov[0].MPID_IOV_LEN = sizeof(*rs_pkt); 327: -: 245: 328: #####: 246: iov[1].MPID_IOV_BUF = (MPID_IOV_BUF_CAST)((char *)sreq->dev.user_buf + dt_true_lb); 329: #####: 247: iov[1].MPID_IOV_LEN = data_sz; 330: -: 248: 331: -: 249: /* MPIU_THREAD_CS_ENTER(CH3COMM,vc);*/ 332: #####: 250: mpi_errno = MPIU_CALL(MPIDI_CH3,iSendv(vc, sreq, iov, 2)); 333: call 0 never executed 334: -: 251: /* MPIU_THREAD_CS_EXIT(CH3COMM,vc); */ 335: #####: 252: MPIU_ERR_CHKANDJUMP(mpi_errno, mpi_errno, MPI_ERR_OTHER, "**ch3|senddata"); 340: -: 254: else 341: -: 255: { 342: #####: 256: sreq->dev.segment_ptr = MPID_Segment_alloc( ); 343: call 0 never executed 344: #####: 257: MPIU_ERR_CHKANDJUMP1((sreq->dev.segment_ptr == NULL), mpi_errno, MPI_ERR_OTHER, "**nomem", "**nomem %s", "MPID_Segment_alloc"); 346: branch 1 never executed 347: call 2 never executed 348: #####: 258: MPID_Segment_init(sreq->dev.user_buf, sreq->dev.user_count, 349: call 0 never executed 350: -: 259: sreq->dev.datatype, sreq->dev.segment_ptr, 0); 351: #####: 260: sreq->dev.segment_first = 0; 352: #####: 261: sreq->dev.segment_size = data_sz; 353: -: 262: 354: -: 263: /*MPIU_THREAD_CS_ENTER(CH3COMM,vc);*/ 355: #####: 264: mpi_errno = vc->sendNoncontig_fn(vc, sreq, rs_pkt, sizeof(*rs_pkt)); 356: call 0 never executed 357: -: 265: /*MPIU_THREAD_CS_EXIT(CH3COMM,vc);*/ 358: #####: 266: MPIU_ERR_CHKANDJUMP(mpi_errno, mpi_errno, MPI_ERR_OTHER, "**ch3|senddata"); 361: call 2 never executed 362: -: 267: } 363: #####: 268: *rreqp = NULL; 364: #####: 268: *rreqp = NULL; 365: -: 269: 366: #####: 271: return mpi_errno; 374: -: 279: MPIDI_msg_sz_t *buflen, MPID_Request **rreqp ) 375: function MPIDI_CH3_PktHandler_RndvSend called 0 returned 0% blocks executed 0% 376: #####: 280:{ 377: #####: 281: MPIDI_CH3_Pkt_rndv_send_t * rs_pkt = &pkt->rndv_send; 378: #####: 282: int mpi_errno = MPI_SUCCESS; 384: -: 288: MPIU_DBG_MSG(CH3_OTHER,VERBOSE,"received rndv send (data) pkt"); 385: -: 289: 386: #####: 290: MPID_Request_get_ptr(rs_pkt->receiver_req_id, req); 390: call 3 never executed 391: -: 291: 392: #####: 292: data_len = ((*buflen - sizeof(MPIDI_CH3_Pkt_t) >= req->dev.recv_data_sz) 393: -: 293: ? req->dev.recv_data_sz : *buflen - sizeof(MPIDI_CH3_Pkt_t)); 394: #####: 294: data_buf = (char *)pkt + sizeof(MPIDI_CH3_Pkt_t); 395: -: 295: 396: #####: 296: if (req->dev.recv_data_sz == 0) { 397: branch 0 never executed 398: branch 1 never executed 399: #####: 297: *buflen = sizeof(MPIDI_CH3_Pkt_t); 400: #####: 298: MPIDI_CH3U_Request_complete(req); 413: branch 12 never executed 414: call 13 never executed 415: #####: 299: *rreqp = NULL; 416: -: 300: } 417: -: 301: else { 418: #####: 302: mpi_errno = MPIDI_CH3U_Receive_data_found(req, data_buf, &data_len, 419: call 0 never executed 420: -: 303: &complete); 421: #####: 304: if (mpi_errno != MPI_SUCCESS) { 427: -: 307: } 428: -: 308: 429: #####: 309: *buflen = sizeof(MPIDI_CH3_Pkt_t) + data_len; 430: -: 310: 431: #####: 311: if (complete) 433: branch 1 never executed 434: -: 312: { 435: #####: 313: MPIDI_CH3U_Request_complete(req); 448: branch 12 never executed 449: call 13 never executed 450: #####: 314: *rreqp = NULL; 452: -: 316: else 453: -: 317: { 454: #####: 318: *rreqp = req; 457: -: 320: } 458: -: 321: 459: #####: 323: return mpi_errno; 470: -: 334:int MPIDI_CH3_RecvRndv( MPIDI_VC_t * vc, MPID_Request *rreq ) 471: function MPIDI_CH3_RecvRndv called 0 returned 0% blocks executed 0% 472: #####: 335:{ 473: #####: 336: int mpi_errno = MPI_SUCCESS; 477: -: 340: MPID_Request * cts_req; 478: -: 341: MPIDI_CH3_Pkt_t upkt; 479: #####: 342: MPIDI_CH3_Pkt_rndv_clr_to_send_t * cts_pkt = &upkt.rndv_clr_to_send; 482: -: 345: "rndv RTS in the request, sending rndv CTS"); 483: -: 346: 484: #####: 347: MPIDI_Pkt_init(cts_pkt, MPIDI_CH3_PKT_RNDV_CLR_TO_SEND); 485: #####: 348: cts_pkt->sender_req_id = rreq->dev.sender_req_id; 486: #####: 349: cts_pkt->receiver_req_id = rreq->handle; 487: -: 350: MPIU_THREAD_CS_ENTER(CH3COMM,vc); 488: #####: 351: mpi_errno = MPIU_CALL(MPIDI_CH3,iStartMsg(vc, cts_pkt, 490: -: 352: sizeof(*cts_pkt), &cts_req)); 491: -: 353: MPIU_THREAD_CS_EXIT(CH3COMM,vc); 492: #####: 354: if (mpi_errno != MPI_SUCCESS) { 496: call 0 never executed 497: -: 356: } 498: #####: 357: if (cts_req != NULL) 503: -: 360: This would avoid our having to decrement the 504: -: 361: reference count on a req we don't want/need. */ 505: #####: 362: MPID_Request_release(cts_req); 514: -: 363: } 515: -: 364: 516: #####: 366: return mpi_errno; 101 line(s) not covered by tests in src/mpid/ch3/src/ch3u_rndv.c.gcov Uncovered lines in src/mpid/ch3/src/ch3u_eager.c.gcov 28: -: 23: void *header, MPIDI_msg_sz_t hdr_sz ) 29: function MPIDI_CH3_SendNoncontig_iov called 0 returned 0% blocks executed 0% 30: #####: 24:{ 31: #####: 25: int mpi_errno = MPI_SUCCESS; 36: -: 30: MPIDI_FUNC_ENTER(MPID_STATE_MPIDI_CH3_SENDNONCONTIG_IOV); 37: -: 31: 38: #####: 32: iov[0].MPID_IOV_BUF = header; 39: #####: 33: iov[0].MPID_IOV_LEN = hdr_sz; 40: -: 34: 41: #####: 35: iov_n = MPID_IOV_LIMIT - 1; 42: -: 36: 43: #####: 37: mpi_errno = MPIDI_CH3U_Request_load_send_iov(sreq, &iov[1], &iov_n); 44: call 0 never executed 45: #####: 38: if (mpi_errno == MPI_SUCCESS) 47: branch 1 never executed 48: -: 39: { 49: #####: 40: iov_n += 1; 51: -: 42: /* Note this routine is invoked withing a CH3 critical section */ 52: -: 43: /* MPIU_THREAD_CS_ENTER(CH3COMM,vc); */ 53: #####: 44: mpi_errno = MPIU_CALL(MPIDI_CH3,iSendv(vc, sreq, iov, iov_n)); 86: -: 70: 87: -: 71: 88: #####: 72: fn_exit: 89: #####: 72: fn_exit: 90: #####: 74: return mpi_errno; 164: 414713: 135: fn_exit: 165: 414713: 136: return mpi_errno; 166: #####: 138: *sreq_p = NULL; 167: #####: 139: goto fn_exit; 929: -: 718: ready_pkt->match.parts.rank, 930: -: 719: ready_pkt->match.parts.tag); 931: #####: 720: rreq->status.count = 0; 932: #####: 721: if (rreq->dev.recv_data_sz > 0) 935: -: 722: { 936: -: 723: /* force read of extra data */ 937: #####: 724: *rreqp = rreq; 938: #####: 725: rreq->dev.segment_first = 0; 939: #####: 726: rreq->dev.segment_size = 0; 940: #####: 727: mpi_errno = MPIDI_CH3U_Request_load_recv_iov(rreq); 941: call 0 never executed 942: #####: 728: if (mpi_errno != MPI_SUCCESS) { 951: -: 734: { 952: -: 735: /* mark data transfer as complete and decrement CC */ 953: #####: 736: MPIDI_CH3U_Request_complete(rreq); 966: branch 12 never executed 967: call 13 never executed 968: #####: 737: *rreqp = NULL; 969: -: 738: } 970: -: 739: /* we didn't process anything but the header in this case */ 971: #####: 740: *buflen = sizeof(MPIDI_CH3_Pkt_t); 23 line(s) not covered by tests in src/mpid/ch3/src/ch3u_eager.c.gcov Uncovered lines in src/mpid/ch3/src/ch3u_eagersync.c.gcov 132: 82596: 107: fn_exit: 133: 82596: 108: return mpi_errno; 134: #####: 110: *sreq_p = NULL; 135: #####: 111: goto fn_exit; 222: branch 1 taken 100% 223: -: 184: { 224: #####: 185: MPID_Request_release(esa_req); 357: -: 267: else 358: -: 268: { 359: #####: 269: *rreqp = rreq; 380: branch 0 taken 0% (fallthrough) 381: branch 1 taken 100% 382: #####: 286: MPID_Request_release(esa_req); 450: -: 311: else 451: -: 312: { 452: #####: 313: *rreqp = rreq; 6 line(s) not covered by tests in src/mpid/ch3/src/ch3u_eagersync.c.gcov Uncovered lines in src/mpid/ch3/src/mpid_abort.c.gcov 55: branch 1 taken 100% 56: -: 48: /* Create a default error message */ 57: #####: 49: error_msg = error_str; 60: -: 52: communicator, so using other than the rank in comm world does not 61: -: 53: identify the process, as the message suggests */ 62: #####: 54: if (comm) 64: branch 1 never executed 65: -: 55: { 66: #####: 56: rank = comm->rank; 68: -: 58: else 69: -: 59: { 70: #####: 60: if (MPIR_Process.comm_world != NULL) 72: branch 1 never executed 73: -: 61: { 74: #####: 62: rank = MPIR_Process.comm_world->rank; 76: -: 64: else 77: -: 65: { 78: #####: 66: rank = -1; 80: -: 68: } 81: -: 69: 82: #####: 70: if (mpi_errno != MPI_SUCCESS) 84: branch 1 never executed 85: -: 71: { 86: #####: 72: MPIR_Err_get_string(mpi_errno, msg, MPI_MAX_ERROR_STRING, NULL); 87: call 0 never executed 88: -: 73: /* FIXME: Not internationalized */ 89: #####: 74: MPIU_Snprintf(error_str, sizeof(error_str), "internal ABORT - process %d: %s", rank, msg); 93: -: 77: { 94: -: 78: /* FIXME: Not internationalized */ 95: #####: 79: MPIU_Snprintf(error_str, sizeof(error_str), "internal ABORT - process %d", rank); 124: call 0 returned 0% 125: -: 105: 126: #####: 106: return MPI_ERR_INTERN; 11 line(s) not covered by tests in src/mpid/ch3/src/mpid_abort.c.gcov All code covered by tests in src/mpid/ch3/src/mpid_cancel_recv.c.gcov Uncovered lines in src/mpid/ch3/src/mpid_cancel_send.c.gcov 42: branch 1 taken 100% 43: -: 31: { 44: #####: 32: goto fn_exit; 57: branch 1 taken 100% 58: -: 44: { 59: #####: 45: goto fn_exit; 76: -: 58: 77: -: 59: MPIU_THREAD_CS_ENTER(MSGQUEUE,); 78: #####: 60: rreq = MPIDI_CH3U_Recvq_FDU(sreq->handle, &sreq->dev.match); 79: call 0 never executed 80: -: 61: MPIU_THREAD_CS_EXIT(MSGQUEUE,); 81: #####: 62: if (rreq) 83: branch 1 never executed 84: -: 63: { 85: #####: 64: MPIU_Assert(rreq->partner_request == sreq); 93: -: 68: sreq->handle, rreq->handle)); 94: -: 69: 95: #####: 70: MPIU_Object_set_ref(rreq, 0); 96: #####: 71: MPIDI_CH3_Request_destroy(rreq); 97: call 0 never executed 98: -: 72: 99: #####: 73: sreq->status.cancelled = TRUE; 100: -: 74: /* no other thread should be waiting on sreq, so it is safe to 101: -: 75: reset ref_count and cc */ 102: #####: 76: sreq->cc = 0; 103: #####: 77: MPIU_Object_set_ref(sreq, 1); 105: -: 79: else 106: -: 80: { 107: #####: 81: sreq->status.cancelled = FALSE; 138: branch 1 taken 100% 139: -: 109: { 140: #####: 110: cancelled = FALSE; 142: -: 112: /* since we attempted to cancel a RTS request, then we are 143: -: 113: responsible for releasing that request */ 144: #####: 114: MPID_Request_release(rts_sreq); 163: -: 115: 164: -: 124: 165: #####: 125: if (cancelled) 167: branch 1 never executed 168: -: 126: { 169: #####: 127: sreq->status.cancelled = TRUE; 170: -: 128: /* no other thread should be waiting on sreq, so it is 171: -: 129: safe to reset ref_count and cc */ 172: #####: 130: sreq->cc = 0; 173: #####: 131: MPIU_Object_set_ref(sreq, 1); 174: #####: 132: goto fn_exit; 183: branch 1 taken 100% 184: -: 140: { 185: #####: 141: sreq->status.cancelled = TRUE; 186: -: 142: /* no other thread should be waiting on sreq, so it is safe to 187: -: 143: reset ref_count and cc */ 188: #####: 144: sreq->cc = 0; 189: #####: 145: MPIU_Object_set_ref(sreq, 1); 190: #####: 146: goto fn_exit; 245: branch 1 taken 100% 246: -: 190: { 247: #####: 191: MPID_Request_release(csr_sreq); 347: branch 1 taken 100% 348: -: 263: { 349: #####: 264: MPID_Request_release(resp_sreq); 24 line(s) not covered by tests in src/mpid/ch3/src/mpid_cancel_send.c.gcov All code covered by tests in src/mpid/ch3/src/mpid_comm_disconnect.c.gcov All code covered by tests in src/mpid/ch3/src/mpid_comm_spawn_multiple.c.gcov All code covered by tests in src/mpid/ch3/src/mpid_finalize.c.gcov Uncovered lines in src/mpid/ch3/src/mpid_get_universe_size.c.gcov 65: branch 1 taken 100% 66: -: 54: { 67: #####: 55: *universe_size = MPIR_UNIVERSE_SIZE_NOT_AVAILABLE; 1 line(s) not covered by tests in src/mpid/ch3/src/mpid_get_universe_size.c.gcov All code covered by tests in src/mpid/ch3/src/mpid_getpname.c.gcov Uncovered lines in src/mpid/ch3/src/mpid_init.c.gcov 79: branch 2 never executed 80: branch 3 never executed 81: #####: 70: MPIDI_Use_pmi2_api = TRUE; 552: -: 441: else { 553: -: 442: /* Create a default pg id */ 554: #####: 443: pg_id = MPIU_Malloc(2); 555: call 0 never executed 556: #####: 444: if (pg_id == NULL) { 560: call 0 never executed 561: -: 446: } 562: #####: 447: MPIU_Strncpy( pg_id, "0", 2 ); 683: -: 541:int MPIDI_CH3I_BCFree( char *bc_val ) 684: function MPIDI_CH3I_BCFree called 0 returned 0% blocks executed 0% 685: #####: 542:{ 686: -: 543: /* */ 687: #####: 544: if (bc_val) { 688: branch 0 never executed 689: branch 1 never executed 690: #####: 545: MPIU_Free( bc_val ); 692: -: 546: } 693: -: 547: 694: #####: 548: return 0; 8 line(s) not covered by tests in src/mpid/ch3/src/mpid_init.c.gcov All code covered by tests in src/mpid/ch3/src/mpid_iprobe.c.gcov Uncovered lines in src/mpid/ch3/src/mpid_irecv.c.gcov 140: -: 104: leave it to the progress engine to handle once the 141: -: 105: entire message has arrived. */ 142: #####: 106: if (HANDLE_GET_KIND(datatype) != HANDLE_KIND_BUILTIN) 144: branch 1 never executed 145: -: 107: { 146: #####: 108: MPID_Datatype_get_ptr(datatype, rreq->dev.datatype_ptr); 150: branch 3 never executed 151: call 4 never executed 152: #####: 109: MPID_Datatype_add_ref(rreq->dev.datatype_ptr); 177: branch 1 taken 100% 178: -: 121: { 179: #####: 122: MPID_Datatype_get_ptr(datatype, rreq->dev.datatype_ptr); 183: branch 3 never executed 184: call 4 never executed 185: #####: 123: MPID_Datatype_add_ref(rreq->dev.datatype_ptr); 5 line(s) not covered by tests in src/mpid/ch3/src/mpid_irecv.c.gcov Uncovered lines in src/mpid/ch3/src/mpid_irsend.c.gcov 71: branch 1 taken 100% 72: -: 52: { 73: #####: 53: MPIU_Object_set_ref(sreq, 1); 74: #####: 54: sreq->cc = 0; 75: #####: 55: goto fn_exit; 161: branch 2 taken 0% (fallthrough) 162: branch 3 taken 100% 163: #####: 119: sreq->dev.datatype_ptr = dt_ptr; 164: #####: 120: MPID_Datatype_add_ref(dt_ptr); 5 line(s) not covered by tests in src/mpid/ch3/src/mpid_irsend.c.gcov Uncovered lines in src/mpid/ch3/src/mpid_isend.c.gcov 192: branch 2 taken 0% (fallthrough) 193: branch 3 taken 100% 194: #####: 146: sreq->dev.datatype_ptr = dt_ptr; 195: #####: 147: MPID_Datatype_add_ref(dt_ptr); 2 line(s) not covered by tests in src/mpid/ch3/src/mpid_isend.c.gcov Uncovered lines in src/mpid/ch3/src/mpid_issend.c.gcov 86: branch 1 taken 100% 87: -: 63: { 88: #####: 64: MPIU_Object_set_ref(sreq, 1); 89: #####: 65: sreq->cc = 0; 90: #####: 66: goto fn_exit; 126: branch 2 taken 0% (fallthrough) 127: branch 3 taken 100% 128: #####: 87: sreq->dev.datatype_ptr = dt_ptr; 129: #####: 88: MPID_Datatype_add_ref(dt_ptr); 153: branch 1 taken 100% 154: -: 106: { 155: #####: 107: sreq->dev.datatype_ptr = dt_ptr; 156: #####: 108: MPID_Datatype_add_ref(dt_ptr); 7 line(s) not covered by tests in src/mpid/ch3/src/mpid_issend.c.gcov Uncovered lines in src/mpid/ch3/src/mpid_port.c.gcov 122: branch 0 taken 0% (fallthrough) 123: branch 1 taken 100% 124: #####: 105: MPIU_CALL(MPIDI_CH3,PortFnsInit( &portFns )); 125: call 0 never executed 126: #####: 106: setupPortFunctions = 0; 320: -: 259: 321: -: 261: /* Everything is used up */ 322: #####: 262: *port_name_tag = -1; 323: #####: 263: mpi_errno = MPI_ERR_OTHER; 324: #####: 264: goto fn_exit; 371: branch 0 taken 0% (fallthrough) 372: branch 1 taken 100% 373: #####: 304: mpi_errno = MPI_SUCCESS; 444: branch 1 taken 100% 445: -: 364: { 446: #####: 365: mpi_errno = MPI_SUCCESS; 7 line(s) not covered by tests in src/mpid/ch3/src/mpid_port.c.gcov All code covered by tests in src/mpid/ch3/src/mpid_probe.c.gcov Uncovered lines in src/mpid/ch3/src/mpid_recv.c.gcov 144: -: 103: We'll leave it to the progress engine to handle once the 145: -: 104: entire message has arrived. */ 146: #####: 105: if (HANDLE_GET_KIND(datatype) != HANDLE_KIND_BUILTIN) 148: branch 1 never executed 149: -: 106: { 150: #####: 107: MPID_Datatype_get_ptr(datatype, rreq->dev.datatype_ptr); 154: branch 3 never executed 155: call 4 never executed 156: #####: 108: MPID_Datatype_add_ref(rreq->dev.datatype_ptr); 3 line(s) not covered by tests in src/mpid/ch3/src/mpid_recv.c.gcov Uncovered lines in src/mpid/ch3/src/mpid_rsend.c.gcov 125: -: 95: { 126: -: 96: MPIDI_Request_set_seqnum(sreq, seqnum); 127: #####: 97: MPIDI_Request_set_type(sreq, MPIDI_REQUEST_TYPE_RSEND); 1 line(s) not covered by tests in src/mpid/ch3/src/mpid_rsend.c.gcov All code covered by tests in src/mpid/ch3/src/mpid_send.c.gcov All code covered by tests in src/mpid/ch3/src/mpid_ssend.c.gcov Uncovered lines in src/mpid/ch3/src/mpid_startall.c.gcov 431: branch 1 taken 100% 432: -: 311: { 433: #####: 315: goto fn_exit; 1 line(s) not covered by tests in src/mpid/ch3/src/mpid_startall.c.gcov Uncovered lines in src/mpid/ch3/src/mpid_vc.c.gcov 104: 1127277: 86: MPIU_CHKPMEM_COMMIT(); 105: 1127277: 88: return mpi_errno; 106: #####: 90: MPIU_CHKPMEM_REAP(); 240: -: 186: vc->pg_rank == MPIDI_Process.my_pg_rank) 241: -: 187: { 242: #####: 188: MPIDI_PG_release_ref(vc->pg, &inuse); 245: call 2 never executed 246: call 3 never executed 247: #####: 189: if (inuse == 0) 249: branch 1 never executed 250: -: 190: { 251: #####: 191: MPIDI_PG_Destroy(vc->pg); 456: branch 0 taken 0% (fallthrough) 457: branch 1 taken 100% 458: #####: 351: *singlePG = 0; 521: branch 1 taken 100% 522: -: 406: /* Internal error. This gpid is unknown on this process */ 523: #####: 407: printf("No matching pg foung for id = %d\n", pgid ); 524: call 0 never executed 525: #####: 408: lpid[i] = -1; 527: call 0 never executed 528: -: 410: "**unknowngpid %d %d", gpid[0], gpid[1] ); 529: #####: 411: return mpi_errno; 544: -: 421: } 545: -: 422: else { 546: #####: 423: lpid[i] = -1; 548: call 0 never executed 549: -: 425: "**unknowngpid %d %d", gpid[0], gpid[1] ); 550: #####: 426: return mpi_errno; 757: -: 594:static int MPIDI_CH3U_VC_FinishPending( MPIDI_VCRT_t *vcrt ) 758: function MPIDI_CH3U_VC_FinishPending called 0 returned 0% blocks executed 0% 759: #####: 595:{ 760: #####: 596: int mpi_errno = MPI_SUCCESS; 770: -: 606: A virtual connection has pending operations if the state 771: -: 607: is not INACTIVE or if the sendq is not null */ 772: #####: 608: nPending = 0; 773: #####: 609: vc = vcrt->vcr_table; 774: #####: 610: size = vcrt->size; 775: -: 611: /* printf( "Size = %d\n", size ); fflush(stdout); */ 776: #####: 612: for (i=0; istate != MPIDI_VC_STATE_INACTIVE) { 781: branch 1 never executed 782: -: 614: /* FIXME: Printf for debugging */ 783: #####: 615: printf ("state for vc[%d] is %d\n", 784: call 0 never executed 785: #####: 616: i, vc[i]->state ); fflush(stdout); 786: call 0 never executed 787: #####: 617: nPending++; 799: -: 629:#endif 800: -: 630: } 801: #####: 631: if (nPending > 0) { 802: branch 0 never executed 803: branch 1 never executed 804: #####: 632: printf( "Panic! %d pending operations!\n", nPending ); 805: call 0 never executed 806: #####: 633: fflush(stdout); 807: call 0 never executed 808: #####: 634: MPIU_Assert( nPending == 0 ); 813: -: 635: } 814: -: 636: else { 815: #####: 637: break; 816: -: 638: } 817: -: 639: 818: #####: 640: MPID_Progress_start(&progress_state); 820: -: 642: "Waiting for %d close operations", 821: -: 643: nPending); 822: #####: 644: mpi_errno = MPID_Progress_wait(&progress_state); 833: call 0 never executed 834: -: 652: MPID_Progress_end(&progress_state); 835: #####: 653: } while(nPending > 0); 837: branch 1 never executed 838: -: 654: 839: #####: 655: fn_exit: 840: #####: 655: fn_exit: 841: #####: 657: return mpi_errno; 860: -: 676:int MPIDI_CH3U_Comm_FinishPending( MPID_Comm *comm_ptr ) 861: function MPIDI_CH3U_Comm_FinishPending called 0 returned 0% blocks executed 0% 862: #####: 677:{ 863: #####: 678: int mpi_errno = MPI_SUCCESS; 866: -: 681: MPIDI_FUNC_ENTER(MPID_STATE_MPIDI_CH3U_COMM_FINISHPENDING); 867: -: 682: 868: #####: 683: mpi_errno = MPIDI_CH3U_VC_FinishPending( comm_ptr->vcrt ); 869: call 0 never executed 870: #####: 684: if (!mpi_errno && comm_ptr->local_vcrt) { 873: branch 2 never executed 874: branch 3 never executed 875: #####: 685: mpi_errno = MPIDI_CH3U_VC_FinishPending( comm_ptr->local_vcrt ); 878: -: 686: } 879: -: 687: 880: #####: 689: return mpi_errno; 1113: -: 866: * process layout on the part of the process manager. Consider this a 1114: -: 867: * non-fatal error case. */ 1115: #####: 868: *type = NULL_MAPPING; 1116: #####: 869: *map = NULL; 1117: #####: 870: *nblocks = 0; 1118: #####: 871: goto fn_exit; 1119: -: 872: } 1120: -: 873: 1121: #####: 874: skip_space(c); 1146: 3130: 880: *type = VECTOR_MAPPING; 1147: -: 881: else 1148: #####: 882: parse_error(); 1204: branch 1 taken 0% (fallthrough) 1205: branch 2 taken 100% 1206: #####: 905: parse_error(); 1226: branch 1 taken 0% (fallthrough) 1227: branch 2 taken 100% 1228: #####: 913: parse_error(); 1248: branch 1 taken 0% (fallthrough) 1249: branch 2 taken 100% 1250: #####: 921: parse_error(); 1274: 3130: 932:fn_exit: 1275: 3130: 934: return mpi_errno; 1276: #####: 936: MPIU_CHKPMEM_REAP(); 1388: branch 0 taken 0% (fallthrough) 1389: branch 1 taken 100% 1390: #####: 1029: *num_nodes = node_id; 1400: 3130: 1035: goto fn_exit; 1401: -: 1036: } 1402: #####: 1037: ++node_id; 1411: call 0 returned 100% 1412: 3130: 1045: return mpi_errno; 1413: #####: 1047: *did_map = 0; 1414: #####: 1048: goto fn_exit; 1480: branch 2 never executed 1481: branch 3 never executed 1482: #####: 1106: no_local = 1; 1498: branch 1 taken 100% 1499: -: 1121: /* just assign 0 to n-1 as node ids and bail */ 1500: #####: 1122: for (i = 0; i < pg->size; ++i) { 1501: branch 0 never executed 1502: branch 1 never executed 1503: #####: 1123: pg->vct[i].node_id = g_num_nodes++; 1558: -: 1176: /* FIXME this routine can't handle the dynamic process case at this 1559: -: 1177: time. This will require more support from the process manager. */ 1560: #####: 1178: MPIU_Assert(0); 54 line(s) not covered by tests in src/mpid/ch3/src/mpid_vc.c.gcov All code covered by tests in src/mpid/ch3/src/mpid_rma.c.gcov All code covered by tests in src/mpid/ch3/src/mpidi_isend_self.c.gcov Uncovered lines in src/mpid/ch3/src/mpidi_pg.c.gcov 80: branch 22 never executed 81: branch 23 never executed 82: #####: 51: verbose = 1; 105: branch 10 taken 100% 106: -: 58: int j; 107: #####: 59: verbose = 1; 108: #####: 60: for (j=i; jnext; 461: -: 331: } 462: -: 332: else { 463: #####: 333: MPIU_Free(pg->connData); 562: -: 417:int MPIDI_PG_Has_next(MPIDI_PG_iterator *iter) 563: function MPIDI_PG_Has_next called 0 returned 0% blocks executed 0% 564: #####: 418:{ 565: #####: 419: return (*iter != NULL); 910: branch 0 taken 0% (fallthrough) 911: branch 1 taken 100% 912: #####: 711: MPIDI_PG_CheckForSingleton(); 913: call 0 never executed 914: #####: 712: pmi_errno = PMI_KVS_Get(pg->connData, key, buf, bufsize ); 971: branch 0 taken 0% (fallthrough) 972: branch 1 taken 100% 973: #####: 755: MPIU_Internal_error_printf( 1005: branch 0 taken 0% (fallthrough) 1006: branch 1 taken 100% 1007: #####: 782: char *nstring = 0; 1008: #####: 783: curSlen += (pg->size - i) * (vallen + 1 ); 1009: #####: 784: nstring = MPIU_Realloc( string, curSlen); 1010: call 0 never executed 1011: #####: 785: if (!nstring) { 1015: call 0 never executed 1016: -: 787: } 1017: #####: 788: string = nstring; 1036: 1336: 800: fn_exit: 1037: 1336: 801: return mpi_errno; 1038: #####: 803: if (string) MPIU_Free(string); 1045: -: 807: MPIDI_PG_t *pg ATTRIBUTE((unused)) ) 1046: function connFromStringKVS called 0 returned 0% blocks executed 0% 1047: #####: 808:{ 1048: -: 809: /* Fixme: this should be a failure to call this routine */ 1049: #####: 810: return MPI_SUCCESS; 1122: 3735: 865: fn_exit: 1123: 3735: 866: return mpi_errno; 1124: #####: 868: if (pg->connData) { MPIU_Free(pg->connData); } 1160: branch 5 taken 100% 1161: -: 894: /* FIXME: Turn this into a valid error code create/return */ 1162: #####: 895: printf( "Fatal error in getConnInfo (rank = %d)\n", rank ); 1163: call 0 never executed 1164: #####: 896: printf( "connInfo = %p\n", connInfo );fflush(stdout); 1165: call 0 never executed 1166: call 1 never executed 1167: #####: 897: if (connInfo) { 1168: branch 0 never executed 1169: branch 1 never executed 1170: #####: 898: printf( "connInfo->connStrings = %p\n", connInfo->connStrings ); 1172: -: 899: } 1173: -: 900: /* Fatal error. Connection information missing */ 1174: #####: 901: fflush(stdout); 1227: -: 938: MPIU_Assertp(0); /* don't know what to do here for pmi2 yet. DARIUS */ 1228: -: 939:#else 1229: #####: 940: PMI_Get_id( pg->id, 256 ); 1258: branch 0 taken 0% (fallthrough) 1259: branch 1 taken 100% 1260: #####: 959: *buf_p = 0; 1261: #####: 960: *slen = 0; 1262: #####: 961: MPIU_ERR_INTERNALANDJUMP(mpi_errno, "len > connInfo->toStringLen"); 1271: 201: 968: MPIU_CHKPMEM_COMMIT(); 1272: 201: 969: return mpi_errno; 1273: #####: 971: MPIU_CHKPMEM_REAP(); 1416: -: 1091:int MPIDI_PG_GetConnString( MPIDI_PG_t *pg, int rank, char *val, int vallen ) 1417: function MPIDI_PG_GetConnString called 0 returned 0% blocks executed 0% 1418: #####: 1092:{ 1419: #####: 1093: int mpi_errno = MPI_SUCCESS; 1420: -: 1094: 1421: #####: 1095: if (pg->getConnInfo) { 1422: branch 0 never executed 1423: branch 1 never executed 1424: #####: 1096: mpi_errno = (*pg->getConnInfo)( rank, val, vallen, pg ); 1426: -: 1097: } 1427: -: 1098: else { 1428: #####: 1099: MPIU_Internal_error_printf( "Panic: no getConnInfo defined!\n" ); 1430: -: 1100: } 1431: -: 1101: 1432: #####: 1102: return mpi_errno; 1606: -: 1235:int MPIU_PG_Printall( FILE *fp ) 1607: function MPIU_PG_Printall called 0 returned 0% blocks executed 0% 1608: #####: 1236:{ 1610: -: 1238: int i; 1611: -: 1239: 1612: #####: 1240: pg = MPIDI_PG_list; 1613: -: 1241: 1614: #####: 1242: fprintf( fp, "Process groups:\n" ); 1615: call 0 never executed 1616: #####: 1243: while (pg) { 1618: branch 1 never executed 1619: -: 1244: /* XXX DJG FIXME-MT should we be checking this? */ 1620: #####: 1245: fprintf( fp, "size = %d, refcount = %d, id = %s\n", 1621: call 0 never executed 1622: -: 1246: pg->size, MPIU_Object_get_ref(pg), (char *)pg->id ); 1623: #####: 1247: for (i=0; isize; i++) { 1624: branch 0 never executed 1625: branch 1 never executed 1626: #####: 1248: fprintf( fp, "\tVCT rank = %d, refcount = %d, lpid = %d, state = %d \n", 1629: -: 1250: pg->vct[i].lpid, (int)pg->vct[i].state ); 1630: -: 1251: } 1631: #####: 1252: fflush(fp); 1632: call 0 never executed 1633: #####: 1253: pg = pg->next; 1634: -: 1254: } 1635: -: 1255: 1636: #####: 1256: return 0; 1650: -: 1266: char buf[256]; 1651: -: 1267: /* Force an enroll */ 1652: #####: 1268: PMI_KVS_Get( "foobar", "foobar", buf, sizeof(buf) ); 1653: call 0 never executed 1654: #####: 1269: PMI_Get_id( pg_world->id, 256 ); 1655: call 0 never executed 1656: #####: 1270: PMI_KVS_Get_my_name( pg_world->connData, 256 ); 57 line(s) not covered by tests in src/mpid/ch3/src/mpidi_pg.c.gcov Uncovered lines in src/mpid/ch3/src/mpidi_printf.c.gcov 32: -: 27:void MPIDI_dbg_printf(int level, char * func, char * fmt, ...) 33: function MPIDI_dbg_printf called 0 returned 0% blocks executed 0% 34: #####: 28:{ 42: -: 36: va_list list; 43: -: 37: 44: #####: 38: if (MPIR_Process.comm_world) 46: branch 1 never executed 47: -: 39: { 48: #####: 40: MPIU_dbglog_printf("[%d] %s(): ", MPIR_Process.comm_world->rank, func); 51: -: 42: else 52: -: 43: { 53: #####: 44: MPIU_dbglog_printf("[-1] %s(): ", func); 54: call 0 never executed 55: -: 45: } 56: #####: 46: va_start(list, fmt); 57: call 0 never executed 58: #####: 47: MPIU_dbglog_vprintf(fmt, list); 59: call 0 never executed 60: #####: 48: va_end(list); 61: call 0 never executed 62: #####: 49: MPIU_dbglog_printf("\n"); 63: call 0 never executed 64: #####: 50: fflush(stdout); 70: -: 55:void MPIDI_err_printf(char * func, char * fmt, ...) 71: function MPIDI_err_printf called 0 returned 0% blocks executed 0% 72: #####: 56:{ 74: -: 58: va_list list; 75: -: 59: 76: #####: 60: if (MPIR_Process.comm_world) 78: branch 1 never executed 79: -: 61: { 80: #####: 62: printf("[%d] ERROR - %s(): ", MPIR_Process.comm_world->rank, func); 83: -: 64: else 84: -: 65: { 85: #####: 66: printf("[-1] ERROR - %s(): ", func); 86: call 0 never executed 87: -: 67: } 88: #####: 68: va_start(list, fmt); 89: call 0 never executed 90: #####: 69: vprintf(fmt, list); 91: call 0 never executed 92: #####: 70: va_end(list); 93: call 0 never executed 94: #####: 71: printf("\n"); 95: call 0 never executed 96: #####: 72: fflush(stdout); 240: -: 215:const char * MPIDI_VC_GetStateString(int state) 241: function MPIDI_VC_GetStateString called 0 returned 0% blocks executed 0% 242: #####: 216:{ 243: #####: 217: switch (state) 250: -: 218: { 251: -: 219: case MPIDI_VC_STATE_INACTIVE: 252: #####: 220: return "MPIDI_VC_STATE_INACTIVE"; 253: -: 221: case MPIDI_VC_STATE_ACTIVE: 254: #####: 222: return "MPIDI_VC_STATE_ACTIVE"; 255: -: 223: case MPIDI_VC_STATE_LOCAL_CLOSE: 256: #####: 224: return "MPIDI_VC_STATE_LOCAL_CLOSE"; 257: -: 225: case MPIDI_VC_STATE_REMOTE_CLOSE: 258: #####: 226: return "MPIDI_VC_STATE_REMOTE_CLOSE"; 259: -: 227: case MPIDI_VC_STATE_CLOSE_ACKED: 260: #####: 228: return "MPIDI_VC_STATE_CLOSE_ACKED"; 261: -: 229: default: 262: #####: 230: return "unknown"; 271: -: 239:const char *MPIDI_Pkt_GetDescString( MPIDI_CH3_Pkt_t *pkt ) 272: function MPIDI_Pkt_GetDescString called 0 returned 0% blocks executed 0% 273: #####: 240:{ 275: -: 242: 276: -: 243: /* For data messages, the string (...) is (context,tag,rank,size) */ 277: #####: 244: switch(pkt->type) { 299: branch 21 never executed 300: -: 245: case MPIDI_CH3_PKT_EAGER_SEND: 301: #####: 246: MPIU_Snprintf( pktmsg, sizeof(pktmsg), 306: -: 250: pkt->eager_send.match.parts.rank, 307: -: 251: pkt->eager_send.data_sz ); 308: #####: 252: break; 309: -: 253: case MPIDI_CH3_PKT_EAGER_SYNC_SEND: 310: #####: 254: MPIU_Snprintf( pktmsg, sizeof(pktmsg), 316: -: 259: pkt->eager_sync_send.data_sz, 317: -: 260: pkt->eager_sync_send.sender_req_id ); 318: #####: 261: break; 319: -: 262: case MPIDI_CH3_PKT_EAGER_SYNC_ACK: 320: #####: 263: MPIU_Snprintf( pktmsg, sizeof(pktmsg), 322: -: 264: "EAGER_SYNC_ACK - req=%d", 323: -: 265: pkt->eager_sync_ack.sender_req_id ); 324: #####: 266: break; 325: -: 267: case MPIDI_CH3_PKT_READY_SEND: 326: #####: 268: MPIU_Snprintf( pktmsg, sizeof(pktmsg), 331: -: 272: pkt->ready_send.match.parts.rank, 332: -: 273: pkt->ready_send.data_sz ); 333: #####: 274: break; 334: -: 275: case MPIDI_CH3_PKT_RNDV_REQ_TO_SEND: 335: #####: 276: MPIU_Snprintf( pktmsg, sizeof(pktmsg), 341: -: 281: pkt->rndv_req_to_send.data_sz, 342: -: 282: pkt->rndv_req_to_send.sender_req_id ); 343: #####: 283: break; 344: -: 284: case MPIDI_CH3_PKT_RNDV_CLR_TO_SEND: 345: #####: 285: MPIU_Snprintf( pktmsg, sizeof(pktmsg), 348: -: 287: pkt->rndv_clr_to_send.sender_req_id, 349: -: 288: pkt->rndv_clr_to_send.receiver_req_id ); 350: #####: 289: break; 351: -: 290: case MPIDI_CH3_PKT_RNDV_SEND: 352: #####: 291: MPIU_Snprintf( pktmsg, sizeof(pktmsg), 354: -: 292: "RNDV_SEND - recv req=%d", 355: -: 293: pkt->rndv_send.receiver_req_id ); 356: #####: 294: break; 357: -: 295: case MPIDI_CH3_PKT_CANCEL_SEND_REQ: 358: #####: 296: MPIU_Snprintf( pktmsg, sizeof(pktmsg), 360: -: 297: "CANCEL_SEND_REQ - req=%d", 361: -: 298: pkt->cancel_send_req.sender_req_id ); 362: #####: 299: break; 363: -: 300: case MPIDI_CH3_PKT_CANCEL_SEND_RESP: 364: #####: 301: MPIU_Snprintf( pktmsg, sizeof(pktmsg), 367: -: 303: pkt->cancel_send_resp.sender_req_id, 368: -: 304: pkt->cancel_send_resp.ack ); 369: #####: 305: break; 370: -: 306: case MPIDI_CH3_PKT_PUT: 371: #####: 307: MPIU_Snprintf( pktmsg, sizeof(pktmsg), 375: -: 310: pkt->put.count, 376: -: 311: pkt->put.target_win_handle ); 377: #####: 312: break; 378: -: 313: case MPIDI_CH3_PKT_GET: 379: #####: 314: MPIU_Snprintf( pktmsg, sizeof(pktmsg), 384: -: 318: pkt->get.target_win_handle, 385: -: 319: pkt->get.request_handle ); 386: #####: 320: break; 387: -: 321: case MPIDI_CH3_PKT_GET_RESP: 388: #####: 322: MPIU_Snprintf( pktmsg, sizeof(pktmsg), 390: -: 323: "GET_RESP - req=%d", 391: -: 324: pkt->get_resp.request_handle ); 392: #####: 325: break; 393: -: 326: case MPIDI_CH3_PKT_ACCUMULATE: 394: #####: 327: MPIU_Snprintf( pktmsg, sizeof(pktmsg), 398: -: 330: pkt->accum.count, 399: -: 331: pkt->accum.target_win_handle ); 400: #####: 332: break; 401: -: 333: case MPIDI_CH3_PKT_LOCK: 402: #####: 334: MPIU_Snprintf( pktmsg, sizeof(pktmsg), 404: -: 335: "LOCK - %d", 405: -: 336: pkt->lock.target_win_handle ); 406: #####: 337: break; 407: -: 338: case MPIDI_CH3_PKT_LOCK_PUT_UNLOCK: 408: #####: 339: MPIU_Snprintf( pktmsg, sizeof(pktmsg), 412: -: 342: pkt->lock_put_unlock.count, 413: -: 343: pkt->lock_put_unlock.target_win_handle ); 414: #####: 344: break; 415: -: 345: case MPIDI_CH3_PKT_LOCK_ACCUM_UNLOCK: 416: #####: 346: MPIU_Snprintf( pktmsg, sizeof(pktmsg), 420: -: 349: pkt->lock_accum_unlock.count, 421: -: 350: pkt->lock_accum_unlock.target_win_handle ); 422: #####: 351: break; 423: -: 352: case MPIDI_CH3_PKT_LOCK_GET_UNLOCK: 424: #####: 353: MPIU_Snprintf( pktmsg, sizeof(pktmsg), 429: -: 357: pkt->lock_get_unlock.target_win_handle, 430: -: 358: pkt->lock_get_unlock.request_handle ); 431: #####: 359: break; 432: -: 360: case MPIDI_CH3_PKT_PT_RMA_DONE: 433: -: 361: /* There is no rma_done packet type */ 434: #####: 362: MPIU_Snprintf( pktmsg, sizeof(pktmsg), 436: -: 363: "RMA_DONE - 0x%08X", 437: -: 364: pkt->lock_accum_unlock.source_win_handle ); 438: #####: 365: break; 439: -: 366: case MPIDI_CH3_PKT_LOCK_GRANTED: 440: #####: 367: MPIU_Snprintf( pktmsg, sizeof(pktmsg), 442: -: 368: "LOCK_GRANTED - 0x%08X", 443: -: 369: pkt->lock_granted.source_win_handle ); 444: #####: 370: break; 445: -: 371: case MPIDI_CH3_PKT_FLOW_CNTL_UPDATE: 446: #####: 372: MPIU_Snprintf( pktmsg, sizeof(pktmsg), 447: call 0 never executed 448: -: 373: "FLOW_CNTL_UPDATE" ); 449: #####: 374: break; 450: -: 375: case MPIDI_CH3_PKT_CLOSE: 451: #####: 376: MPIU_Snprintf( pktmsg, sizeof(pktmsg), 453: -: 377: "CLOSE ack=%d", 454: -: 378: pkt->close.ack ); 455: #####: 379: break; 456: -: 380: 457: -: 381: default: 458: #####: 382: MPIU_Snprintf( pktmsg, sizeof(pktmsg), 462: -: 385: } 463: -: 386: 464: #####: 387: return pktmsg; 72 line(s) not covered by tests in src/mpid/ch3/src/mpidi_printf.c.gcov Uncovered lines in src/mpid/ch3/src/stdio.h.gcov 42: -: 37:vprintf (__const char *__restrict __fmt, _G_va_list __arg) 43: function vprintf called 0 returned 0% blocks executed 0% 44: #####: 38:{ 45: #####: 39: return vfprintf (stdout, __fmt, __arg); 2 line(s) not covered by tests in src/mpid/ch3/src/stdio.h.gcov Uncovered lines in src/mpid/ch3/channels/nemesis/nemesis/src/mpid_nem_alloc.c.gcov 129: 26145: 99: MPIU_CHKPMEM_COMMIT(); 130: 26145: 101: return mpi_errno; 131: #####: 103: MPIU_CHKPMEM_REAP(); 1 line(s) not covered by tests in src/mpid/ch3/channels/nemesis/nemesis/src/mpid_nem_alloc.c.gcov All code covered by tests in src/mpid/ch3/channels/nemesis/nemesis/src/opa_gcc_intel_32_64_ops.h.gcov Uncovered lines in src/mpid/ch3/channels/nemesis/nemesis/src/mpiu_shm_wrappers.h.gcov 153: -: 142: else{ 154: -: 143: /* close() failed */ 155: #####: 144: return -1; 279: -: 254: } 280: -: 255: else{ 281: #####: 256: return -1; 302: -: 270: } 303: -: 271: else{ 304: #####: 272: MPIU_Assert(hnd->ghnd); 307: call 2 never executed 308: call 3 never executed 309: #####: 273: (hnd->ghnd)[0] = MPIU_SHMW_GHND_INIT_VAL; 759: branch 0 taken 0% (fallthrough) 760: branch 1 taken 100% 761: #####: 639: chosen_fname = tmp_fname; 762: #####: 640: lhnd = mkstemp(chosen_fname); 6 line(s) not covered by tests in src/mpid/ch3/channels/nemesis/nemesis/src/mpiu_shm_wrappers.h.gcov Uncovered lines in src/mpid/ch3/channels/nemesis/nemesis/src/mpid_nem_init.c.gcov 387: -: 251: else 388: -: 252: { 389: #####: 253: net_free_queue = NULL; 738: 19950: 503:fn_exit: 739: 19950: 505: return mpi_errno; 740: #####: 507: MPIU_CHKPMEM_REAP(); 2 line(s) not covered by tests in src/mpid/ch3/channels/nemesis/nemesis/src/mpid_nem_init.c.gcov All code covered by tests in src/mpid/ch3/channels/nemesis/nemesis/src/mpid_nem_queue.h.gcov Uncovered lines in src/mpid/ch3/channels/nemesis/nemesis/src/mpid_nem_defs.h.gcov 52: -: 47:static inline MPID_nem_cell_ptr_t MPID_NEM_REL_TO_ABS (MPID_nem_cell_rel_ptr_t r) 53: -: 48:{ 54: #####: 49: return (MPID_nem_cell_ptr_t)((char*)OPA_load_ptr(&r.p) + (MPID_nem_addr_t)MPID_nem_asymm_base_addr); 58: -: 53:{ 59: -: 54: MPID_nem_cell_rel_ptr_t ret; 60: #####: 55: OPA_store_ptr(&ret.p, (char *)a - (MPID_nem_addr_t)MPID_nem_asymm_base_addr); 61: #####: 56: return ret; 3 line(s) not covered by tests in src/mpid/ch3/channels/nemesis/nemesis/src/mpid_nem_defs.h.gcov All code covered by tests in src/mpid/ch3/channels/nemesis/nemesis/src/mpid_nem_queue.c.gcov All code covered by tests in src/mpid/ch3/channels/nemesis/nemesis/src/mpid_nem_barrier.c.gcov All code covered by tests in src/mpid/ch3/channels/nemesis/nemesis/src/opa_emulated.h.gcov Uncovered lines in src/mpid/ch3/channels/nemesis/nemesis/src/mpid_nem_mpich2.c.gcov 115: -: 82:int MPID_nem_send_iov(MPIDI_VC_t *vc, MPID_Request **sreq_ptr, MPID_IOV *iov, int n_iov) 116: function MPID_nem_send_iov called 0 returned 0% blocks executed 0% 117: #####: 83:{ 118: #####: 84: int mpi_errno = MPI_SUCCESS; 120: -: 86: int i; 121: -: 87: int iov_data_copied; 122: #####: 88: MPID_Request *sreq = *sreq_ptr; 123: #####: 89: MPID_IOV *data_iov = &iov[1]; /* iov of just the data, not the header */ 124: #####: 90: int data_n_iov = n_iov - 1; 128: -: 94: MPIDI_FUNC_ENTER(MPID_STATE_MPID_NEM_SEND_IOV); 129: -: 95: 130: #####: 96: if (*sreq_ptr == NULL) 133: -: 97: { 134: -: 98: /* create a request */ 135: #####: 99: sreq = MPID_Request_create(); 136: call 0 never executed 137: #####: 100: MPIU_Assert(sreq != NULL); 140: call 2 never executed 141: call 3 never executed 142: #####: 101: MPIU_Object_set_ref(sreq, 2); 143: #####: 102: sreq->kind = MPID_REQUEST_SEND; 144: #####: 103: sreq->dev.OnDataAvail = 0; 145: -: 104: } 146: -: 105: 147: #####: 106: data_sz = 0; 148: #####: 107: for (i = 0; i < data_n_iov; ++i) 149: branch 0 never executed 150: branch 1 never executed 151: #####: 108: data_sz += data_iov[i].MPID_IOV_LEN; 152: -: 109: 153: -: 110: 154: #####: 111: if (!MPIDI_Request_get_srbuf_flag(sreq)) 156: branch 1 never executed 157: -: 112: { 158: #####: 113: MPIDI_CH3U_SRBuf_alloc(sreq, data_sz); 177: -: 124: } 178: -: 125: 179: #####: 126: MPIU_Assert(sreq->dev.tmpbuf_sz >= data_sz); 183: call 3 never executed 184: -: 127: 185: #####: 128: iov_data_copied = 0; 186: #####: 129: for (i = 0; i < data_n_iov; ++i) { 187: branch 0 never executed 188: branch 1 never executed 189: #####: 130: MPIU_Memcpy((char*) sreq->dev.tmpbuf + iov_data_copied, data_iov[i].MPID_IOV_BUF, data_iov[i].MPID_IOV_LEN); 216: call 26 never executed 217: call 27 never executed 218: #####: 131: iov_data_copied += data_iov[i].MPID_IOV_LEN; 219: -: 132: } 220: -: 133: 221: #####: 134: mpi_errno = ((MPIDI_CH3I_VC *)vc->channel_private)->iSendContig(vc, sreq, iov[0].MPID_IOV_BUF, iov[0].MPID_IOV_LEN, sreq->dev.tmpbuf, data_sz); 226: call 2 never executed 227: -: 136: 228: #####: 137: *sreq_ptr = sreq; 229: -: 138: 230: #####: 139: fn_exit: 231: #####: 139: fn_exit: 232: #####: 141: return mpi_errno; 25 line(s) not covered by tests in src/mpid/ch3/channels/nemesis/nemesis/src/mpid_nem_mpich2.c.gcov Uncovered lines in src/mpid/ch3/channels/nemesis/nemesis/src/mpid_nem_memdefs.h.gcov 55: -: 50:static inline void nt_memcpy (volatile void *dst, volatile const void *src, size_t len) 56: function nt_memcpy called 0 returned 0% blocks executed 0% 57: #####: 51:{ 62: -: 56: 63: -: 57: /* copy in 8K chunks */ 64: #####: 58: n = len & (-8*1024); 65: #####: 59: if (n) 68: -: 60: { 69: -: 61: 70: #####: 62: __asm__ __volatile__ ("mov %4, %%ecx\n" 128: -: 119: : "eax", "edx", "ecx", "memory" ); 129: -: 120: 130: #####: 121: src = (char *)src + n; 131: #####: 122: dst = (char *)dst + n; 133: -: 124: 134: -: 125: /* copy in 128byte chunks */ 135: #####: 126: n = len & (8*1024 - 1) & -128; 136: #####: 127: if (n) 139: -: 128: { 140: -: 129: 141: #####: 130: __asm__ __volatile__ ("mov %4, %%ecx\n" 196: -: 184: : "0" (dst), "1" (src), "g" (n >> 3) 197: -: 185: : "eax", "edx", "ecx", "memory" ); 198: #####: 186: src = (char *)src + n; 199: #####: 187: dst = (char *)dst + n; 201: -: 189: 202: -: 190: /* copy leftover */ 203: #####: 191: n = len & (128 - 1); 204: #####: 192: if (n) 205: branch 0 never executed 206: branch 1 never executed 207: #####: 193: asm_memcpy (dst, src, n); 14 line(s) not covered by tests in src/mpid/ch3/channels/nemesis/nemesis/src/mpid_nem_memdefs.h.gcov All code covered by tests in src/mpid/ch3/channels/nemesis/nemesis/src/mpid_nem_finalize.c.gcov All code covered by tests in src/mpid/ch3/channels/nemesis/nemesis/src/mpid_nem_network_poll.c.gcov Uncovered lines in src/mpid/ch3/channels/nemesis/nemesis/src/mpid_nem_network.c.gcov 46: -: 37: } 47: -: 38: 48: #####: 39: for (i = 0; i < MPID_nem_num_netmods; ++i) 50: branch 1 never executed 51: -: 40: { 52: #####: 41: if (!MPIU_Strncasecmp(val, MPID_nem_netmod_strings[i], MPID_NEM_MAX_NETMOD_STRING_LEN)) 55: branch 2 never executed 56: -: 42: { 57: #####: 43: MPID_nem_netmod_func = MPID_nem_netmod_funcs[i]; 58: #####: 44: MPID_nem_netmod_id = i; 59: #####: 45: goto fn_exit; 5 line(s) not covered by tests in src/mpid/ch3/channels/nemesis/nemesis/src/mpid_nem_network.c.gcov All code covered by tests in src/mpid/ch3/channels/nemesis/nemesis/src/mpid_nem_debug.c.gcov Uncovered lines in src/mpid/ch3/channels/nemesis/nemesis/src/mpid_nem_lmt.c.gcov 92: branch 1 taken 100% 93: -: 79: { 94: #####: 80: mpi_errno = MPIDI_CH3_RndvSend(sreq_p, buf, count, datatype, dt_contig, data_sz, dt_true_lb, rank, tag, comm, context_offset); 153: branch 1 taken 100% 154: -: 129: { 155: #####: 130: mpi_errno = MPIDI_CH3_RecvRndv(vc, rreq); 230: -: 185: /* set for the cookie to be received into the tmp_cookie in the request */ 231: -: 186: MPIU_DBG_MSG(CH3_OTHER,VERBOSE,"haven't received entire cookie"); 232: #####: 187: MPIU_CHKPMEM_MALLOC(rreq->ch.lmt_tmp_cookie.MPID_IOV_BUF, char *, rts_pkt->cookie_len, mpi_errno, "tmp cookie buf"); 241: branch 8 never executed 242: call 9 never executed 243: #####: 188: rreq->ch.lmt_tmp_cookie.MPID_IOV_LEN = rts_pkt->cookie_len; 244: -: 189: 245: #####: 190: rreq->dev.iov[0] = rreq->ch.lmt_tmp_cookie; 246: #####: 191: rreq->dev.iov_count = 1; 247: #####: 192: *rreqp = rreq; 248: #####: 193: *buflen = sizeof(MPIDI_CH3_Pkt_t); 249: -: 194: 250: #####: 195: if (found) 254: -: 197: /* set do_cts() to be called once we've received the entire cookie */ 255: -: 198: MPIU_DBG_MSG(CH3_OTHER,VERBOSE,"posted request found"); 256: #####: 199: rreq->dev.OnDataAvail = do_cts; 260: -: 203: /* receive the rest of the cookie and wait for a match */ 261: -: 204: MPIU_DBG_MSG(CH3_OTHER,VERBOSE,"unexpected request allocated"); 262: #####: 205: rreq->dev.OnDataAvail = 0; 263: #####: 206: MPIDI_CH3_Progress_signal_completion(); 285: -: 221: /* receive cookie into tmp_cookie in the request */ 286: -: 222: MPIU_DBG_MSG(CH3_OTHER,VERBOSE,"received entire cookie"); 287: #####: 223: MPIU_CHKPMEM_MALLOC(rreq->ch.lmt_tmp_cookie.MPID_IOV_BUF, char *, rts_pkt->cookie_len, mpi_errno, "tmp cookie buf"); 296: branch 8 never executed 297: call 9 never executed 298: #####: 224: rreq->ch.lmt_tmp_cookie.MPID_IOV_LEN = rts_pkt->cookie_len; 299: -: 225: 300: #####: 226: MPIU_Memcpy(rreq->ch.lmt_tmp_cookie.MPID_IOV_BUF, data_buf, rts_pkt->cookie_len); 327: call 26 never executed 328: call 27 never executed 329: #####: 227: *buflen = sizeof(MPIDI_CH3_Pkt_t) + rts_pkt->cookie_len; 330: #####: 228: *rreqp = NULL; 370: 84179: 251: fn_exit: 371: 84179: 253: return mpi_errno; 372: #####: 255: MPIU_CHKPMEM_REAP(); 419: branch 0 taken 0% (fallthrough) 420: branch 1 taken 100% 421: #####: 294: MPID_Request_release(rts_sreq); 454: -: 312: MPID_Request *rreq; 455: -: 313: 456: #####: 314: MPIU_CHKPMEM_MALLOC(sreq->ch.lmt_tmp_cookie.MPID_IOV_BUF, char *, cts_pkt->cookie_len, mpi_errno, "tmp cookie buf"); 465: branch 8 never executed 466: call 9 never executed 467: #####: 315: sreq->ch.lmt_tmp_cookie.MPID_IOV_LEN = cts_pkt->cookie_len; 473: -: 318: /* FIXME: where does this request get freed? */ 474: -: 319: 475: #####: 320: rreq->dev.iov[0] = sreq->ch.lmt_tmp_cookie; 476: #####: 321: rreq->dev.iov_count = 1; 477: #####: 322: rreq->ch.lmt_req = sreq; 478: #####: 323: rreq->dev.OnDataAvail = do_send; 479: #####: 324: *buflen = sizeof(MPIDI_CH3_Pkt_t); 480: #####: 325: *rreqp = rreq; 483: -: 328: else 484: -: 329: { 485: #####: 330: MPID_IOV cookie = {0,0}; 486: #####: 331: mpi_errno = ((MPIDI_CH3I_VC *)vc->channel_private)->lmt_start_send(vc, sreq, cookie); 490: branch 1 never executed 491: call 2 never executed 492: #####: 333: *buflen = sizeof(MPIDI_CH3_Pkt_t); 493: #####: 334: *rreqp = NULL; 499: 84170: 338: MPIU_CHKPMEM_COMMIT(); 500: 84170: 340: return mpi_errno; 501: #####: 342: MPIU_CHKPMEM_REAP(); 512: -: 350:static int pkt_DONE_handler(MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt, MPIDI_msg_sz_t *buflen, MPID_Request **rreqp) 513: function pkt_DONE_handler called 0 returned 0% blocks executed 0% 514: #####: 351:{ 515: #####: 352: int mpi_errno = MPI_SUCCESS; 516: #####: 353: MPID_nem_pkt_lmt_done_t * const done_pkt = (MPID_nem_pkt_lmt_done_t *)pkt; 520: -: 357: MPIDI_FUNC_ENTER(MPID_STATE_PKT_DONE_HANDLER); 521: -: 358: 522: #####: 359: *buflen = sizeof(MPIDI_CH3_Pkt_t); 523: #####: 360: MPID_Request_get_ptr(done_pkt->req_id, req); 527: call 3 never executed 528: -: 361: 529: #####: 362: switch (MPIDI_Request_get_type(req)) 533: -: 363: { 534: -: 364: case MPIDI_REQUEST_TYPE_RECV: 535: #####: 365: mpi_errno = ((MPIDI_CH3I_VC *)vc->channel_private)->lmt_done_recv(vc, req); 541: -: 367: break; 542: -: 368: case MPIDI_REQUEST_TYPE_SEND: 543: #####: 369: mpi_errno = ((MPIDI_CH3I_VC *)vc->channel_private)->lmt_done_send(vc, req); 549: -: 371: break; 550: -: 372: default: 551: #####: 373: MPIU_ERR_INTERNALANDJUMP(mpi_errno, "unexpected request type"); 554: -: 375: } 555: -: 376: 556: #####: 377: *rreqp = NULL; 557: -: 378: 558: #####: 379: fn_exit: 559: #####: 379: fn_exit: 560: #####: 381: return mpi_errno; 569: -: 390:static int pkt_COOKIE_handler(MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt, MPIDI_msg_sz_t *buflen, MPID_Request **rreqp) 570: function pkt_COOKIE_handler called 0 returned 0% blocks executed 0% 571: #####: 391:{ 572: #####: 392: int mpi_errno = MPI_SUCCESS; 573: #####: 393: MPID_nem_pkt_lmt_cookie_t * const cookie_pkt = (MPID_nem_pkt_lmt_cookie_t *)pkt; 575: -: 395: char *data_buf; 576: -: 396: MPIDI_msg_sz_t data_len; 577: #####: 397: MPIU_CHKPMEM_DECL(1); 580: -: 400: MPIDI_FUNC_ENTER(MPID_STATE_PKT_COOKIE_HANDLER); 581: -: 401: 582: #####: 402: data_len = *buflen - sizeof(MPIDI_CH3_Pkt_t); 583: #####: 403: data_buf = (char *)pkt + sizeof(MPIDI_CH3_Pkt_t); 584: -: 404: 585: #####: 405: if (cookie_pkt->from_sender) { 586: branch 0 never executed 587: branch 1 never executed 588: #####: 406: MPID_Request_get_ptr(cookie_pkt->receiver_req_id, req); 591: branch 2 never executed 592: call 3 never executed 593: #####: 407: req->ch.lmt_req_id = cookie_pkt->sender_req_id; 594: -: 408: } 595: -: 409: else { 596: #####: 410: MPID_Request_get_ptr(cookie_pkt->sender_req_id, req); 599: branch 2 never executed 600: call 3 never executed 601: #####: 411: req->ch.lmt_req_id = cookie_pkt->receiver_req_id; 602: -: 412: } 603: #####: 413: MPIU_Assert(req != NULL); 607: call 3 never executed 608: -: 414: 609: #####: 415: if (cookie_pkt->cookie_len != 0) 611: branch 1 never executed 612: -: 416: { 613: #####: 417: if (data_len >= cookie_pkt->cookie_len) 618: -: 420: MPID_IOV cookie; 619: -: 421: 620: #####: 422: cookie.MPID_IOV_BUF = data_buf; 621: #####: 423: cookie.MPID_IOV_LEN = cookie_pkt->cookie_len; 622: #####: 424: mpi_errno = ((MPIDI_CH3I_VC *)vc->channel_private)->lmt_handle_cookie(vc, req, cookie); 627: call 2 never executed 628: -: 426: 629: #####: 427: *rreqp = NULL; 630: #####: 428: *buflen = sizeof(MPIDI_CH3_Pkt_t) + cookie_pkt->cookie_len; 639: branch 1 never executed 640: branch 2 never executed 641: #####: 436: MPIU_CHKPMEM_MALLOC(rreq->ch.lmt_tmp_cookie.MPID_IOV_BUF, char *, cookie_pkt->cookie_len, mpi_errno, "tmp cookie buf"); 651: call 9 never executed 652: -: 437: /* FIXME: where does this request get freed? */ 653: #####: 438: rreq->ch.lmt_tmp_cookie.MPID_IOV_LEN = cookie_pkt->cookie_len; 654: -: 439: 655: #####: 440: rreq->dev.iov[0] = rreq->ch.lmt_tmp_cookie; 656: #####: 441: rreq->dev.iov_count = 1; 657: #####: 442: rreq->ch.lmt_req = req; 658: #####: 443: rreq->dev.OnDataAvail = do_cookie; 659: #####: 444: *rreqp = rreq; 660: #####: 445: *buflen = sizeof(MPIDI_CH3_Pkt_t); 663: -: 448: else 664: -: 449: { 665: #####: 450: MPID_IOV cookie = {0,0}; 666: -: 451: 667: #####: 452: mpi_errno = ((MPIDI_CH3I_VC *)vc->channel_private)->lmt_handle_cookie(vc, req, cookie); 671: branch 1 never executed 672: call 2 never executed 673: #####: 454: *buflen = sizeof(MPIDI_CH3_Pkt_t); 674: #####: 455: *rreqp = NULL; 675: -: 456: } 676: -: 457: 677: #####: 458: fn_exit: 678: #####: 459: MPIU_CHKPMEM_COMMIT(); 679: #####: 459: MPIU_CHKPMEM_COMMIT(); 680: #####: 461: return mpi_errno; 681: #####: 461: return mpi_errno; 682: #####: 463: MPIU_CHKPMEM_REAP(); 739: branch 1 taken 100% 740: -: 501: { 741: #####: 502: MPIU_Free(rreq->ch.lmt_tmp_cookie.MPID_IOV_BUF); 742: call 0 never executed 743: #####: 503: rreq->ch.lmt_tmp_cookie.MPID_IOV_LEN = 0; 759: -: 519:static int do_send(MPIDI_VC_t *vc, MPID_Request *rreq, int *complete) 760: function do_send called 0 returned 0% blocks executed 0% 761: #####: 520:{ 762: #####: 521: int mpi_errno = MPI_SUCCESS; 763: -: 522: MPID_IOV r_cookie; 764: #####: 523: MPID_Request * const sreq = rreq->ch.lmt_req; 767: -: 526: MPIDI_FUNC_ENTER(MPID_STATE_DO_SEND); 768: -: 527: 769: #####: 528: r_cookie = sreq->ch.lmt_tmp_cookie; 770: -: 529: 771: #####: 530: mpi_errno = ((MPIDI_CH3I_VC *)vc->channel_private)->lmt_start_send(vc, sreq, r_cookie); 777: -: 532: 778: -: 533: /* free cookie buffer allocated in CTS handler */ 779: #####: 534: MPIU_Free(sreq->ch.lmt_tmp_cookie.MPID_IOV_BUF); 780: call 0 never executed 781: #####: 535: sreq->ch.lmt_tmp_cookie.MPID_IOV_LEN = 0; 782: -: 536: 783: #####: 537: *complete = TRUE; 784: -: 538: 785: #####: 539: fn_exit: 786: #####: 539: fn_exit: 787: #####: 541: return mpi_errno; 796: -: 550:static int do_cookie(MPIDI_VC_t *vc, MPID_Request *rreq, int *complete) 797: function do_cookie called 0 returned 0% blocks executed 0% 798: #####: 551:{ 799: #####: 552: int mpi_errno = MPI_SUCCESS; 800: -: 553: MPID_IOV cookie; 801: #####: 554: MPID_Request *req = rreq->ch.lmt_req; 804: -: 557: MPIDI_FUNC_ENTER(MPID_STATE_DO_COOKIE); 805: -: 558: 806: #####: 559: cookie = req->ch.lmt_tmp_cookie; 807: -: 560: 808: #####: 561: mpi_errno = ((MPIDI_CH3I_VC *)vc->channel_private)->lmt_handle_cookie(vc, req, cookie); 814: -: 563: 815: -: 564: /* free cookie buffer allocated in COOKIE handler */ 816: #####: 565: MPIU_Free(req->ch.lmt_tmp_cookie.MPID_IOV_BUF); 817: call 0 never executed 818: #####: 566: req->ch.lmt_tmp_cookie.MPID_IOV_LEN = 0; 819: -: 567: 820: #####: 568: *complete = TRUE; 821: -: 569: 822: #####: 570: fn_exit: 823: #####: 570: fn_exit: 824: #####: 572: return mpi_errno; 101 line(s) not covered by tests in src/mpid/ch3/channels/nemesis/nemesis/src/mpid_nem_lmt.c.gcov Uncovered lines in src/mpid/ch3/channels/nemesis/nemesis/src/mpid_nem_lmt_shm.c.gcov 347: 84170: 224: fn_exit: 348: 84170: 226: return mpi_errno; 349: #####: 228: MPIU_CHKPMEM_REAP(); 531: 84170: 315: fn_return: 532: 84170: 317: return mpi_errno; 533: #####: 319: MPIU_CHKPMEM_REAP(); 946: -: 622: { 947: -: 623: /* if we're wrapping back to buf 0, then we can copy it directly */ 948: #####: 624: MPIU_Memcpy(((char *)copy_buf->buf[0]) - surfeit, surfeit_ptr, surfeit); 976: call 27 never executed 977: -: 625: 978: #####: 626: OPA_read_write_barrier(); 979: call 0 never executed 980: #####: 627: copy_buf->len[buf_num].val = 0; 1094: -: 672:int MPID_nem_lmt_shm_handle_cookie(MPIDI_VC_t *vc, MPID_Request *req, MPID_IOV cookie) 1095: function MPID_nem_lmt_shm_handle_cookie called 0 returned 0% blocks executed 0% 1096: #####: 673:{ 1100: -: 676: MPIDI_FUNC_ENTER(MPID_STATE_MPID_NEM_LMT_SHM_HANDLE_COOKIE); 1101: -: 677: 1102: #####: 679: return MPI_SUCCESS; 1109: -: 686:int MPID_nem_lmt_shm_done_send(MPIDI_VC_t *vc, MPID_Request *req) 1110: function MPID_nem_lmt_shm_done_send called 0 returned 0% blocks executed 0% 1111: #####: 687:{ 1115: -: 690: MPIDI_FUNC_ENTER(MPID_STATE_MPID_NEM_LMT_SHM_DONE_SEND); 1116: -: 691: 1117: #####: 693: return MPI_SUCCESS; 1124: -: 700:int MPID_nem_lmt_shm_done_recv(MPIDI_VC_t *vc, MPID_Request *req) 1125: function MPID_nem_lmt_shm_done_recv called 0 returned 0% blocks executed 0% 1126: #####: 701:{ 1130: -: 704: MPIDI_FUNC_ENTER(MPID_STATE_MPID_NEM_LMT_SHM_DONE_RECV); 1131: -: 705: 1132: #####: 707: return MPI_SUCCESS; 1296: -: 818: { 1297: -: 819: /* we're already attached */ 1298: #####: 820: goto fn_exit; 1330: -: 845: { 1331: -: 846: /* we're already attached */ 1332: #####: 847: goto fn_exit; 13 line(s) not covered by tests in src/mpid/ch3/channels/nemesis/nemesis/src/mpid_nem_lmt_shm.c.gcov Uncovered lines in src/pmi/simple/simple_pmiutil.c.gcov 64: -: 57:void PMIU_SetServer( void ) 65: function PMIU_SetServer called 0 returned 0% blocks executed 0% 66: #####: 58:{ 67: #####: 59: MPIU_Strncpy( PMIU_print_id, "server", PMIU_IDSIZE ); 93: branch 1 taken 100% 94: -: 79: char filename[1024]; 95: #####: 80: p = getenv("PMI_ID"); 96: call 0 never executed 97: #####: 81: if (p) { 98: branch 0 never executed 99: branch 1 never executed 100: #####: 82: MPIU_Snprintf( filename, sizeof(filename), 101: call 0 never executed 102: -: 83: "testclient-%s.out", p ); 103: #####: 84: logfile = fopen( filename, "w" ); 105: -: 85: } 106: -: 86: else { 107: #####: 87: logfile = fopen( "testserver.out", "w" ); 157: branch 2 never executed 158: branch 3 never executed 159: #####: 126: MPIU_Internal_error_printf( "Panic - buffer inconsistent\n" ); 160: call 0 never executed 161: #####: 127: return -1; 192: -: 144: data. Save the errno in case we need to return it 193: -: 145: later. */ 194: #####: 146: lastErrno = errno; 195: call 0 never executed 196: #####: 147: if (curlen == 1) { 197: branch 0 never executed 198: branch 1 never executed 199: #####: 148: curlen = 0; 235: branch 0 taken 0% (fallthrough) 236: branch 1 taken 100% 237: #####: 180: buf[PMIU_MAXLINE-1] = '\0'; 238: #####: 181: PMIU_printf( 1, "write_line: message string too big: :%s:\n", buf ); 243: branch 1 taken 0% (fallthrough) 244: branch 2 taken 100% 245: #####: 184: PMIU_printf( 1, "write_line: message string doesn't end in newline: :%s:\n", 260: branch 0 taken 0% (fallthrough) 261: branch 1 taken 100% 262: #####: 192: PMIU_printf( 1, "write_line error; fd=%d buf=:%s:\n", fd, buf ); 263: call 0 never executed 264: #####: 193: perror("system msg for write_line failure "); 265: call 0 never executed 266: #####: 194: return(-1); 269: branch 0 taken 0% (fallthrough) 270: branch 1 taken 100% 271: #####: 197: PMIU_printf( 1, "write_line failed to write entire message\n" ); 288: branch 0 taken 0% (fallthrough) 289: branch 1 taken 100% 290: #####: 212: return( -1 ); 301: branch 0 taken 0% (fallthrough) 302: branch 1 taken 100% 303: #####: 221: PMIU_printf( 1, "PMIU_parse_keyvals: unexpected = at character %d in %s\n", 304: call 0 never executed 305: -: 222: p - st, st ); 306: #####: 223: return( -1 ); 309: branch 0 taken 0% (fallthrough) 310: branch 1 taken 100% 311: #####: 226: return( 0 ); /* normal exit */ 325: branch 2 taken 0% (fallthrough) 326: branch 3 taken 100% 327: #####: 232: PMIU_printf( 1, 329: -: 233: "PMIU_parse_keyvals: unexpected key delimiter at character %d in %s\n", 330: -: 234: p - st, st ); 331: #####: 235: return( -1 ); 368: -: 262:void PMIU_dump_keyvals( void ) 369: function PMIU_dump_keyvals called 0 returned 0% blocks executed 0% 370: #####: 263:{ 371: -: 264: int i; 372: #####: 265: for (i=0; i < PMIU_keyval_tab_idx; i++) 373: branch 0 never executed 374: branch 1 never executed 375: #####: 266: PMIU_printf(1, " %s=%s\n",PMIU_keyval_tab[i].key, PMIU_keyval_tab[i].value); 394: branch 0 taken 0% (fallthrough) 395: branch 1 taken 100% 396: #####: 277: PMIU_printf( 1, "MPIU_Strncpy failed in PMIU_getval\n" ); 397: call 0 never executed 398: #####: 278: return NULL; 401: -: 281: } 402: -: 282: } 403: #####: 283: valstr[0] = '\0'; 404: #####: 284: return NULL; 407: -: 287:void PMIU_chgval( const char *keystr, char *valstr ) 408: function PMIU_chgval called 0 returned 0% blocks executed 0% 409: #####: 288:{ 410: -: 289: int i; 411: -: 290: 412: #####: 291: for ( i = 0; i < PMIU_keyval_tab_idx; i++ ) { 413: branch 0 never executed 414: branch 1 never executed 415: #####: 292: if ( strcmp( keystr, PMIU_keyval_tab[i].key ) == 0 ) { 417: branch 1 never executed 418: branch 2 never executed 419: #####: 293: MPIU_Strncpy( PMIU_keyval_tab[i].value, valstr, MAXVALLEN - 1 ); 420: call 0 never executed 421: #####: 294: PMIU_keyval_tab[i].value[MAXVALLEN - 1] = '\0'; 37 line(s) not covered by tests in src/pmi/simple/simple_pmiutil.c.gcov Uncovered lines in src/pmi/simple/simple_pmi.c.gcov 152: branch 0 taken 0% (fallthrough) 153: branch 1 taken 100% 154: #####: 140: return rc; 160: -: 144: /* Singleton init: Process not started with mpiexec, 161: -: 145: so set size to 1, rank to 0 */ 162: #####: 146: PMI_size = 1; 163: #####: 147: PMI_rank = 0; 164: #####: 148: *spawned = 0; 165: -: 149: 166: #####: 150: PMI_initialized = SINGLETON_INIT_BUT_NO_PM; 167: -: 151: /* 256 is picked as the minimum allowed length by the PMI servers */ 168: #####: 152: PMI_kvsname_max = 256; 169: #####: 153: PMI_keylen_max = 256; 170: #####: 154: PMI_vallen_max = 256; 171: -: 155: 172: #####: 156: return( 0 ); 185: call 0 returned 100% 186: -: 164: else 187: #####: 165: PMI_size = 1; 199: -: 172: } 200: -: 173: else 201: #####: 174: PMI_rank = 0; 208: call 0 returned 100% 209: -: 178: else 210: #####: 179: PMI_debug = 0; 231: -: 194: /* FIXME: And it most ceratainly should not happen *before* the 232: -: 195: initialization handshake */ 233: #####: 196: PMIU_readline( PMI_fd, buf, PMIU_MAXLINE ); 234: call 0 never executed 235: #####: 197: PMIU_parse_keyvals( buf ); 236: call 0 never executed 237: #####: 198: PMIU_getval( "cmd", cmd, PMIU_MAXLINE ); 238: call 0 never executed 239: #####: 199: if ( strncmp( cmd, "tv_ready", PMIU_MAXLINE ) != 0 ) { 249: branch 9 never executed 250: branch 10 never executed 251: #####: 200: PMIU_printf( 1, "expecting cmd=tv_ready, got %s\n", buf ); 252: call 0 never executed 253: #####: 201: return( PMI_FAIL ); 268: call 0 returned 100% 269: -: 212: else 270: #####: 213: PMI_spawned = 0; 286: -: 225:int PMI_Initialized( PMI_BOOL *initialized ) 287: function PMI_Initialized called 0 returned 0% blocks executed 0% 288: #####: 226:{ 291: -: 229: an PMI service (e.g., via mpiexec) and the singleton init, 292: -: 230: which has no PMI service */ 293: #####: 231: *initialized = PMI_initialized != 0 ? PMI_TRUE : PMI_FALSE; 294: #####: 232: return PMI_SUCCESS; 303: 3735: 238: *size = PMI_size; 304: -: 239: else 305: #####: 240: *size = 1; 315: 3735: 247: *rank = PMI_rank; 316: -: 248: else 317: #####: 249: *rank = 0; 351: 5: 272: return( PMI_SUCCESS ); 352: -: 273: } 353: #####: 274: else return err; 354: -: 275: } 355: -: 276: else 356: #####: 277: *size = 1; 357: #####: 278: return( PMI_SUCCESS ); 378: 3735: 291: return( PMI_SUCCESS ); 379: -: 292: } 380: #####: 293: else return err; 382: -: 295: } 383: -: 296: else 384: #####: 297: *appnum = -1; 385: -: 298: 386: #####: 299: return( PMI_SUCCESS ); 408: -: 317:int PMI_Get_clique_size( int *size ) 409: function PMI_Get_clique_size called 0 returned 0% blocks executed 0% 410: #####: 318:{ 415: -: 323: 416: -: 324: /* As the server for the information on the */ 417: #####: 325: if (clique_size == -2 && PMI_initialized > SINGLETON_INIT_BUT_NO_PM) { 420: branch 2 never executed 421: branch 3 never executed 422: #####: 326: PMI_KVS_Get_my_name( pmi_kvsname, sizeof(pmi_kvsname) ); 423: call 0 never executed 424: #####: 327: rc = MPIU_Snprintf( buf, PMIU_MAXLINE, 426: -: 328: "cmd=get kvsname=%s key=pmiPrivateLocalRanks_%d\n", 427: -: 329: pmi_kvsname, PMI_rank ); 428: #####: 330: if (rc < 0) return PMI_FAIL; 430: branch 1 never executed 431: -: 331: 432: #####: 332: err = GetResponse( buf, "get_result", 0 ); 433: call 0 never executed 434: #####: 333: if (err == PMI_SUCCESS) { 435: branch 0 never executed 436: branch 1 never executed 437: #####: 334: PMIU_getval( "rc", buf, PMIU_MAXLINE ); 438: call 0 never executed 439: #####: 335: rc = atoi( buf ); 440: call 0 never executed 441: #####: 336: if ( rc == 0 ) { 442: branch 0 never executed 443: branch 1 never executed 444: #####: 337: char *p = buf, *p0; 445: -: 338: /* Allocate clique_ranks and fill it in */ 446: #####: 339: PMIU_getval( "value", buf, PMIU_MAXLINE ); 447: call 0 never executed 448: -: 340: /* Count the number of ranks and allocate the space for them */ 449: #####: 341: clique_size = 1; 450: #####: 342: while (*p) { 451: branch 0 never executed 452: branch 1 never executed 453: #####: 343: if (*p++ == ',') clique_size++; 455: branch 1 never executed 456: -: 344: } 457: #####: 345: clique_ranks = (int *)MPIU_Malloc( clique_size * sizeof(int) ); 458: call 0 never executed 459: -: 346: DBG_PRINTF( ("Clique_size = %d\n", clique_size) ); 460: #####: 347: p0 = p = buf; 461: #####: 348: i = 0; 462: #####: 349: while (*p) { 463: branch 0 never executed 464: branch 1 never executed 465: #####: 350: while (*p && *p != ',') p++; 466: branch 0 never executed 467: branch 1 never executed 468: #####: 351: if (*p == ',') *p++ = 0; 469: branch 0 never executed 470: branch 1 never executed 471: #####: 352: clique_ranks[i++] = atoi(p0); 472: call 0 never executed 473: #####: 353: p0 = p; 476: -: 356: else { 477: -: 357: /* Default case (PM did not understand request) */ 478: #####: 358: clique_size = 1; 480: -: 360: } 481: -: 361: } 482: #####: 362: if (clique_size < 0) *size = 1; 483: branch 0 never executed 484: branch 1 never executed 485: #####: 363: else *size = clique_size; 487: -: 365: *size = 1; 488: -: 366:#endif 489: #####: 367: return PMI_SUCCESS; 492: -: 370:int PMI_Get_clique_ranks( int ranks[], int length ) 493: function PMI_Get_clique_ranks called 0 returned 0% blocks executed 0% 494: #####: 371:{ 495: -: 372:#if 1 496: -: 373: int i; 497: #####: 374: if (length < 1) 498: branch 0 never executed 499: branch 1 never executed 500: #####: 375: return PMI_ERR_INVALID_ARG; 501: -: 376: 502: #####: 377: if (clique_size > 0 && clique_ranks) { 505: branch 2 never executed 506: branch 3 never executed 507: #####: 378: for (i=0; i= 0) *v3 = *v3 + 1; 5 line(s) not covered by tests in src/binding/f77/waitanyf.c.gcov Uncovered lines in src/binding/f77/testanyf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_testany__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_testany_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *v5, MPI_Fint *ierr ){ 201: -: 195:#endif 202: -: 196: 203: #####: 197: if (v5 == MPI_F_STATUS_IGNORE) { v5 = (MPI_Fint*)MPI_STATUS_IGNORE; } 204: branch 0 never executed 205: branch 1 never executed 206: #####: 198: *ierr = MPI_Testany( *v1, (MPI_Request *)(v2), &l3, &l4, (MPI_Status *)v5 ); 207: call 0 never executed 208: #####: 199: *v3 = (MPI_Fint)l3; 209: #####: 200: if (l3 >= 0) *v3 = *v3 + 1; 210: branch 0 never executed 211: branch 1 never executed 212: #####: 201: *v4 = MPIR_TO_FLOG(l4); 6 line(s) not covered by tests in src/binding/f77/testanyf.c.gcov All code covered by tests in src/binding/f77/waitallf.c.gcov Uncovered lines in src/binding/f77/testallf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_testall__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_testall_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *ierr ){ 200: -: 194:#endif 201: -: 195: 202: #####: 196: if (v4 == MPI_F_STATUSES_IGNORE) { v4 = (MPI_Fint *)MPI_STATUSES_IGNORE; } 203: branch 0 never executed 204: branch 1 never executed 205: #####: 197: *ierr = MPI_Testall( *v1, (MPI_Request *)(v2), &l3, (MPI_Status *)v4 ); 206: call 0 never executed 207: #####: 198: *v3 = MPIR_TO_FLOG(l3); 4 line(s) not covered by tests in src/binding/f77/testallf.c.gcov Uncovered lines in src/binding/f77/waitsomef.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_waitsome__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_waitsome_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *v5, MPI_Fint *ierr ){ 199: -: 193:#endif 200: -: 194: 201: #####: 195: if (v5 == MPI_F_STATUSES_IGNORE) { v5 = (MPI_Fint *)MPI_STATUSES_IGNORE; } 202: branch 0 never executed 203: branch 1 never executed 204: #####: 196: *ierr = MPI_Waitsome( *v1, (MPI_Request *)(v2), v3, v4, (MPI_Status *)v5 ); 206: -: 197: 207: -: 198: {int li; 208: #####: 199: for (li=0; li<*v3; li++) { 209: branch 0 never executed 210: branch 1 never executed 211: #####: 200: if (v4[li] >= 0) v4[li] += 1; 5 line(s) not covered by tests in src/binding/f77/waitsomef.c.gcov Uncovered lines in src/binding/f77/testsomef.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_testsome__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_testsome_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *v5, MPI_Fint *ierr ){ 199: -: 193:#endif 200: -: 194: 201: #####: 195: if (v5 == MPI_F_STATUSES_IGNORE) { v5 = (MPI_Fint *)MPI_STATUSES_IGNORE; } 202: branch 0 never executed 203: branch 1 never executed 204: #####: 196: *ierr = MPI_Testsome( *v1, (MPI_Request *)(v2), v3, v4, (MPI_Status *)v5 ); 206: -: 197: 207: -: 198: {int li; 208: #####: 199: for (li=0; li<*v3; li++) { 209: branch 0 never executed 210: branch 1 never executed 211: #####: 200: if (v4[li] >= 0) v4[li] += 1; 5 line(s) not covered by tests in src/binding/f77/testsomef.c.gcov Uncovered lines in src/binding/f77/iprobef.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_iprobe__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_iprobe_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *v5, MPI_Fint *ierr ){ 200: -: 194:#endif 201: -: 195: 202: #####: 196: if (v5 == MPI_F_STATUS_IGNORE) { v5 = (MPI_Fint*)MPI_STATUS_IGNORE; } 203: branch 0 never executed 204: branch 1 never executed 205: #####: 197: *ierr = MPI_Iprobe( *v1, *v2, (MPI_Comm)(*v3), &l4, (MPI_Status *)v5 ); 206: call 0 never executed 207: #####: 198: *v4 = MPIR_TO_FLOG(l4); 4 line(s) not covered by tests in src/binding/f77/iprobef.c.gcov Uncovered lines in src/binding/f77/probef.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_probe__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_probe_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *ierr ){ 199: -: 193:#endif 200: -: 194: 201: #####: 195: if (v4 == MPI_F_STATUS_IGNORE) { v4 = (MPI_Fint*)MPI_STATUS_IGNORE; } 202: branch 0 never executed 203: branch 1 never executed 204: #####: 196: *ierr = MPI_Probe( *v1, *v2, (MPI_Comm)(*v3), (MPI_Status *)v4 ); 3 line(s) not covered by tests in src/binding/f77/probef.c.gcov All code covered by tests in src/binding/f77/cancelf.c.gcov Uncovered lines in src/binding/f77/testcancelf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_test_cancelled__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_test_cancelled_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *ierr ){ 196: -: 190: int l2; 197: #####: 191: *ierr = MPI_Test_cancelled( (MPI_Status *)(v1), &l2 ); 198: call 0 never executed 199: #####: 192: *v2 = MPIR_TO_FLOG(l2); 3 line(s) not covered by tests in src/binding/f77/testcancelf.c.gcov Uncovered lines in src/binding/f77/send_initf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_send_init__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_send_init_ ( void*v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *v5, MPI_Fint *v6, MPI_Fint *v7, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Send_init( v1, *v2, (MPI_Datatype)(*v3), *v4, *v5, (MPI_Comm)(*v6), (MPI_Request *)(v7) ); 2 line(s) not covered by tests in src/binding/f77/send_initf.c.gcov Uncovered lines in src/binding/f77/bsend_initf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_bsend_init__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_bsend_init_ ( void*v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *v5, MPI_Fint *v6, MPI_Fint *v7, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Bsend_init( v1, *v2, (MPI_Datatype)(*v3), *v4, *v5, (MPI_Comm)(*v6), (MPI_Request *)(v7) ); 2 line(s) not covered by tests in src/binding/f77/bsend_initf.c.gcov Uncovered lines in src/binding/f77/ssend_initf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_ssend_init__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_ssend_init_ ( void*v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *v5, MPI_Fint *v6, MPI_Fint *v7, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Ssend_init( v1, *v2, (MPI_Datatype)(*v3), *v4, *v5, (MPI_Comm)(*v6), (MPI_Request *)(v7) ); 2 line(s) not covered by tests in src/binding/f77/ssend_initf.c.gcov Uncovered lines in src/binding/f77/rsend_initf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_rsend_init__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_rsend_init_ ( void*v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *v5, MPI_Fint *v6, MPI_Fint *v7, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Rsend_init( v1, *v2, (MPI_Datatype)(*v3), *v4, *v5, (MPI_Comm)(*v6), (MPI_Request *)(v7) ); 2 line(s) not covered by tests in src/binding/f77/rsend_initf.c.gcov Uncovered lines in src/binding/f77/recv_initf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_recv_init__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_recv_init_ ( void*v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *v5, MPI_Fint *v6, MPI_Fint *v7, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Recv_init( v1, *v2, (MPI_Datatype)(*v3), *v4, *v5, (MPI_Comm)(*v6), (MPI_Request *)(v7) ); 2 line(s) not covered by tests in src/binding/f77/recv_initf.c.gcov Uncovered lines in src/binding/f77/startf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_start__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_start_ ( MPI_Fint *v1, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Start( (MPI_Request *)(v1) ); 2 line(s) not covered by tests in src/binding/f77/startf.c.gcov Uncovered lines in src/binding/f77/startallf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_startall__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_startall_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Startall( *v1, (MPI_Request *)(v2) ); 2 line(s) not covered by tests in src/binding/f77/startallf.c.gcov All code covered by tests in src/binding/f77/sendrecvf.c.gcov Uncovered lines in src/binding/f77/sndrcvrplf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_sendrecv_replace__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_sendrecv_replace_ ( void*v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *v5, MPI_Fint *v6, MPI_Fint *v7, MPI_Fint *v8, MPI_Fint *v9, MPI_Fint *ierr ){ 199: -: 193:#endif 200: -: 194: 201: #####: 195: if (v9 == MPI_F_STATUS_IGNORE) { v9 = (MPI_Fint*)MPI_STATUS_IGNORE; } 202: branch 0 never executed 203: branch 1 never executed 204: #####: 196: *ierr = MPI_Sendrecv_replace( v1, *v2, (MPI_Datatype)(*v3), *v4, *v5, *v6, *v7, (MPI_Comm)(*v8), (MPI_Status *)v9 ); 3 line(s) not covered by tests in src/binding/f77/sndrcvrplf.c.gcov Uncovered lines in src/binding/f77/typecontigf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_type_contiguous__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_type_contiguous_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Type_contiguous( *v1, (MPI_Datatype)(*v2), (MPI_Datatype *)(v3) ); 2 line(s) not covered by tests in src/binding/f77/typecontigf.c.gcov All code covered by tests in src/binding/f77/type_vectorf.c.gcov Uncovered lines in src/binding/f77/type_hvectorf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_type_hvector__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_type_hvector_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint * v3, MPI_Fint *v4, MPI_Fint *v5, MPI_Fint *ierr ){ 196: -: 190: MPI_Aint l3; 197: #####: 191: l3 = (MPI_Aint)*v3; 198: #####: 192: *ierr = MPI_Type_hvector( *v1, *v2, l3, (MPI_Datatype)(*v4), (MPI_Datatype *)(v5) ); 3 line(s) not covered by tests in src/binding/f77/type_hvectorf.c.gcov All code covered by tests in src/binding/f77/type_indexedf.c.gcov Uncovered lines in src/binding/f77/type_hindexedf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_type_hindexed__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_type_hindexed_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint * v3, MPI_Fint *v4, MPI_Fint *v5, MPI_Fint *ierr ){ 205: -: 199: else l3 = 0; 206: -: 200:#else 207: #####: 201: l3 = v3; 208: -: 202:#endif 209: #####: 203: *ierr = MPI_Type_hindexed( *v1, v2, l3, (MPI_Datatype)(*v4), (MPI_Datatype *)(v5) ); 3 line(s) not covered by tests in src/binding/f77/type_hindexedf.c.gcov Uncovered lines in src/binding/f77/type_structf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_type_struct__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_type_struct_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint * v3, MPI_Fint *v4, MPI_Fint *v5, MPI_Fint *ierr ){ 205: -: 199: else l3 = 0; 206: -: 200:#else 207: #####: 201: l3 = v3; 208: -: 202:#endif 209: #####: 203: *ierr = MPI_Type_struct( *v1, v2, l3, (MPI_Datatype *)(v4), (MPI_Datatype *)(v5) ); 3 line(s) not covered by tests in src/binding/f77/type_structf.c.gcov Uncovered lines in src/binding/f77/type_extentf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_type_extent__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_type_extent_ ( MPI_Fint *v1, MPI_Fint * v2, MPI_Fint *ierr ){ 196: -: 190: MPI_Aint l2; 197: #####: 191: *ierr = MPI_Type_extent( (MPI_Datatype)(*v1), &l2 ); 198: call 0 never executed 199: #####: 192: *v2 = (MPI_Fint)(l2); 3 line(s) not covered by tests in src/binding/f77/type_extentf.c.gcov All code covered by tests in src/binding/f77/type_sizef.c.gcov Uncovered lines in src/binding/f77/type_lbf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_type_lb__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_type_lb_ ( MPI_Fint *v1, MPI_Fint * v2, MPI_Fint *ierr ){ 196: -: 190: MPI_Aint l2; 197: #####: 191: *ierr = MPI_Type_lb( (MPI_Datatype)(*v1), &l2 ); 198: call 0 never executed 199: #####: 192: *v2 = (MPI_Fint)(l2); 3 line(s) not covered by tests in src/binding/f77/type_lbf.c.gcov Uncovered lines in src/binding/f77/type_ubf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_type_ub__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_type_ub_ ( MPI_Fint *v1, MPI_Fint * v2, MPI_Fint *ierr ){ 196: -: 190: MPI_Aint l2; 197: #####: 191: *ierr = MPI_Type_ub( (MPI_Datatype)(*v1), &l2 ); 198: call 0 never executed 199: #####: 192: *v2 = (MPI_Fint)(l2); 3 line(s) not covered by tests in src/binding/f77/type_ubf.c.gcov All code covered by tests in src/binding/f77/type_commitf.c.gcov All code covered by tests in src/binding/f77/type_freef.c.gcov Uncovered lines in src/binding/f77/get_elementsf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_get_elements__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_get_elements_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Get_elements( (MPI_Status *)(v1), (MPI_Datatype)(*v2), v3 ); 2 line(s) not covered by tests in src/binding/f77/get_elementsf.c.gcov Uncovered lines in src/binding/f77/packf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_pack__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_pack_ ( void*v1, MPI_Fint *v2, MPI_Fint *v3, void*v4, MPI_Fint *v5, MPI_Fint *v6, MPI_Fint *v7, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Pack( v1, *v2, (MPI_Datatype)(*v3), v4, *v5, v6, (MPI_Comm)(*v7) ); 2 line(s) not covered by tests in src/binding/f77/packf.c.gcov All code covered by tests in src/binding/f77/unpackf.c.gcov Uncovered lines in src/binding/f77/pack_sizef.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_pack_size__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_pack_size_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Pack_size( *v1, (MPI_Datatype)(*v2), (MPI_Comm)(*v3), v4 ); 2 line(s) not covered by tests in src/binding/f77/pack_sizef.c.gcov All code covered by tests in src/binding/f77/barrierf.c.gcov Uncovered lines in src/binding/f77/bcastf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_bcast__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_bcast_ ( void*v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *v5, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Bcast( v1, *v2, (MPI_Datatype)(*v3), *v4, (MPI_Comm)(*v5) ); 2 line(s) not covered by tests in src/binding/f77/bcastf.c.gcov All code covered by tests in src/binding/f77/gatherf.c.gcov All code covered by tests in src/binding/f77/gathervf.c.gcov All code covered by tests in src/binding/f77/scatterf.c.gcov Uncovered lines in src/binding/f77/scattervf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_scatterv__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_scatterv_ ( void*v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *v4, void*v5, MPI_Fint *v6, MPI_Fint *v7, MPI_Fint *v8, MPI_Fint *v9, MPI_Fint *ierr ){ 198: -: 192: if (MPIR_F_NeedInit){ mpirinitf_(); MPIR_F_NeedInit = 0; } 199: -: 193:#endif 200: #####: 194: if (v5 == MPIR_F_MPI_IN_PLACE) v5 = MPI_IN_PLACE; 201: branch 0 never executed 202: branch 1 never executed 203: #####: 195: *ierr = MPI_Scatterv( v1, v2, v3, (MPI_Datatype)(*v4), v5, *v6, (MPI_Datatype)(*v7), *v8, (MPI_Comm)(*v9) ); 3 line(s) not covered by tests in src/binding/f77/scattervf.c.gcov Uncovered lines in src/binding/f77/allgatherf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_allgather__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_allgather_ ( void*v1, MPI_Fint *v2, MPI_Fint *v3, void*v4, MPI_Fint *v5, MPI_Fint *v6, MPI_Fint *v7, MPI_Fint *ierr ){ 198: -: 192: if (MPIR_F_NeedInit){ mpirinitf_(); MPIR_F_NeedInit = 0; } 199: -: 193:#endif 200: #####: 194: if (v1 == MPIR_F_MPI_IN_PLACE) v1 = MPI_IN_PLACE; 201: branch 0 never executed 202: branch 1 never executed 203: #####: 195: *ierr = MPI_Allgather( v1, *v2, (MPI_Datatype)(*v3), v4, *v5, (MPI_Datatype)(*v6), (MPI_Comm)(*v7) ); 3 line(s) not covered by tests in src/binding/f77/allgatherf.c.gcov Uncovered lines in src/binding/f77/allgathervf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_allgatherv__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_allgatherv_ ( void*v1, MPI_Fint *v2, MPI_Fint *v3, void*v4, MPI_Fint *v5, MPI_Fint *v6, MPI_Fint *v7, MPI_Fint *v8, MPI_Fint *ierr ){ 198: -: 192: if (MPIR_F_NeedInit){ mpirinitf_(); MPIR_F_NeedInit = 0; } 199: -: 193:#endif 200: #####: 194: if (v1 == MPIR_F_MPI_IN_PLACE) v1 = MPI_IN_PLACE; 201: branch 0 never executed 202: branch 1 never executed 203: #####: 195: *ierr = MPI_Allgatherv( v1, *v2, (MPI_Datatype)(*v3), v4, v5, v6, (MPI_Datatype)(*v7), (MPI_Comm)(*v8) ); 3 line(s) not covered by tests in src/binding/f77/allgathervf.c.gcov Uncovered lines in src/binding/f77/alltoallf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_alltoall__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_alltoall_ ( void*v1, MPI_Fint *v2, MPI_Fint *v3, void*v4, MPI_Fint *v5, MPI_Fint *v6, MPI_Fint *v7, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Alltoall( v1, *v2, (MPI_Datatype)(*v3), v4, *v5, (MPI_Datatype)(*v6), (MPI_Comm)(*v7) ); 2 line(s) not covered by tests in src/binding/f77/alltoallf.c.gcov Uncovered lines in src/binding/f77/alltoallvf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_alltoallv__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_alltoallv_ ( void*v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *v4, void*v5, MPI_Fint *v6, MPI_Fint *v7, MPI_Fint *v8, MPI_Fint *v9, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Alltoallv( v1, v2, v3, (MPI_Datatype)(*v4), v5, v6, v7, (MPI_Datatype)(*v8), (MPI_Comm)(*v9) ); 2 line(s) not covered by tests in src/binding/f77/alltoallvf.c.gcov All code covered by tests in src/binding/f77/reducef.c.gcov All code covered by tests in src/binding/f77/op_createf.c.gcov All code covered by tests in src/binding/f77/op_freef.c.gcov All code covered by tests in src/binding/f77/allreducef.c.gcov Uncovered lines in src/binding/f77/redscatf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_reduce_scatter__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_reduce_scatter_ ( void*v1, void*v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *v5, MPI_Fint *v6, MPI_Fint *ierr ){ 198: -: 192: if (MPIR_F_NeedInit){ mpirinitf_(); MPIR_F_NeedInit = 0; } 199: -: 193:#endif 200: #####: 194: if (v1 == MPIR_F_MPI_IN_PLACE) v1 = MPI_IN_PLACE; 201: branch 0 never executed 202: branch 1 never executed 203: #####: 195: *ierr = MPI_Reduce_scatter( v1, v2, v3, (MPI_Datatype)(*v4), *v5, (MPI_Comm)(*v6) ); 3 line(s) not covered by tests in src/binding/f77/redscatf.c.gcov Uncovered lines in src/binding/f77/scanf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_scan__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_scan_ ( void*v1, void*v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *v5, MPI_Fint *v6, MPI_Fint *ierr ){ 198: -: 192: if (MPIR_F_NeedInit){ mpirinitf_(); MPIR_F_NeedInit = 0; } 199: -: 193:#endif 200: #####: 194: if (v1 == MPIR_F_MPI_IN_PLACE) v1 = MPI_IN_PLACE; 201: branch 0 never executed 202: branch 1 never executed 203: #####: 195: *ierr = MPI_Scan( v1, v2, *v3, (MPI_Datatype)(*v4), *v5, (MPI_Comm)(*v6) ); 3 line(s) not covered by tests in src/binding/f77/scanf.c.gcov All code covered by tests in src/binding/f77/group_sizef.c.gcov All code covered by tests in src/binding/f77/group_rankf.c.gcov Uncovered lines in src/binding/f77/grouptranksf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_group_translate_ranks__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_group_translate_ranks_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *v5, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Group_translate_ranks( *v1, *v2, v3, *v4, v5 ); 2 line(s) not covered by tests in src/binding/f77/grouptranksf.c.gcov All code covered by tests in src/binding/f77/group_comparef.c.gcov All code covered by tests in src/binding/f77/comm_groupf.c.gcov Uncovered lines in src/binding/f77/group_unionf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_group_union__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_group_union_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Group_union( *v1, *v2, v3 ); 2 line(s) not covered by tests in src/binding/f77/group_unionf.c.gcov Uncovered lines in src/binding/f77/groupinterf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_group_intersection__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_group_intersection_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Group_intersection( *v1, *v2, v3 ); 2 line(s) not covered by tests in src/binding/f77/groupinterf.c.gcov Uncovered lines in src/binding/f77/groupdifff.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_group_difference__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_group_difference_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Group_difference( *v1, *v2, v3 ); 2 line(s) not covered by tests in src/binding/f77/groupdifff.c.gcov All code covered by tests in src/binding/f77/group_inclf.c.gcov Uncovered lines in src/binding/f77/group_exclf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_group_excl__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_group_excl_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Group_excl( *v1, *v2, v3, v4 ); 2 line(s) not covered by tests in src/binding/f77/group_exclf.c.gcov Uncovered lines in src/binding/f77/grouprinclf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_group_range_incl__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_group_range_incl_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint v3[], MPI_Fint *v4, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Group_range_incl( *v1, *v2, (int (*)[3])(v3), v4 ); 2 line(s) not covered by tests in src/binding/f77/grouprinclf.c.gcov Uncovered lines in src/binding/f77/grouprexclf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_group_range_excl__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_group_range_excl_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint v3[], MPI_Fint *v4, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Group_range_excl( *v1, *v2, (int (*)[3])(v3), v4 ); 2 line(s) not covered by tests in src/binding/f77/grouprexclf.c.gcov All code covered by tests in src/binding/f77/group_freef.c.gcov All code covered by tests in src/binding/f77/comm_sizef.c.gcov All code covered by tests in src/binding/f77/comm_rankf.c.gcov Uncovered lines in src/binding/f77/comm_comparef.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_comm_compare__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_comm_compare_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Comm_compare( (MPI_Comm)(*v1), (MPI_Comm)(*v2), v3 ); 2 line(s) not covered by tests in src/binding/f77/comm_comparef.c.gcov All code covered by tests in src/binding/f77/comm_dupf.c.gcov Uncovered lines in src/binding/f77/comm_createf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_comm_create__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_comm_create_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Comm_create( (MPI_Comm)(*v1), *v2, (MPI_Comm *)(v3) ); 2 line(s) not covered by tests in src/binding/f77/comm_createf.c.gcov All code covered by tests in src/binding/f77/comm_splitf.c.gcov All code covered by tests in src/binding/f77/comm_freef.c.gcov Uncovered lines in src/binding/f77/commtesticf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_comm_test_inter__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_comm_test_inter_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *ierr ){ 196: -: 190: int l2; 197: #####: 191: *ierr = MPI_Comm_test_inter( (MPI_Comm)(*v1), &l2 ); 198: call 0 never executed 199: #####: 192: *v2 = MPIR_TO_FLOG(l2); 3 line(s) not covered by tests in src/binding/f77/commtesticf.c.gcov All code covered by tests in src/binding/f77/commrsizef.c.gcov Uncovered lines in src/binding/f77/commrgroupf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_comm_remote_group__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_comm_remote_group_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Comm_remote_group( (MPI_Comm)(*v1), v2 ); 2 line(s) not covered by tests in src/binding/f77/commrgroupf.c.gcov Uncovered lines in src/binding/f77/iccreatef.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_intercomm_create__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_intercomm_create_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *v5, MPI_Fint *v6, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Intercomm_create( (MPI_Comm)(*v1), *v2, (MPI_Comm)(*v3), *v4, *v5, (MPI_Comm *)(v6) ); 2 line(s) not covered by tests in src/binding/f77/iccreatef.c.gcov Uncovered lines in src/binding/f77/icmergef.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_intercomm_merge__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_intercomm_merge_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *ierr ){ 196: -: 190: int l2; 197: #####: 191: l2 = MPIR_FROM_FLOG(*v2); 198: #####: 192: *ierr = MPI_Intercomm_merge( (MPI_Comm)(*v1), l2, (MPI_Comm *)(v3) ); 3 line(s) not covered by tests in src/binding/f77/icmergef.c.gcov Uncovered lines in src/binding/f77/keyval_freef.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_keyval_free__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_keyval_free_ ( MPI_Fint *v1, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Keyval_free( v1 ); 2 line(s) not covered by tests in src/binding/f77/keyval_freef.c.gcov Uncovered lines in src/binding/f77/attr_putf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_attr_put__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_attr_put_ ( MPI_Fint *v1, MPI_Fint *v2, void*v3, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPIR_CommSetAttr( (MPI_Comm)(*v1), *v2, (void *)(MPIR_Pint)((int)*(int *)v3), MPIR_ATTR_INT ); 2 line(s) not covered by tests in src/binding/f77/attr_putf.c.gcov Uncovered lines in src/binding/f77/attr_getf.c.gcov 204: branch 2 taken 0% (fallthrough) 205: branch 3 taken 100% 206: #####: 195: *(MPI_Fint*)v3 = 0; 1 line(s) not covered by tests in src/binding/f77/attr_getf.c.gcov Uncovered lines in src/binding/f77/attr_deletef.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_attr_delete__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_attr_delete_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Attr_delete( (MPI_Comm)(*v1), *v2 ); 2 line(s) not covered by tests in src/binding/f77/attr_deletef.c.gcov Uncovered lines in src/binding/f77/topo_testf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_topo_test__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_topo_test_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Topo_test( (MPI_Comm)(*v1), v2 ); 2 line(s) not covered by tests in src/binding/f77/topo_testf.c.gcov All code covered by tests in src/binding/f77/cart_createf.c.gcov All code covered by tests in src/binding/f77/dims_createf.c.gcov Uncovered lines in src/binding/f77/graph_createf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_graph_create__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_graph_create_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *v5, MPI_Fint *v6, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Graph_create( (MPI_Comm)(*v1), *v2, v3, v4, *v5, (MPI_Comm *)(v6) ); 2 line(s) not covered by tests in src/binding/f77/graph_createf.c.gcov Uncovered lines in src/binding/f77/graphdims_getf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_graphdims_get__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_graphdims_get_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Graphdims_get( (MPI_Comm)(*v1), v2, v3 ); 2 line(s) not covered by tests in src/binding/f77/graphdims_getf.c.gcov Uncovered lines in src/binding/f77/graph_getf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_graph_get__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_graph_get_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *v5, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Graph_get( (MPI_Comm)(*v1), *v2, *v3, v4, v5 ); 2 line(s) not covered by tests in src/binding/f77/graph_getf.c.gcov Uncovered lines in src/binding/f77/cartdim_getf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_cartdim_get__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_cartdim_get_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Cartdim_get( (MPI_Comm)(*v1), v2 ); 2 line(s) not covered by tests in src/binding/f77/cartdim_getf.c.gcov All code covered by tests in src/binding/f77/cart_getf.c.gcov Uncovered lines in src/binding/f77/cart_rankf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_cart_rank__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_cart_rank_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Cart_rank( (MPI_Comm)(*v1), v2, v3 ); 2 line(s) not covered by tests in src/binding/f77/cart_rankf.c.gcov Uncovered lines in src/binding/f77/cart_coordsf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_cart_coords__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_cart_coords_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Cart_coords( (MPI_Comm)(*v1), *v2, *v3, v4 ); 2 line(s) not covered by tests in src/binding/f77/cart_coordsf.c.gcov Uncovered lines in src/binding/f77/grfnbcountf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_graph_neighbors_count__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_graph_neighbors_count_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Graph_neighbors_count( (MPI_Comm)(*v1), *v2, v3 ); 2 line(s) not covered by tests in src/binding/f77/grfnbcountf.c.gcov Uncovered lines in src/binding/f77/grfnbrsf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_graph_neighbors__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_graph_neighbors_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Graph_neighbors( (MPI_Comm)(*v1), *v2, *v3, v4 ); 2 line(s) not covered by tests in src/binding/f77/grfnbrsf.c.gcov All code covered by tests in src/binding/f77/cart_shiftf.c.gcov Uncovered lines in src/binding/f77/cart_subf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_cart_sub__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_cart_sub_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Cart_sub( (MPI_Comm)(*v1), v2, (MPI_Comm *)(v3) ); 2 line(s) not covered by tests in src/binding/f77/cart_subf.c.gcov Uncovered lines in src/binding/f77/cart_mapf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_cart_map__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_cart_map_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *v5, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Cart_map( (MPI_Comm)(*v1), *v2, v3, v4, v5 ); 2 line(s) not covered by tests in src/binding/f77/cart_mapf.c.gcov Uncovered lines in src/binding/f77/graph_mapf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_graph_map__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_graph_map_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *v5, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Graph_map( (MPI_Comm)(*v1), *v2, v3, v4, v5 ); 2 line(s) not covered by tests in src/binding/f77/graph_mapf.c.gcov Uncovered lines in src/binding/f77/getpnamef.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_get_processor_name__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_get_processor_name_ ( char *v1 FORT_MIXED_LEN(d1), MPI_Fint *v2, MPI_Fint *ierr FORT_END_LEN(d1) ){ 196: -: 190: char *p1; 197: #####: 191: p1 = (char *)MPIU_Malloc( d1 + 1 ); 198: call 0 never executed 199: #####: 192: *ierr = MPI_Get_processor_name( p1, v2 ); 200: call 0 never executed 201: -: 193: 202: #####: 194: {char *p = v1, *pc=p1; 203: #####: 195: while (*pc) {*p++ = *pc++;} 204: branch 0 never executed 205: branch 1 never executed 206: #####: 196: while ((p-v1) < d1) { *p++ = ' '; } 208: branch 1 never executed 209: -: 197: } 210: #####: 198: MPIU_Free( p1 ); 7 line(s) not covered by tests in src/binding/f77/getpnamef.c.gcov All code covered by tests in src/binding/f77/get_versionf.c.gcov Uncovered lines in src/binding/f77/errhcreatef.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_errhandler_create__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_errhandler_create_ ( MPI_Handler_function*v1, MPI_Fint *v2, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Errhandler_create( v1, v2 ); 2 line(s) not covered by tests in src/binding/f77/errhcreatef.c.gcov Uncovered lines in src/binding/f77/errhsetf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_errhandler_set__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_errhandler_set_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Errhandler_set( (MPI_Comm)(*v1), *v2 ); 2 line(s) not covered by tests in src/binding/f77/errhsetf.c.gcov Uncovered lines in src/binding/f77/errhgetf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_errhandler_get__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_errhandler_get_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Errhandler_get( (MPI_Comm)(*v1), v2 ); 2 line(s) not covered by tests in src/binding/f77/errhgetf.c.gcov All code covered by tests in src/binding/f77/errhfreef.c.gcov All code covered by tests in src/binding/f77/error_stringf.c.gcov All code covered by tests in src/binding/f77/error_classf.c.gcov All code covered by tests in src/binding/f77/finalizef.c.gcov All code covered by tests in src/binding/f77/initializedf.c.gcov Uncovered lines in src/binding/f77/abortf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_abort__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_abort_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Abort( (MPI_Comm)(*v1), *v2 ); 2 line(s) not covered by tests in src/binding/f77/abortf.c.gcov All code covered by tests in src/binding/f77/close_portf.c.gcov All code covered by tests in src/binding/f77/comm_acceptf.c.gcov All code covered by tests in src/binding/f77/comm_connectf.c.gcov All code covered by tests in src/binding/f77/commdiscf.c.gcov All code covered by tests in src/binding/f77/commparentf.c.gcov Uncovered lines in src/binding/f77/comm_joinf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_comm_join__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_comm_join_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Comm_join( *v1, (MPI_Comm *)(v2) ); 2 line(s) not covered by tests in src/binding/f77/comm_joinf.c.gcov All code covered by tests in src/binding/f77/comm_spawnf.c.gcov All code covered by tests in src/binding/f77/spawnmultf.c.gcov All code covered by tests in src/binding/f77/lookup_namef.c.gcov All code covered by tests in src/binding/f77/open_portf.c.gcov All code covered by tests in src/binding/f77/publish_namef.c.gcov All code covered by tests in src/binding/f77/unpubnamef.c.gcov All code covered by tests in src/binding/f77/accumulatef.c.gcov All code covered by tests in src/binding/f77/getf.c.gcov All code covered by tests in src/binding/f77/putf.c.gcov All code covered by tests in src/binding/f77/win_completef.c.gcov All code covered by tests in src/binding/f77/win_createf.c.gcov All code covered by tests in src/binding/f77/win_fencef.c.gcov All code covered by tests in src/binding/f77/win_freef.c.gcov All code covered by tests in src/binding/f77/win_get_groupf.c.gcov Uncovered lines in src/binding/f77/win_lockf.c.gcov 193: -: 188:#include "fproto.h" 194: function pmpi_win_lock__ called 0 returned 0% blocks executed 0% 195: #####: 189:FORT_DLL_SPEC void FORT_CALL mpi_win_lock_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *ierr ){ 196: #####: 190: *ierr = MPI_Win_lock( *v1, *v2, *v3, *v4 ); 2 line(s) not covered by tests in src/binding/f77/win_lockf.c.gcov All code covered by tests in src/binding/f77/win_postf.c.gcov All code covered by tests in src/binding/f77/win_startf.c.gcov All code covered by tests in src/binding/f77/win_testf.c.gcov Uncovered lines in src/binding/f77/win_unlockf.c.gcov 193: