89 строки
3.1 KiB
Groff
89 строки
3.1 KiB
Groff
.TH fi_trigger 3 "2015\-01\-01" "Libfabric Programmer\[aq]s Manual" "\@VERSION\@"
|
|
.SH NAME
|
|
.PP
|
|
fi_trigger - Triggered operations
|
|
.SH SYNOPSIS
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
#include\ <rdma/fi_trigger.h>
|
|
\f[]
|
|
.fi
|
|
.SH DESCRIPTION
|
|
.PP
|
|
Triggered operations allow an application to queue a data transfer
|
|
request that is deferred until a specified condition is met.
|
|
A typical use is to send a message only after receiving all input data.
|
|
.PP
|
|
A triggered operation may be requested by specifying the FI_TRIGGER flag
|
|
as part of the operation.
|
|
Alternatively, an endpoint alias may be created and configured with the
|
|
FI_TRIGGER flag.
|
|
Such an endpoint is referred to as a triggerable endpoint.
|
|
All data transfer operations on a triggerable endpoint are deferred.
|
|
.PP
|
|
Any data transfer operation is potentially triggerable, subject to
|
|
provider constraints.
|
|
Triggerable endpoints are initialized such that only those interfaces
|
|
supported by the provider which are triggerable are available.
|
|
.PP
|
|
Triggered operations require that applications use struct
|
|
fi_triggered_context as their per operation context parameter.
|
|
The use of struct fi_triggered_context replaces struct fi_context, if
|
|
required by the provider.
|
|
Although struct fi_triggered_context is not opaque to the application,
|
|
the contents of the structure may be modified by the provider.
|
|
This structure has similar requirements as struct fi_context.
|
|
It must be allocated by the application and remain valid until the
|
|
corresponding operation completes or is successfully canceled.
|
|
.PP
|
|
Struct fi_triggered_context is used to specify the condition that must
|
|
be met before the triggered data transfer is initiated.
|
|
If the condition is met when the request is made, then the data transfer
|
|
may be initiated immediately.
|
|
The format of struct fi_triggered_context is described below.
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
struct\ fi_triggered_context\ {
|
|
\ \ \ \ enum\ fi_trigger_event\ \ \ event_type;\ \ \ /*\ trigger\ type\ */
|
|
\ \ \ \ union\ {
|
|
\ \ \ \ \ \ \ \ struct\ fi_trigger_threshold\ threshold;
|
|
\ \ \ \ \ \ \ \ void\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *internal[3];\ /*\ reserved\ */
|
|
\ \ \ \ }\ trigger;
|
|
};
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
The triggered context indicates the type of event assigned to the
|
|
trigger, along with a union of trigger details that is based on the
|
|
event type.
|
|
.SS TRIGGER EVENTS
|
|
.PP
|
|
The following trigger events are defined.
|
|
.PP
|
|
\f[I]FI_TRIGGER_THRESHOLD\f[] : This indicates that the data transfer
|
|
operation will be deferred until an event counter crosses an application
|
|
specified threshold value.
|
|
The threshold is specified using struct fi_trigger_threshold:
|
|
.IP
|
|
.nf
|
|
\f[C]
|
|
struct\ fi_trigger_threshold\ {
|
|
\ \ \ \ struct\ fid_cntr\ *cntr;\ /*\ event\ counter\ to\ check\ */
|
|
\ \ \ \ size_t\ threshold;\ \ \ \ \ \ /*\ threshold\ value\ */
|
|
};
|
|
\f[]
|
|
.fi
|
|
.PP
|
|
Threshold operations are triggered in the order of the threshold values.
|
|
This is true even if the counter increments by a value greater than 1.
|
|
If two triggered operations have the same threshold, they will be
|
|
triggered in the order in which they were submitted to the endpoint.
|
|
.SH SEE ALSO
|
|
.PP
|
|
\f[C]fi_getinfo\f[](3), \f[C]fi_endpoint\f[](3), \f[C]fi_alias\f[](3),
|
|
\f[C]fi_cntr\f[](3)
|
|
.SH AUTHORS
|
|
OpenFabrics.
|