\hypertarget{pml__ob1__recvfrag_8c}{\section{ompi/mca/pml/ob1/pml\+\_\+ob1\+\_\+recvfrag.c File Reference}
\label{pml__ob1__recvfrag_8c}\index{ompi/mca/pml/ob1/pml\+\_\+ob1\+\_\+recvfrag.\+c@{ompi/mca/pml/ob1/pml\+\_\+ob1\+\_\+recvfrag.\+c}}
}
{\ttfamily \#include \char`\"{}ompi\+\_\+config.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/class/opal\+\_\+list.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/threads/mutex.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/prefetch.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}ompi/constants.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}ompi/communicator/communicator.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}ompi/mca/pml/pml.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}ompi/peruse/peruse-\/internal.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}ompi/memchecker.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}pml\+\_\+ob1.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}pml\+\_\+ob1\+\_\+comm.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}pml\+\_\+ob1\+\_\+recvfrag.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}pml\+\_\+ob1\+\_\+recvreq.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}pml\+\_\+ob1\+\_\+sendreq.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}pml\+\_\+ob1\+\_\+hdr.\+h\char`\"{}}\\*
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\hypertarget{pml__ob1__recvfrag_8c_a7d5a9e551bc50817b9e102d6a923e46f}{\#define {\bfseries P\+M\+L\+\_\+\+M\+A\+X\+\_\+\+S\+E\+Q}~$\sim$((mca\+\_\+pml\+\_\+sequence\+\_\+t)0);}\label{pml__ob1__recvfrag_8c_a7d5a9e551bc50817b9e102d6a923e46f}

\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{pml__ob1__recvfrag_8c_a2c9badc02f5beabb84cc4f8cb5c1c20b}{{\bfseries O\+B\+J\+\_\+\+C\+L\+A\+S\+S\+\_\+\+I\+N\+S\+T\+A\+N\+C\+E} (\hyperlink{structmca__pml__ob1__buffer__t}{mca\+\_\+pml\+\_\+ob1\+\_\+buffer\+\_\+t}, \hyperlink{structompi__free__list__item__t}{ompi\+\_\+free\+\_\+list\+\_\+item\+\_\+t}, N\+U\+L\+L, N\+U\+L\+L)}\label{pml__ob1__recvfrag_8c_a2c9badc02f5beabb84cc4f8cb5c1c20b}

\item 
\hypertarget{pml__ob1__recvfrag_8c_af7cb8938a2852fd3b91526f734ee97b7}{{\bfseries O\+B\+J\+\_\+\+C\+L\+A\+S\+S\+\_\+\+I\+N\+S\+T\+A\+N\+C\+E} (\hyperlink{structmca__pml__ob1__recv__frag__t}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+t}, \hyperlink{structopal__list__item__t}{opal\+\_\+list\+\_\+item\+\_\+t}, N\+U\+L\+L, N\+U\+L\+L)}\label{pml__ob1__recvfrag_8c_af7cb8938a2852fd3b91526f734ee97b7}

\item 
static void \hyperlink{pml__ob1__recvfrag_8c_a503bb24225d269c2ac24fbdaa43cc78d}{append\+\_\+frag\+\_\+to\+\_\+list} (\hyperlink{structopal__list__t}{opal\+\_\+list\+\_\+t} $\ast$queue, \hyperlink{structmca__btl__base__module__t}{mca\+\_\+btl\+\_\+base\+\_\+module\+\_\+t} $\ast$btl, \hyperlink{structmca__pml__ob1__match__hdr__t}{mca\+\_\+pml\+\_\+ob1\+\_\+match\+\_\+hdr\+\_\+t} $\ast$hdr, \hyperlink{structmca__btl__base__segment__t}{mca\+\_\+btl\+\_\+base\+\_\+segment\+\_\+t} $\ast$segments, size\+\_\+t num\+\_\+segments, \hyperlink{structmca__pml__ob1__recv__frag__t}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+t} $\ast$frag)
\begin{DoxyCompactList}\small\item\em Static functions. \end{DoxyCompactList}\item 
static int \hyperlink{pml__ob1__recvfrag_8c_a48535048bbff3ef21f6227034f23d755}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+match} (\hyperlink{structmca__btl__base__module__t}{mca\+\_\+btl\+\_\+base\+\_\+module\+\_\+t} $\ast$btl, \hyperlink{structmca__pml__ob1__match__hdr__t}{mca\+\_\+pml\+\_\+ob1\+\_\+match\+\_\+hdr\+\_\+t} $\ast$hdr, \hyperlink{structmca__btl__base__segment__t}{mca\+\_\+btl\+\_\+base\+\_\+segment\+\_\+t} $\ast$segments, size\+\_\+t num\+\_\+segments, int type)
\begin{DoxyCompactList}\small\item\em Match incoming recv\+\_\+frags against posted receives. \end{DoxyCompactList}\item 
\hypertarget{pml__ob1__recvfrag_8c_a891f30fac6f7b147655102320da44b6c}{static \hyperlink{structmca__pml__ob1__recv__request__t}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+request\+\_\+t} $\ast$ {\bfseries match\+\_\+one} (\hyperlink{structmca__btl__base__module__t}{mca\+\_\+btl\+\_\+base\+\_\+module\+\_\+t} $\ast$btl, \hyperlink{structmca__pml__ob1__match__hdr__t}{mca\+\_\+pml\+\_\+ob1\+\_\+match\+\_\+hdr\+\_\+t} $\ast$hdr, \hyperlink{structmca__btl__base__segment__t}{mca\+\_\+btl\+\_\+base\+\_\+segment\+\_\+t} $\ast$segments, size\+\_\+t num\+\_\+segments, \hyperlink{structompi__communicator__t}{ompi\+\_\+communicator\+\_\+t} $\ast$comm\+\_\+ptr, \hyperlink{structmca__pml__ob1__comm__proc__t}{mca\+\_\+pml\+\_\+ob1\+\_\+comm\+\_\+proc\+\_\+t} $\ast$proc, \hyperlink{structmca__pml__ob1__recv__frag__t}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+t} $\ast$frag)}\label{pml__ob1__recvfrag_8c_a891f30fac6f7b147655102320da44b6c}

\item 
\hypertarget{pml__ob1__recvfrag_8c_ad60342c231145828365d04413995bcd6}{void \hyperlink{pml__ob1__recvfrag_8c_ad60342c231145828365d04413995bcd6}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+match} (\hyperlink{structmca__btl__base__module__t}{mca\+\_\+btl\+\_\+base\+\_\+module\+\_\+t} $\ast$btl, mca\+\_\+btl\+\_\+base\+\_\+tag\+\_\+t tag, \hyperlink{structmca__btl__base__descriptor__t}{mca\+\_\+btl\+\_\+base\+\_\+descriptor\+\_\+t} $\ast$des, void $\ast$cbdata)}\label{pml__ob1__recvfrag_8c_ad60342c231145828365d04413995bcd6}

\begin{DoxyCompactList}\small\item\em Callback from B\+T\+L on receipt of a recv\+\_\+frag (match). \end{DoxyCompactList}\item 
\hypertarget{pml__ob1__recvfrag_8c_a6b6815254778e44d8b8aeb43e231b509}{void \hyperlink{pml__ob1__recvfrag_8c_a6b6815254778e44d8b8aeb43e231b509}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+rndv} (\hyperlink{structmca__btl__base__module__t}{mca\+\_\+btl\+\_\+base\+\_\+module\+\_\+t} $\ast$btl, mca\+\_\+btl\+\_\+base\+\_\+tag\+\_\+t tag, \hyperlink{structmca__btl__base__descriptor__t}{mca\+\_\+btl\+\_\+base\+\_\+descriptor\+\_\+t} $\ast$des, void $\ast$cbdata)}\label{pml__ob1__recvfrag_8c_a6b6815254778e44d8b8aeb43e231b509}

\begin{DoxyCompactList}\small\item\em Callback from B\+T\+L on receipt of a recv\+\_\+frag (rndv). \end{DoxyCompactList}\item 
\hypertarget{pml__ob1__recvfrag_8c_a0fad65ec95766353b14266dede86168c}{void \hyperlink{pml__ob1__recvfrag_8c_a0fad65ec95766353b14266dede86168c}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+rget} (\hyperlink{structmca__btl__base__module__t}{mca\+\_\+btl\+\_\+base\+\_\+module\+\_\+t} $\ast$btl, mca\+\_\+btl\+\_\+base\+\_\+tag\+\_\+t tag, \hyperlink{structmca__btl__base__descriptor__t}{mca\+\_\+btl\+\_\+base\+\_\+descriptor\+\_\+t} $\ast$des, void $\ast$cbdata)}\label{pml__ob1__recvfrag_8c_a0fad65ec95766353b14266dede86168c}

\begin{DoxyCompactList}\small\item\em Callback from B\+T\+L on receipt of a recv\+\_\+frag (rget). \end{DoxyCompactList}\item 
\hypertarget{pml__ob1__recvfrag_8c_aab9da589eb34ee3d33269a1b39b11feb}{void \hyperlink{pml__ob1__recvfrag_8c_aab9da589eb34ee3d33269a1b39b11feb}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+ack} (\hyperlink{structmca__btl__base__module__t}{mca\+\_\+btl\+\_\+base\+\_\+module\+\_\+t} $\ast$btl, mca\+\_\+btl\+\_\+base\+\_\+tag\+\_\+t tag, \hyperlink{structmca__btl__base__descriptor__t}{mca\+\_\+btl\+\_\+base\+\_\+descriptor\+\_\+t} $\ast$des, void $\ast$cbdata)}\label{pml__ob1__recvfrag_8c_aab9da589eb34ee3d33269a1b39b11feb}

\begin{DoxyCompactList}\small\item\em Callback from B\+T\+L on receipt of a recv\+\_\+frag (ack). \end{DoxyCompactList}\item 
\hypertarget{pml__ob1__recvfrag_8c_aa0f5b157ce408ad9056c45671466e48e}{void \hyperlink{pml__ob1__recvfrag_8c_aa0f5b157ce408ad9056c45671466e48e}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+frag} (\hyperlink{structmca__btl__base__module__t}{mca\+\_\+btl\+\_\+base\+\_\+module\+\_\+t} $\ast$btl, mca\+\_\+btl\+\_\+base\+\_\+tag\+\_\+t tag, \hyperlink{structmca__btl__base__descriptor__t}{mca\+\_\+btl\+\_\+base\+\_\+descriptor\+\_\+t} $\ast$des, void $\ast$cbdata)}\label{pml__ob1__recvfrag_8c_aa0f5b157ce408ad9056c45671466e48e}

\begin{DoxyCompactList}\small\item\em Callback from B\+T\+L on receipt of a recv\+\_\+frag (frag). \end{DoxyCompactList}\item 
\hypertarget{pml__ob1__recvfrag_8c_a02dd22e3c2d74e11c8a7f2615905209e}{void \hyperlink{pml__ob1__recvfrag_8c_a02dd22e3c2d74e11c8a7f2615905209e}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+put} (\hyperlink{structmca__btl__base__module__t}{mca\+\_\+btl\+\_\+base\+\_\+module\+\_\+t} $\ast$btl, mca\+\_\+btl\+\_\+base\+\_\+tag\+\_\+t tag, \hyperlink{structmca__btl__base__descriptor__t}{mca\+\_\+btl\+\_\+base\+\_\+descriptor\+\_\+t} $\ast$des, void $\ast$cbdata)}\label{pml__ob1__recvfrag_8c_a02dd22e3c2d74e11c8a7f2615905209e}

\begin{DoxyCompactList}\small\item\em Callback from B\+T\+L on receipt of a recv\+\_\+frag (put). \end{DoxyCompactList}\item 
\hypertarget{pml__ob1__recvfrag_8c_ae5d802187852f6698ae16b901b4e4f58}{void \hyperlink{pml__ob1__recvfrag_8c_ae5d802187852f6698ae16b901b4e4f58}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+fin} (\hyperlink{structmca__btl__base__module__t}{mca\+\_\+btl\+\_\+base\+\_\+module\+\_\+t} $\ast$btl, mca\+\_\+btl\+\_\+base\+\_\+tag\+\_\+t tag, \hyperlink{structmca__btl__base__descriptor__t}{mca\+\_\+btl\+\_\+base\+\_\+descriptor\+\_\+t} $\ast$des, void $\ast$cbdata)}\label{pml__ob1__recvfrag_8c_ae5d802187852f6698ae16b901b4e4f58}

\begin{DoxyCompactList}\small\item\em Callback from B\+T\+L on receipt of a recv\+\_\+frag (fin). \end{DoxyCompactList}\item 
\hypertarget{pml__ob1__recvfrag_8c_a805e383e64486812c973eff9abdd8d21}{static \hyperlink{structmca__pml__ob1__recv__request__t}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+request\+\_\+t} $\ast$ {\bfseries get\+\_\+posted\+\_\+recv} (\hyperlink{structopal__list__t}{opal\+\_\+list\+\_\+t} $\ast$queue)}\label{pml__ob1__recvfrag_8c_a805e383e64486812c973eff9abdd8d21}

\item 
\hypertarget{pml__ob1__recvfrag_8c_a2e16dfce297871170551172a4d4df55f}{static \hyperlink{structmca__pml__ob1__recv__request__t}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+request\+\_\+t} $\ast$ {\bfseries get\+\_\+next\+\_\+posted\+\_\+recv} (\hyperlink{structopal__list__t}{opal\+\_\+list\+\_\+t} $\ast$queue, \hyperlink{structmca__pml__ob1__recv__request__t}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+request\+\_\+t} $\ast$req)}\label{pml__ob1__recvfrag_8c_a2e16dfce297871170551172a4d4df55f}

\item 
\hypertarget{pml__ob1__recvfrag_8c_a3ee91a904f9d97baf5891252b9c8ecc1}{static \hyperlink{structmca__pml__ob1__recv__request__t}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+request\+\_\+t} $\ast$ {\bfseries match\+\_\+incomming} (\hyperlink{structmca__pml__ob1__match__hdr__t}{mca\+\_\+pml\+\_\+ob1\+\_\+match\+\_\+hdr\+\_\+t} $\ast$hdr, \hyperlink{structmca__pml__comm__t}{mca\+\_\+pml\+\_\+ob1\+\_\+comm\+\_\+t} $\ast$comm, \hyperlink{structmca__pml__ob1__comm__proc__t}{mca\+\_\+pml\+\_\+ob1\+\_\+comm\+\_\+proc\+\_\+t} $\ast$proc)}\label{pml__ob1__recvfrag_8c_a3ee91a904f9d97baf5891252b9c8ecc1}

\item 
\hypertarget{pml__ob1__recvfrag_8c_a16a4042782e42fe31e65123ba5241f33}{static \hyperlink{structmca__pml__ob1__recv__frag__t}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+t} $\ast$ {\bfseries check\+\_\+cantmatch\+\_\+for\+\_\+match} (\hyperlink{structmca__pml__ob1__comm__proc__t}{mca\+\_\+pml\+\_\+ob1\+\_\+comm\+\_\+proc\+\_\+t} $\ast$proc)}\label{pml__ob1__recvfrag_8c_a16a4042782e42fe31e65123ba5241f33}

\end{DoxyCompactItemize}


\subsection{Function Documentation}
\hypertarget{pml__ob1__recvfrag_8c_a503bb24225d269c2ac24fbdaa43cc78d}{\index{pml\+\_\+ob1\+\_\+recvfrag.\+c@{pml\+\_\+ob1\+\_\+recvfrag.\+c}!append\+\_\+frag\+\_\+to\+\_\+list@{append\+\_\+frag\+\_\+to\+\_\+list}}
\index{append\+\_\+frag\+\_\+to\+\_\+list@{append\+\_\+frag\+\_\+to\+\_\+list}!pml\+\_\+ob1\+\_\+recvfrag.\+c@{pml\+\_\+ob1\+\_\+recvfrag.\+c}}
\subsubsection[{append\+\_\+frag\+\_\+to\+\_\+list}]{\setlength{\rightskip}{0pt plus 5cm}static void append\+\_\+frag\+\_\+to\+\_\+list (
\begin{DoxyParamCaption}
\item[{{\bf opal\+\_\+list\+\_\+t} $\ast$}]{queue, }
\item[{{\bf mca\+\_\+btl\+\_\+base\+\_\+module\+\_\+t} $\ast$}]{btl, }
\item[{{\bf mca\+\_\+pml\+\_\+ob1\+\_\+match\+\_\+hdr\+\_\+t} $\ast$}]{hdr, }
\item[{{\bf mca\+\_\+btl\+\_\+base\+\_\+segment\+\_\+t} $\ast$}]{segments, }
\item[{size\+\_\+t}]{num\+\_\+segments, }
\item[{{\bf mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+t} $\ast$}]{frag}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}}\label{pml__ob1__recvfrag_8c_a503bb24225d269c2ac24fbdaa43cc78d}


Static functions. 

Append a unexpected descriptor to a queue. This function will allocate and initialize the fragment (if necessary) and then will add it to the specified queue. The allocated fragment is not returned to the caller. 

References opal\+\_\+list\+\_\+append.



Referenced by mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+match(), and mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+match().

\hypertarget{pml__ob1__recvfrag_8c_a48535048bbff3ef21f6227034f23d755}{\index{pml\+\_\+ob1\+\_\+recvfrag.\+c@{pml\+\_\+ob1\+\_\+recvfrag.\+c}!mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+match@{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+match}}
\index{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+match@{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+match}!pml\+\_\+ob1\+\_\+recvfrag.\+c@{pml\+\_\+ob1\+\_\+recvfrag.\+c}}
\subsubsection[{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+match}]{\setlength{\rightskip}{0pt plus 5cm}static int mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+match (
\begin{DoxyParamCaption}
\item[{{\bf mca\+\_\+btl\+\_\+base\+\_\+module\+\_\+t} $\ast$}]{btl, }
\item[{{\bf mca\+\_\+pml\+\_\+ob1\+\_\+match\+\_\+hdr\+\_\+t} $\ast$}]{hdr, }
\item[{{\bf mca\+\_\+btl\+\_\+base\+\_\+segment\+\_\+t} $\ast$}]{segments, }
\item[{size\+\_\+t}]{num\+\_\+segments, }
\item[{int}]{type}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}}\label{pml__ob1__recvfrag_8c_a48535048bbff3ef21f6227034f23d755}


Match incoming recv\+\_\+frags against posted receives. 

R\+C\+S/\+C\+T\+S receive side matching.

Supports out of order delivery.


\begin{DoxyParams}{Parameters}
{\em frag\+\_\+header} & (I\+N) Header of received recv\+\_\+frag. \\
\hline
{\em frag\+\_\+desc} & (I\+N) Received recv\+\_\+frag descriptor. \\
\hline
{\em match\+\_\+made} & (O\+U\+T) Flag indicating wether a match was made. \\
\hline
{\em additional\+\_\+matches} & (O\+U\+T) List of additional matches \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
O\+M\+P\+I\+\_\+\+S\+U\+C\+C\+E\+S\+S or error status on failure.
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em hdr} & list of parameters needed for matching This list is also embeded in frag, but this allows to save a memory copy when a match is made in this routine. (I\+N) \\
\hline
{\em frag} & pointer to receive fragment which we want to match (I\+N/\+O\+U\+T). If a match is not made, hdr is copied to frag. \\
\hline
{\em match\+\_\+made} & parameter indicating if we matched frag/ hdr (O\+U\+T) \\
\hline
{\em additional\+\_\+matches} & if a match is made with frag, we may be able to match fragments that previously have arrived out-\/of-\/order. If this is the case, the associated fragment descriptors are put on this list for further processing. (O\+U\+T)\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
O\+M\+P\+I error code
\end{DoxyReturn}
This routine is used to try and match a newly arrived message fragment to pre-\/posted receives. The following assumptions are made
\begin{DoxyItemize}
\item fragments are received out of order
\item for long messages, e.\+g. more than one fragment, a R\+T\+S/\+C\+T\+S algorithm is used.
\item 2nd and greater fragments include a receive descriptor pointer
\item fragments may be dropped
\item fragments may be corrupt
\item this routine may be called simultaneously by more than one thread 
\end{DoxyItemize}We generate the M\+S\+G\+\_\+\+A\+R\+R\+I\+V\+E\+D event as soon as the P\+M\+L is aware of a matching fragment arrival. Independing if it is received on the correct order or not. This will allow the tools to figure out if the messages are not received in the correct order (if multiple network interfaces).

We generate the S\+E\+A\+R\+C\+H\+\_\+\+P\+O\+S\+T\+E\+D\+\_\+\+Q\+U\+E\+U\+E only when the message is received in the correct sequence. Otherwise, we delay the event generation until we reach the correct sequence number.

The match is over. We generate the S\+E\+A\+R\+C\+H\+\_\+\+P\+O\+S\+T\+E\+D\+\_\+\+Q\+\_\+\+E\+N\+D here, before going into the mca\+\_\+pml\+\_\+ob1\+\_\+check\+\_\+cantmatch\+\_\+for\+\_\+match so we can make a difference for the searching time for all messages.

References append\+\_\+frag\+\_\+to\+\_\+list(), mca\+\_\+pml\+\_\+ob1\+\_\+comm\+\_\+proc\+\_\+t\+::expected\+\_\+sequence, mca\+\_\+pml\+\_\+ob1\+\_\+comm\+\_\+proc\+\_\+t\+::frags\+\_\+cant\+\_\+match, mca\+\_\+pml\+\_\+ob1\+\_\+match\+\_\+hdr\+\_\+t\+::hdr\+\_\+common, mca\+\_\+pml\+\_\+ob1\+\_\+match\+\_\+hdr\+\_\+t\+::hdr\+\_\+ctx, mca\+\_\+pml\+\_\+ob1\+\_\+match\+\_\+hdr\+\_\+t\+::hdr\+\_\+seq, mca\+\_\+pml\+\_\+ob1\+\_\+match\+\_\+hdr\+\_\+t\+::hdr\+\_\+src, mca\+\_\+pml\+\_\+ob1\+\_\+match\+\_\+hdr\+\_\+t\+::hdr\+\_\+tag, mca\+\_\+pml\+\_\+ob1\+\_\+common\+\_\+hdr\+\_\+t\+::hdr\+\_\+type, mca\+\_\+pml\+\_\+comm\+\_\+t\+::matching\+\_\+lock, mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+request\+\_\+progress\+\_\+rndv(), opal\+\_\+list\+\_\+get\+\_\+size(), O\+P\+A\+L\+\_\+\+T\+H\+R\+E\+A\+D\+\_\+\+L\+O\+C\+K, and O\+P\+A\+L\+\_\+\+T\+H\+R\+E\+A\+D\+\_\+\+U\+N\+L\+O\+C\+K.



Referenced by mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+match(), mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+rget(), and mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+rndv().

