Start by saying that I have not been involved
in the nitty gritty of the per-object locking design.
What protects the attached buffer/data
structures/request when doing multithreaded MPI_Bsend()'s? All I
see in the code path is a (no-op) MPIU_THREAD_CS_ENTER(ALLFUNC,).
I have a customer test in which the
threads seem to be walking all over the request around:
/bgusr/bobc/bgq/comm/lib/dev/mpich2/src/mpid/pamid/include/../src/mpid_request.h:259
0000000001088c0c MPIR_Request_complete
/bgusr/bobc/bgq/comm/lib/dev/mpich2/src/mpi/pt2pt/mpir_request.c:87
000000000106e874 MPIR_Test_impl
/bgusr/bobc/bgq/comm/lib/dev/mpich2/src/mpi/pt2pt/test.c:62
00000000010188f0 MPIR_Bsend_check_active
/bgusr/bobc/bgq/comm/lib/dev/mpich2/src/mpi/pt2pt/bsendutil.c:455
0000000001018dc0 MPIR_Bsend_isend
/bgusr/bobc/bgq/comm/lib/dev/mpich2/src/mpi/pt2pt/bsendutil.c:226
0000000001008734 PMPI_Bsend
/bgusr/bobc/bgq/comm/lib/dev/mpich2/src/mpi/pt2pt/bsend.c:163
00000000010009c0 00000012.long_branch_r2off.__libc_start_main+0
:0
000000000130cbc0 start_thread
eg. (fprinting from MPIU_HANDLE_LOG_REFCOUNT_CHANGE)
stderr[8]: set 0x15f8048 (0xac0000ff
kind=REQUEST) refcount to 2
stderr[8]: decr 0x15f8048 (0xac0000ff
kind=REQUEST) refcount to 1
stderr[8]: decr 0x15f8048 (0xac0000ff
kind=REQUEST) refcount to 0
stderr[8]: decr 0x15f8048 (0xac0000ff
kind=REQUEST) refcount to -1
stderr[8]: decr 0x15f8048 (0xac0000ff
kind=REQUEST) refcount to -2
stderr[8]: decr 0x15f8048 (0xac0000ff
kind=REQUEST) refcount to -3
stderr[8]: decr 0x15f8048 (0xac0000ff
kind=REQUEST) refcount to -4
stderr[8]: decr 0x15f8048 (0xac0000ff
kind=REQUEST) refcount to -5
stderr[8]: decr 0x15f8048 (0xac0000ff
kind=REQUEST) refcount to -6
stderr[8]: decr 0x15f8048 (0xac0000ff
kind=REQUEST) refcount to -7
stderr[8]: decr 0x15f8048 (0xac0000ff
kind=REQUEST) refcount to -8
Bob Cernohous: (T/L 553) 507-253-6093
BobC@us.ibm.com
IBM Rochester, Building 030-2(C335), Department 61L
3605 Hwy 52 North, Rochester, MN 55901-7829
> Chaos reigns within.
> Reflect, repent, and reboot.
> Order shall return.