Lines Matching full:the

13The following APIs provide access via the Hypervisor to hardware assisted data processing function…
15 …even on supported platforms. Restrictions on the use of these APIs may be imposed in order to supp…
19The Data Analytics Accelerator (DAX) functionality is a collection of hardware coprocessors that p…
20 …high speed processoring of database-centric operations. The coprocessors may support one or more of
21the following data query operations: search, extraction, compression, decompression, and translati…
24The DAX is a virtual device to sun4v guests, with supported data operations indicated by the virtu…
25 … compatibility property. Functionality is accessed through the submission of Command Control Blocks
26 …(CCBs) via the ccb_submit API function. The operations are processed asynchronously, with the stat…
27 … of the submitted operations reported through a Completion Area linked to each CCB. Each CCB has a
28 …separate Completion Area and, unless execution order is specifically restricted through the use of…
29 …conditional flags, the execution order of submitted CCBs is arbitrary. Likewise, the time to compl…
32 …st software may implement a software timeout on CCB operations, and if the timeout is exceeded, the
33 …operation may be cancelled or killed via the ccb_kill API function. It is recommended for guest so…
35 …recommended such implementation use the ccb_info API function to check the status of a CCB prior to
36 …killing it in order to determine if the CCB is still in queue, or may have been lost due to a RAS …
38 …There is no fixed limit on the number of outstanding CCBs guest software may have queued in the vi…
39 …machine, however, internal resource limitations within the virtual machine can cause CCB submissio…
44The availability of DAX coprocessor command service is indicated by the presence of the DAX virtual
45 …device node in the guest MD (Section 8.24.17, “Database Analytics Accelerators (DAX) virtual-device
49 The query functionality may vary based on the compatibility property of the virtual device:
77 …See Section 36.2.1, “Query CCB Command Formats” for the corresponding CCB input and output formats.
82 … "ORCL,sun4v-dax-fc" is compatible with the "ORCL,sun4v-dax" interface, and includes additional CCB
106 …See Section 36.2.1, “Query CCB Command Formats” for the corresponding CCB input and output formats.
112The DAX virtual device has multiple interrupts associated with it which may be used by the guest if
113 …desired. The number of device interrupts available to the guest is indicated in the virtual device…
114 …st MD (Section 8.24.17, “Database Analytics Accelerators (DAX) virtual-device node”). If the device
115 …node indicates N interrupts available, the guest may use any value from 0 to N - 1 (inclusive) in …
116 …interrupt number field. Using values outside this range will result in the CCB being rejected for …
119The interrupts may be bound and managed using the standard sun4v device interrupts API (Chapter 16,
123 …CCBs are either 64 or 128 bytes long, depending on the operation type. The exact contents of the C…
131 referenced by a CCB must be pinned in memory until the CCB either completes execution or is killed
132 via the ccb_kill API call. Changes in virtual address mappings occurring after CCB submission are n…
140 [31:28] CCB version. For API version 2.0: set to 1 if CCB uses OZIP encoding; set to 0 if the
142 [27] When API version 2.0 is negotiated, this is the Pipeline Flag [512]. It is reserved in
203 The Long CCB flag indicates whether the submitted CCB is 64 or 128 bytes long; value is 0 for 64 by…
206 The Serial and Conditional flags allow simple relative ordering between CCBs. Any CCB with the Seri…
207 …et will execute sequentially relative to any previous CCB that is also marked as Serial in the same
208 CCB submission. CCBs without the Serial flag set execute independently, even if they are between CC…
209 with the Serial flag set. CCBs marked solely with the Serial flag will execute upon the completion …
210 previous Serial CCB, regardless of the completion status of that CCB. The Conditional flag allows C…
211 to conditionally execute based on the successful execution of the closest CCB marked with the Seria…
213 and Serial to allow execution chaining. The flags do NOT allow fan-out chaining, where multiple CCBs
214 execute in parallel based on the completion of another CCB.
216 The Pipeline flag is an optimization that directs the output of one CCB (the "source" CCB) directly…
217 the input of the next CCB (the "target" CCB). The target CCB thus does not need to read the input f…
218 memory. The Pipeline flag is advisory and may be dropped.
220 Both the Pipeline and Serial bits must be set in the source CCB. The Conditional bit must be set in…
221 target CCB. Exactly one CCB must be made conditional on the source CCB; either 0 or 2 target CCBs
222 is invalid. However, Pipelines can be extended beyond two CCBs: the sequence would start with a CCB
223 with both the Pipeline and Serial bits set, proceed through CCBs with the Pipeline, Serial, and Con…
224 bits set, and terminate at a CCB that has the Conditional bit set, but not the Pipeline bit.
231The input of the target CCB must start within 64 bytes of the output of the source CCB or the pipe…
232 will be ignored. All CCBs in a pipeline must be submitted in the same call to ccb_submit.
234The various address type fields indicate how the various address values used in the CCB should be
235 …interpreted by the virtual machine. Not all of the types specified are used by every CCB format. T…
236 …which are not applicable to the given CCB command should be indicated as type 0 (No address). Virt…
237 …addresses used in the CCB must have translation entries present in either the TLB or a configured …
238 …for the submitting virtual processor. Virtual addresses which cannot be translated by the virtual …
239 …will result in the CCB submission being rejected, with the causal virtual address indicated. The C…
240 …may be resubmitted after inserting the translation, or the address may be translated by guest soft…
241 resubmitted using the real address translation.
245 … Data for query commands may be encoded in multiple possible formats. The data query commands use a
246 …common set of values to indicate the encoding formats of the data being processed. Some encoding f…
247 …re multiple data streams for processing, requiring the specification of both primary data formats …
248 encoded data) and secondary data streams (meta-data for the encoded data).
252The primary input format code is a 4-bit field when it is used. There are 10 primary input formats…
253 The packed formats are not endian neutral. Code values not listed below are reserved.
268 … 0x8 Fixed width byte packed with Up to 16 bytes before the encoding; compressed stream
270 … OZIP (CCB version 1) encoding within a byte; pointer to the encoding table must be
274 … OZIP (CCB version 1) encoding least significant bit within a byte; pointer to the encoding
276 … 0xA Variable width byte packed with Up to 16 bytes before the encoding; compressed stream
279 … a secondary input; pointer to the encoding table must be
288 …0xC Fixed width byte packed with Up to 16 bytes before the encoding; compressed str…
291 … OZIP (CCB version 1) encoding as a secondary input; pointer to the encoding table must
294 … run length encoding, followed by before the encoding; compressed stream bits are read most
297 … input; pointer to the encoding table must be provided
299 If OZIP encoding is used, there must be no reserved bytes in the table.
303 …or primary input data streams with fixed size elements, the element size must be indicated in the
304 …command. The size is encoded as the number of bits or bytes, minus one. The valid value range for …
305 field depends on the input format selected, as listed in the table above.
309 …For primary input data streams which require a secondary input stream, the secondary input stream …
310 …always encoded in a fixed width, bit-packed format. The bits are read from most significant bit to…
311 …significant bit within a byte. There are two encoding options for the secondary input stream data …
312 depending on whether the value of 0 is needed:
333 …Bit-wise input data streams may have any alignment within the base addressed byte. The offset, spe…
335 …value of 0 indicates that the first input element begins at the most significant bit in the first …
336 value of 7 indicates it begins with the least significant bit.
349 supported for every command. The format is indicated by a 4-bit field in the CCB:
365 0xD 2 byte elements where each element is the index value of a bit,
367 0xE 4 byte elements where each element is the index value of a bit,
373 … On platforms which support ADI, the ADI version number may be specified for each separate memory
374 …access type used in the CCB command. ADI checking only occurs when reading data. When writing data,
375 the specified ADI version number overwrites any existing ADI value in memory.
377 …An ADI version value of 0 or 0xF indicates the ADI checking is disabled for that data access, even…
378 …enabled in memory. By setting the appropriate flag in CCB_SUBMIT (Section 36.3.1, “ccb_submit”) it…
382The ADI value is only guaranteed to be checked on the first 64 bytes of each data access. Mismatch…
389 …are provided using a virtual address, the page size for checking is extracted from the TTE for tha…
390 …address. When using real addresses, the guest must supply the page size in the same field as the a…
391 …value. The page size must be one of the sizes supported by the underlying virtual machine. Using a…
392 …that is not supported may result in the CCB submission being rejected or the generation of a CCB p…
393 error in the completion area.
405The only supported output format is a padded, byte-aligned output stream, using output codes 0x0 -…
406 …When the specified output element size is larger than the extracted input element size, zeros are …
407the extracted input element. First, if the decompressed input size is not a whole number of bytes,…
408 …padded to the most significant bit side till the next byte boundary. Next, if the output element s…
409 …than the byte padded input element, bytes of value 0 are added based on the Padding Direction bit …
410 …CCB. If the output element size is smaller than the byte-padded input element size, the input elem…
411 …truncated by dropped from the least significant byte side until the selected output size is reache…
413The return value of the CCB completion area is invalid. The “number of elements processed” field i…
416 The extract CCB is a 64-byte “short format” CCB.
418The extract CCB command format can be specified by the following packed C structure for a big-endi…
435 The exact field offsets, sizes, and composition are as follows:
463 to be added to the left side of output elements. A value of 0
464 causes padding bytes to be added to the right side of output
472 the device interrupt number specified in the lower bits of this
473 completion word. If 0, the lower bits of this completion word
483 [59:56] If using real address, these bits should be filled in with the
484 page size code for the page boundary checking the guest wants
485 the virtual machine to use when accessing this data stream
523 allocated in the cache that is local to the submitting
526 existing cache lines associated with the data to remain
528 already in cache will be allocated in the cache local
529 to the submitting virtual cpu.
545 once count is reached. The count is
560 … once count is reached. The count is
563 … bits skipped by the Primary Input
564 … Offset field value of the command
574 … [59:56] If using real address, these bits should be filled in with the
575 … page size code for the page boundary checking the guest wants
576the virtual machine to use when accessing this data stream
592The scan commands search a stream of input data elements for values which match the selection crit…
593 …All the input format types are supported. There are multiple formats for the scan commands, allowi…
595 …a specified range. The specific type of scan is indicated by the command code in the CCB header. F…
596 …scan range commands, the boundary conditions can be specified as greater-than-or-equal-to a value,…
599 …There are two supported formats for the output stream: the bit vector and index array formats (cod…
600 …0xD, and 0xE). For the standard scan command using the bit vector output, for each input element t…
601 …exists one bit in the vector that is set if the input element matched the scan criteria, or clear …
602 …inverted scan command inverts the polarity of the bits in the output. The most significant bit of
603 …byte of the output stream corresponds to the first element in the input stream. The standard index…
604 …output format contains one array entry for each input element that matched the scan criteria. Each…
612 entry is the index of an input element that matched the scan criteria. An inverted scan command pro…
613 a similar array, but of all the input elements which did NOT match the scan criteria.
615 The return value of the CCB completion area contains the number of input elements found which match
616 the scan criteria (or number that did not match for the inverted scans). The “number of elements pr…
617 field in the CCB completion area will be valid, indicating the number of input elements processed.
621 The scan CCB command format can be specified by the following packed C structure for a big-endian
642 The exact field offsets, sizes, and composition are as follows:
663 … In a scan range operation, this is the size of the upper range
672 boundary. The value of this field is the number of bytes in the
677 In a scan range operation, this is the size of the lower range
678 boundary. The value of this field is the number of bytes in the
687 than 4 bytes, the value is left-aligned to the lowest address bytes.
689 is less than 4 bytes, the value is left-aligned to the lowest address bytes.
693 64 4 Next 4 most significant bytes of first scan criteria operand occurring after the
694 bytes specified at offset 40, if needed by the operand size. If first operand
695 is less than 8 bytes, the valid bytes are left-aligned to the lowest address.
697 the bytes specified at offset 44, if needed by the operand size. If second
698 operand is less than 8 bytes, the valid bytes are left-aligned to the lowest
700 72 4 Next 4 most significant bytes of first scan criteria operand occurring after the
701 bytes specified at offset 64, if needed by the operand size. If first operand
702 is less than 12 bytes, the valid bytes are left-aligned to the lowest address.
704 the bytes specified at offset 68, if needed by the operand size. If second
705 operand is less than 12 bytes, the valid bytes are left-aligned to the lowest
707 80 4 Next 4 most significant bytes of first scan criteria operand occurring after the
708 bytes specified at offset 72, if needed by the operand size. If first operand
709 is less than 16 bytes, the valid bytes are left-aligned to the lowest address.
711 the bytes specified at offset 76, if needed by the operand size. If second
712 operand is less than 16 bytes, the valid bytes are left-aligned to the lowest
724The translate commands takes an input array of indices, and a table of single bit values indexed b…
725 …indices, and outputs a bit vector or index array created by reading the tables bit value at each i…
726the input array. The output should therefore contain exactly one bit per index in the input data s…
727 …utputting as a bit vector. When outputting as an index array, the number of elements depends on the
728 …values read in the bit table, but will always be less than, or equal to, the number of input eleme…
729 …a restricted subset of the possible input format types are supported. No variable width or Huffman…
730 … encoded input streams are allowed. The primary input data element size must be 3 bytes or less.
732The maximum table index size allowed is 15 bits, however, larger input elements may be used to pro…
733 …additional processing of the output values. If 2 or 3 byte values are used, the least significant …
734 …used as an index into the bit table. The most significant 9 bits (when using 3-byte input elements…
735 …hen using 2-byte input elements) are compared against a fixed 9-bit test value provided in the CCB.
736 …If the values match, the value from the bit table is used as the output element value. If the valu…
737 match, the output data element value is forced to 0.
739 …In the inverted translate operation, the bit value read from bit table is inverted prior to its us…
740 …al processing based on any additional non-index bits remains unchanged, and still forces the output
741 …element value to 0 on a mismatch. The specific type of translate command is indicated by the comma…
742 code in the CCB header.
744 …There are two supported formats for the output stream: the bit vector and index array formats (cod…
745 …0xD, and 0xE). The index array format is an array of indices of bits which would have been set if
748The return value of the CCB completion area contains the number of bits set in the output bit vect…
749 …or number of elements in the output index array. The “number of elements processed” field in the C…
750 completion area will be valid, indicating the number of input elements processed.
754The translate CCB command format can be specified by the following packed C structure for a big-en…
771 The exact field offsets, sizes, and composition are as follows:
799 [8:0] Test value used for comparison against the most significant bits
800 in the input values, when using 2 or 3 byte input elements.
804 except Primary Input Length Format may not use the 0x0 value)
813 [59:56] If using real address, these bits should be filled in with the
814 page size code for the page boundary checking the guest wants
815 the virtual machine to use when accessing this data stream
834The select command filters the primary input data stream by using a secondary input bit vector to …
835 …which input elements to include in the output. For each bit set at a given index N within the bit …
836the Nth input element is included in the output. If the bit is not set, the element is not include…
837 …restricted subset of the possible input format types are supported. No variable width or run lengt…
838 … input streams are allowed, since the secondary input stream is used for the filtering bit vector.
840The only supported output format is a padded, byte-aligned output stream. The stream follows the s…
843The return value of the CCB completion area contains the number of bits set in the input bit vecto…
844 …"number of elements processed" field in the CCB completion area will be valid, indicating the numb…
847 The select CCB is a 64-byte “short format” CCB.
849The select CCB command format can be specified by the following packed C structure for a big-endian
866 The exact field offsets, sizes, and composition are as follows:
894 … to be added to the left side of output elements. A value of 0
895 … causes padding bytes to be added to the right side of output
908The no-op (no operation) command is a CCB which has no processing effect. The CCB, when processed
909 …by the virtual machine, simply updates the completion area with its execution status. The CCB may …
910 the serial-conditional flags set in order to restrict when it executes.
912The sync command is a variant of the no-op command which with restricted execution timing. A sync
913 command CCB will only execute when all previous commands submitted in the same request have
914 …completed. This is stronger than the conditional flag sequencing, which is only dependent on a sin…
915 …previous serial CCB. While the relative ordering is guaranteed, virtual machine implementations wi…
916 … shared hardware resources may cause the sync command to wait for longer than the minimum required
919The return value of the CCB completion area is invalid for these CCBs. The “number of elements
924The no-op CCB command format can be specified by the following packed C structure for a big-endian
936 The exact field offsets, sizes, and composition are as follows:
956 All CCB commands use a common 128-byte Completion Area format, which can be specified by the
976The Completion Area must be a 128-byte aligned memory location. The exact layout can be described
977 using byte offsets and sizes relative to the memory base:
1013 4 4 If a partial symbol warning was generated, this field contains the n…
1024 The CCB completion area should be treated as read-only by guest software. The CCB execution status
1025 byte will be cleared by the Hypervisor to reflect the pending execution status when the CCB is subm…
1026 successfully. All other fields are considered invalid upon CCB submission until the CCB execution s…
1030 execution of the CCB command. Some valid data may be accessible depending on the fault type, howeve…
1031 it is recommended that guest software treat the destination buffer as being in an unknown state. If…
1032 completes with a status byte of 0x2, the error reason code byte can be read to determine what corre…
1035 A buffer overflow indicates that the results of the operation exceeded the size of the output buffe…
1036 in the CCB. The operation can be retried by resubmitting the CCB with a larger output buffer.
1038 A CCB decoding error indicates that the CCB contained some invalid field values. It may be also be
1039 triggered if the CCB output is directed at a non-existent secondary input and the pipelining hint i…
1041 A page overflow error indicates that the operation required accessing a memory location beyond the
1042 size associated with a given address. No data will have been read or written past the page boundary…
1043 partial results may have been written to the destination buffer. The CCB can be resubmitted with a …
1044 page size memory allocation to complete the operation.
1051 …In the case of pipelined CCBs, a page overflow error will be triggered if the output from the pipe…
1052 …CCB ends before the input of the pipeline target CCB. Page boundaries are ignored when the pipeline
1055 …Command kill indicates that the CCB execution was halted or prevented by use of the ccb_kill API c…
1057 …Command timeout indicates that the CCB execution began, but did not complete within a pre-determin…
1058 … limit set by the virtual machine. The command may have produced some or no output. The CCB may be
1061 …ADI miscompare indicates that the memory buffer version specified in the CCB did not match the val…
1062 …in memory when accessed by the virtual machine. Guest software should not attempt to resubmit the
1063 without determining the cause of the version mismatch.
1065 …A data format error indicates that the input data stream did not follow the specified data input f…
1066 selected in the CCB.
1069 …errors may result in multiple failures until RAS software can identify and isolate the faulty comp…
1071The output size field indicates the number of bytes of valid output in the destination buffer. Thi…
1074The runtime field indicates the execution time of the CCB command once it leaves the internal virt…
1075 …machine queue. The time units are fixed, but unspecified, allowing only relative timing comparisons
1076 …by guest software. The time units may also vary by hardware platform, and should not be construed …
1079 … data query commands process data in units of elements. If applicable to the command, the number of
1080 …elements processed is indicated in the listed field. This field is not valid for all possible CCB …
1082The return value and extended return value fields are output locations for commands which do not u…
1083 …a destination output buffer, or have secondary return results. The field is not valid for all poss…
1099 … Submit one or more coprocessor control blocks (CCBs) for evaluation and processing by the virtual
1100 … machine. The CCBs are passed in a linear array indicated by address. length indicates the size of
1101 the array in bytes.
1108 The address should be aligned to the size indicated by length, rounded up to the nearest power of
1110 length must be a multiple of 64 bytes. If length is zero, the maximum supported array length will be
1111 returned as length in ret1. In all other cases, the length value in ret1 will reflect the number of…
1112 successfully consumed from the input CCB array.
1115 Virtual machines should never reject submissions based on the alignment of address if the
1116 … entire array is contained within a single memory page of the smallest page size supported by the
1119 A guest may choose to submit addresses used in this API function, including the CCB array address,
1120 as either a real or virtual addresses, with the type of each address indicated in flags. Virtual ad…
1121 must be present in either the TLB or an active TSB to be processed. The translation context for vir…
1122 addresses is determined by a combination of CCB contents and the flags argument.
1124 The flags argument is divided into multiple fields defined as follows:
1159The CCB submission type and address type for the CCB array must be provided in the flags argument.
1160 … All other fields are optional values which change the default behavior of the CCB processing.
1162 …When set to one, the "Disable ADI for VA reads" bit will turn off ADI checking when using a virtual
1164 …available when using major version 2 of the coprocessor API group; at major version 1 it is reserv…
1167 …By default, all virtual addresses are treated as user addresses. If the virtual address translatio…
1168 …privileged, they must be marked as such in the appropriate flags field. The virtual addresses used…
1169 the submitted CCBs must all be translated with the same privilege level.
1171 …By default, all virtual addresses used within the submitted CCBs are translated using the primary …
1172 …active at the time of the submission. The address type field within a CCB allows each address to r…
1173 …translation in an alternate address context. The address context used when the alternate address c…
1174 requested is selected in the flags argument.
1176The all-or-nothing flag specifies whether the virtual machine should allow partial submissions of
1178the all-or-nothing flag to avoid broken conditional chains. Using long CCB chains on a machine und…
1179 … high coprocessor load may make this impractical, however, and require submitting without the flag.
1180 …When submitting serial-conditional CCBs without the all-or-nothing flag, guest software must manua…
1181 …implement the serial-conditional behavior at any point where the chain was not submitted in a sing…
1182 …call, and resubmission of the remaining CCBs should clear any conditional flag that might be set i…
1185 …When the all-or-nothing flag is not specified, callers should check the value of length in ret1 to…
1186 … how many CCBs from the array were successfully submitted. Any remaining CCBs can be resubmitted
1189The value of length in ret1 is also valid when the API call returns an error, and callers should a…
1190 …check its value to determine which CCBs in the array were already processed. This will additionally
1191 identify which CCB encountered the processing error, and was not submitted successfully.
1193 …If the queue info flag is used during submission, and at least one CCB was successfully submitted,…
1201The value of status data depends on the status value. See error status code descriptions for detai…
1202The value is undefined for status values that do not specifically list a value for the status data.
1204The API has a reserved input and output register which will be used in subsequent minor versions o…
1205 …tion. Guest software implementations should treat that register as voltile across the function call
1209 … EOK One or more CCBs have been accepted and enqueued in the virtual machine
1219 EWOULDBLOCK An internal resource conflict within the virtual machine has prevented it from
1220 being able to complete the CCB submissions sufficiently quickly, requiring
1222 successfully enqueued prior to the block, and all remaining CCBs may be
1224 EBADALIGN CCB array is not on a 64-byte boundary, or the array length is not a multiple
1226 ENORADDR A real address used either for the CCB array, or within one of the submitted
1227 CCBs, is not valid for the guest. Some CCBs may have been enqueued prior
1228 to the error being detected.
1229 ENOMAP A virtual address used either for the CCB array, or within one of the submitted
1230 CCBs, could not be translated by the virtual machine using either the TLB
1231 or TSB contents. The submission may be retried after adding the required
1232 mapping, or by converting the virtual address into a real address. Due to the
1234 the number of times the translation may fail, and it is recommended all guests
1235 implement some real address based backup. The virtual address which failed
1237 enqueued prior to the error being detected.
1238 EINVAL The virtual machine detected an invalid CCB during submission, or invalid
1240 will be detected during submission, and some may be reported as errors in the
1241 completion area instead. Some CCBs may have been enqueued prior to the
1242 error being detected. This error may be returned if the CCB version is invalid.
1243 ETOOMANY The request was submitted with the all-or-nothing flag set, and the array size is
1244 greater than the virtual machine can support in a single request. The maximum
1245 supported size for the current virtual machine can be queried by submitting a
1247 ENOACCESS The guest does not have permission to submit CCBs, or an address used in a
1248 CCBs lacks sufficient permissions to perform the required operation (no write
1249 permission on the destination buffer address, for example). A virtual address
1251 CCBs may have been enqueued prior to the error being detected.
1252 EUNAVAILABLE The requested CCB operation could not be performed at this time. The
1253 restricted operation availability may apply only to the first unsuccessfully
1254 submitted CCB, or may apply to a larger scope. The status should not be
1255 interpreted as permanent, and the guest should attempt to submit CCBs in
1256 the future which had previously been unable to be performed. The status
1257 data provides additional information about scope of the restricted availability
1260 0 Processing for the exact CCB instance submitted was unavailable,
1261 and it is recommended the guest emulate the operation. The
1264 1 Processing is unavailable for all CCBs using the requested opcode,
1265 and it is recommended the guest emulate the operation. The
1267 opcodes, but can expect continued rejections of CCBs using the
1268 same opcode in the near future.
1276 … 2 Processing is unavailable for all CCBs using the requested CCB
1277 … version, and it is recommended the guest emulate the operation.
1278The guest should continue to submit all other CCBs that use
1280 CCBs using the same CCB version in the near future.
1281 … 3 Processing is unavailable for all CCBs on the submitting vcpu,
1282 … and it is recommended the guest emulate the operation or resubmit
1283the CCB on a different vcpu. The guest should continue to submit
1285 CCBs on this vcpu in the near future.
1287the guest emulate the operation. The guest should expect all CCB
1288 … submissions to be similarly rejected in the near future.
1302 …Requests status information on a previously submitted CCB. The previously submitted CCB is identif…
1303 by the 64-byte aligned real address of the CCBs completion area.
1309 …COMPLETED 0 The CCB has been fetched and executed, and is no longer acti…
1310 the virtual machine.
1311 … ENQUEUED 1 The requested CCB is current in a queue awaiting execution.
1312 …INPROGRESS 2 The CCB has been fetched and is currently being executed. It…
1313 … be possible to stop the execution using the ccb_kill hypercall.
1314 …NOTFOUND 3 The CCB could not be located in the virtual machine, and doe…
1315 … appear to have been executed. This may occur if the CCB was lost
1316 … due to a hardware error, or the CCB may not have been successfully
1317 submitted to the virtual machine in the first place.
1321 … guest software should invoke the ccb_kill hypercall prior to assuming the request CCB will never
1322 be executed because it was in the NOTFOUND state.
1329The position return value is only valid when the state is ENQUEUED. The value returned is the numb…
1330 …of other CCBs ahead of the requested CCB, to provide a relative estimate of when the CCB may execu…
1332The dax return value is only valid when the state is ENQUEUED. The value returned is the DAX unit
1333 …instance identifier for the DAX unit processing the queue where the requested CCB is located. The
1334 … matches the value that would have been, or was, returned by ccb_submit using the queue info flag.
1336The queue return value is only valid when the state is ENQUEUED. The value returned is the DAX
1337 …queue instance identifier for the DAX unit processing the queue where the requested CCB is located…
1338 …value matches the value that would have been, or was, returned by ccb_submit using the queue info …
1342 EOK The request was processed and the CCB state is valid.
1344 ENORADDR The real address provided for address is not valid.
1345 EINVAL The CCB completion area contents are not valid.
1346 …EWOULDBLOCK Internal resource constraints prevented the CCB state from being queried…
1347 time. The guest should retry the request.
1348 …ENOACCESS The guest does not have permission to access the coprocessor virtual dev…
1359 …Request to stop execution of a previously submitted CCB. The previously submitted CCB is identifie…
1360 the 64-byte aligned real address of the CCBs completion area.
1362The kill attempt can produce one of several values in the result return value, reflecting the CCB …
1363 and actions taken by the Hypervisor:
1366 …COMPLETED 0 The CCB has been fetched and executed, and is no longer active in
1367the virtual machine. It could not be killed and no action was taken.
1368 … DEQUEUED 1 The requested CCB was still enqueued when the kill request was
1369 … submitted, and has been removed from the queue. Since the CCB
1371 … it, and the completion area will never be updated. The same CCB may
1373 … KILLED 2 The CCB had been fetched and was being executed when the kill
1374 … request was submitted. The CCB execution was stopped, and the CCB
1375 … is no longer active in the virtual machine. The CCB completion area
1376 … will reflect the killed status, with the subsequent implications that
1385 … command execution if the command was stopped just prior to writing
1386 to the completion area.
1387 …NOTFOUND 3 The CCB could not be located in the virtual machine, and does n…
1388 … appear to have been executed. This may occur if the CCB was lost
1389 … due to a hardware error, or the CCB may not have been successfully
1390 … submitted to the virtual machine in the first place. CCBs in the state
1391 … are guaranteed to never execute in the future unless resubmitted.
1395 …If the pipeline target CCB is killed but the pipeline source CCB was skipped, the completion area …
1398 …If the pipeline source CCB is killed, the pipeline target CCB's completion status may read (1,0) "…
1399 … This does not mean the target CCB was processed; since the source CCB was killed, there was no
1400 meaningful output on which the target CCB could operate.
1404 EOK The request was processed and the result is valid.
1406 ENORADDR The real address provided for address is not valid.
1407 EINVAL The CCB completion area contents are not valid.
1408 …EWOULDBLOCK Internal resource constraints prevented the CCB from being killed at th…
1409 The guest should retry the request.
1410 …ENOACCESS The guest does not have permission to access the coprocessor virtual de…
1420 …Returns the number of DAX units that are enabled for the calling guest to submit CCBs. The number …
1421 …DAX units that are disabled for the calling guest are also returned. A disabled DAX unit would hav…
1422 available for CCB submission to the calling guest had it not been offlined.
1426 … EOK The request was processed and the number of enabled/disabled DAX units