Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

dmaengine: idxd: Add descriptor definitions for translation fetch operation

The translation fetch operation (0x0A) fetches address translations for the
address range specified in the descriptor by issuing address translation
(ATS) requests to the IOMMU.

Add descriptor definitions for the operation so that user can use DSA
to accelerate translation fetch.

Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
Link: https://lore.kernel.org/r/20230303213413.3357431-4-fenghua.yu@intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>

authored by

Fenghua Yu and committed by
Vinod Koul
6fec8938 12bbc2c2

+9
+9
include/uapi/linux/idxd.h
··· 72 72 DSA_OPCODE_CR_DELTA, 73 73 DSA_OPCODE_AP_DELTA, 74 74 DSA_OPCODE_DUALCAST, 75 + DSA_OPCODE_TRANSL_FETCH, 75 76 DSA_OPCODE_CRCGEN = 0x10, 76 77 DSA_OPCODE_COPY_CRC, 77 78 DSA_OPCODE_DIF_CHECK, ··· 183 182 uint64_t pattern; 184 183 uint64_t desc_list_addr; 185 184 uint64_t pattern_lower; 185 + uint64_t transl_fetch_addr; 186 186 }; 187 187 union { 188 188 uint64_t dst_addr; ··· 194 192 union { 195 193 uint32_t xfer_size; 196 194 uint32_t desc_count; 195 + uint32_t region_size; 197 196 }; 198 197 uint16_t int_handle; 199 198 uint16_t rsvd1; ··· 251 248 252 249 /* Fill */ 253 250 uint64_t pattern_upper; 251 + 252 + /* Translation fetch */ 253 + struct { 254 + uint64_t transl_fetch_res; 255 + uint32_t region_stride; 256 + }; 254 257 255 258 /* DIX generate */ 256 259 struct {