Lines Matching refs:a

6     on Power 8 systems. CAPI can be thought of as a special tunneling
9 memory and generate page faults. As a result, the host interface to
15 devices as a PCI device by implementing a virtual PCI host bridge.
20 CXL provides a mechanism by which user space applications can
21 directly talk to a device (network or storage) bypassing the typical
22 kernel/device driver stack. The CXL Flash Adapter Driver enables a
25 The CXL Flash Adapter Driver is a kernel module that sits in the
26 SCSI stack as a low level device driver (below the SCSI disk and
36 - Any flash device (LUN) can be configured to be accessed as a
40 user space with a special block library. This mode further
43 or physical LUN access) or access to a kernel/AFU-mediated
45 segmentation of a disk device into virtual LUNs is assisted
51 The Coherent Accelerator Interface Architecture (CAIA) introduces a
52 concept of a master context. A master typically has special privileges
59 The CXL Flash Adapter Driver establishes a master context with the
77 adapter driver. The driver is the only entity that is considered a
85 written to a specification provided by the block library may get
86 access to the Flash from user space (without requiring a system call).
88 This master context driver also provides a series of ioctls for this
92 The first mode is called a virtual mode. In this mode a single scsi
98 The second mode is called the physical mode. In this mode a single
115 The block library can be thought of as a 'user' of services,
118 mode. While it is not a requirement that applications understand
120 a high-level overview of each supported service (IOCTL) is provided
130 Users, such as the block library, that wish to interface with a flash
133 a file descriptor handle must first be obtained in order to establish
134 the communication channel between a user and the kernel. This file
139 driver. Upon successful open, the user receives a file descriptor
149 This ioctl obtains, initializes, and starts a context using the CXL
150 kernel services. These services specify a context id (u16) by which
152 services additionally provide a second file descriptor (herein
157 notification and access in the event of a non-user-initiated close(),
158 such as a killed process. This design point is described in further
161 There are a few important aspects regarding the "tokens" (context id
165 were created. The child of a forked process cannot continue
174 - When a context is no longer needed, the user shall detach from
184 user space on a per-context basis. Additionally, the block size and
189 at a time and if one mode is active (outstanding references exist),
190 requests to use the LUN in a different mode are denied.
194 treated as a resource handle that is returned to the user. The user
201 on a per-context basis. Additionally, the block size and last logical
206 at a time and if one mode is active (outstanding references exist),
207 requests to use the LUN in a different mode are denied.
211 is treated as a resource handle that is returned to the user. The
214 By default, the virtual LUN is created with a size of 0. The user
216 the virtual LUN to a desired size. To avoid having to perform this
218 option of specifying a size as part of the DK_CXLFLASH_USER_VIRTUAL
221 storage. This is reflected by the last LBA being a non-zero value.
225 This ioctl is responsible for resizing a previously created virtual
226 LUN and will fail if invoked upon a LUN that is not in virtual
233 operating in the virtual mode and used to program a LUN translation
234 table that the AFU references when provided with a resource handle.
238 This ioctl is responsible for releasing a previously obtained
239 reference to either a physical or virtual LUN. This can be
251 This ioctl is responsible for unregistering a context with the
259 This ioctl is responsible for cloning a previously created
260 context to a more recently created context. It exists solely to
261 support maintaining user space access to storage after a process
264 and fd2 as the parent, but under a different context.
267 therefore each fork must be met with establishing a new context
269 and playback required by a user in such a scenario. When a process
271 a context (via DK_CXLFLASH_ATTACH) and then using this ioctl to
282 where the changes affect the application (such as a LUN resize), the
285 The user calls in when they want to validate that a LUN hasn't been
286 changed in response to a check condition. As the user is operating out
291 verifying a LUN change (ie: size different) with sense data is
297 of a specified user context. Any state associated with the user context
303 architected behavior for a user is to call into this ioctl to recover
305 check if the device is operating normally. If a failure is returned
314 This ioctl is used to switch a LUN from a mode where it is available
315 for file-system access (legacy), to a mode where it is set aside for
316 exclusive user space access (superpipe). In case a LUN is visible