Late Attach
NvSciBuf
provides a mechanism for an application to allocate an
NvSciBufObj
that is shared with other peer NvSciIpcEndpoints after
allocation of NvSciBufObj
, without requiring each peer
NvSciIpcEndpoint
to send an unreconciled NvSciBufAttrList
during initial reconciliation of unreconciled NvSciBufAttrList
and allocation of NvSciBufObj
.
To ensure that the allocated NvSciBufObj
satisfies the memory
requirements of the late peer NvSciIpcEndpoint
, Application must create
a proxy unreconciled NvSciBufAttrList
representing the memory
requirements of the late peer NvSciIpcEndpoint
. This proxy unreconciled
NvSciBufAttrList
must be involved during initial reconciliation of
the unreconciled NvSciBufAttrList
. NvSciBuf
provides
attribute keys such as NvSciBufAttrKey_PeerLocationInfo
and
NvSciBufGeneralAttrKey_PeerHwEngineArray
that should be specified
in the proxy unreconciled NvSciBufAttrList
during initial
reconciliation.
NvSciBuf
also allows remote late peer NvSciIpcEndpoint
to gain access to already allocated NvSciBufObj
, provided the
allocated NvSciBufObj
satisfies the constraints of the unreconciled
NvSciBufAttrList
, received from remote late peer
NvSciIpcEndpoint
, through the
NvSciBufObjAttachPeer()
API.
If the NvSciBufGeneralAttrKey_PeerHwEngineArray
attribute is not
specified in the proxy unreconciled NvSciBufAttrList
,
thenNvSciBuf
allocates a buffer of greater than the requested size
to compensate for hardware engines that gain access to memory after allocation of
NvSciBufObj
. NvSciBuf
also chooses the
appropriate carveout memory location, which is accessible to hardware engines that gain
access to memory after allocation of NvSciBufObj
.
- Detailed descriptions of the attribute keys and the APIs are in the NVIDIA DRIVE? OS API Reference.
- Application needs to refer to User Mode Driver (UMD) documentation for
details of how to specify
the
NvSciBufGeneralAttrKey_PeerHwEngineArray
key. - The
NvSciBufGeneralAttrKey_PeerHwEngineArray
attribute is experimental in NVIDIA DRIVE OS 6.0.7 and should not be used in a production environment.