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_PeerHwEngineArraykey. - The
NvSciBufGeneralAttrKey_PeerHwEngineArrayattribute is experimental in NVIDIA DRIVE OS 6.0.7 and should not be used in a production environment.