• Home
  • Raw
  • Download

Lines Matching +full:page +full:- +full:level

10 and data formats. A user space library provides high level services
11 and translates these into low level commands which are then passed
25 the accompanying document, dax-hv-api.txt, which is a plain text
27 Specification" version 3.0.20+15, dated 2017-09-25.
30 High Level Overview
51 done at the user level, which results in almost zero latency between
60 architecture, as there is an additional level of memory virtualization
61 present. This intermediate level is called "real" memory, and the
86 made accessible via mmap(), and are read-only for the application.
109 equal to the number of bytes given in the call. Otherwise -1 is
113 -----------
122 --------
129 --------
138 ---------------------------------------------
143 pwrite() system call. If -1 is returned then errno is set to indicate
155 ----
184 - open dax device
185 - call mmap() to get the completion area address
186 - allocate a CCB and fill in the opcode, flags, parameters, addresses, etc.
187 - submit CCB via write() or pwrite()
188 - go into a loop executing monitored load + monitored wait and
191 - perform a CCB_DEQUEUE
192 - call munmap() for completion area
193 - close the dax device
207 virtual page size for each virtual address given, and uses this to
209 from reading or writing beyond the bound of the virtual page, even
211 saying this is that a DAX operation will never "cross" a virtual page
212 boundary. If an 8k virtual page is used, then the data is strictly
214 page size must be used, or the transaction size will be truncated to
220 and no transaction will cross a page boundary, even a huge page. A
222 page sizes. Sparc does not actually provide a 8Mb hardware page size,
225 half of this 8Mb page can actually be used for any given buffer in a
228 (hardware) page boundary. Note that this entire issue may be hidden by
229 higher level libraries.
233 -------------
234 A CCB is an array of 8 64-bit words. Several of these words provide
250 each of these fields, and see dax-hv-api.txt for a complete description
254 - CCB version, which must be consistent with hardware version
255 - Opcode, which must be one of the documented allowable commands
256 - Address types, which must be set to "virtual" for all the addresses
288 page, since as explained above, the DAX is strictly constrained by
289 virtual page boundaries. In addition, the output buffer must be
290 64-byte aligned and its size must be a multiple of 64 bytes because
307 ccb->control = /* Table 36.1, CCB Header Format */
318 ccb->completion = 0; /* Completion area address, to be filled in by driver */
320 ccb->input0 = (unsigned long) input; /* primary input address */
322 ccb->access = /* Section 36.2.1.2, Data Access Control */
324 | (nbits - 1); /* number of bits in primary input stream, minus 1 */
326 ccb->input1 = 0; /* secondary input address, unused */
328 ccb->op_data = 0; /* scan criteria (value to be matched) */
330 ccb->output = (unsigned long) output; /* output address */
332 ccb->table = 0; /* table address, unused */
364 All other non-zero values indicate error conditions which are
386 --------------
394 ccb->control |= /* Table 36.1, CCB Header Format */
397 ccb->completion = (unsigned long) completion_area; /* Completion area address */
444 .. include:: dax-hv-api.txt