1 Buffer Sharing and Synchronization
2 ==================================
4 The dma-buf subsystem provides the framework for sharing buffers for
5 hardware (DMA) access across multiple device drivers and subsystems, and
6 for synchronizing asynchronous hardware access.
8 This is used, for example, by drm "prime" multi-GPU support, but is of
9 course not limited to GPU use cases.
11 The three main components of this are: (1) dma-buf, representing a
12 sg_table and exposed to userspace as a file descriptor to allow passing
13 between devices, (2) fence, which provides a mechanism to signal when
14 one device as finished access, and (3) reservation, which manages the
15 shared or exclusive fence(s) associated with the buffer.
20 .. kernel-doc:: drivers/dma-buf/dma-buf.c
23 .. kernel-doc:: include/linux/dma-buf.h
29 .. kernel-doc:: drivers/dma-buf/reservation.c
30 :doc: Reservation Object Overview
32 .. kernel-doc:: drivers/dma-buf/reservation.c
35 .. kernel-doc:: include/linux/reservation.h
41 .. kernel-doc:: drivers/dma-buf/dma-fence.c
44 .. kernel-doc:: include/linux/dma-fence.h
50 .. kernel-doc:: drivers/dma-buf/seqno-fence.c
53 .. kernel-doc:: include/linux/seqno-fence.h
59 .. kernel-doc:: drivers/dma-buf/dma-fence-array.c
62 .. kernel-doc:: include/linux/dma-fence-array.h
65 DMA Fence uABI/Sync File
66 ~~~~~~~~~~~~~~~~~~~~~~~~
68 .. kernel-doc:: drivers/dma-buf/sync_file.c
71 .. kernel-doc:: include/linux/sync_file.h