Add data structures required for the data path for IDXD devices.
Signed-off-by: Bruce Richardson <[email protected]>
Signed-off-by: Kevin Laatz <[email protected]>
<snip>
+int
+idxd_dump(const struct rte_dmadev *dev, FILE *f)
+{
+ struct idxd_dmadev *idxd = dev->dev_private;
+ unsigned int i;
+
+ fprintf(f, "== Private Data ==\n");
Minor nit could you call out IDXD somewhere here just to make it clear
which driver is being used?
It may be helpful for debugging just to quickly see if the correct
driver was used.
+ fprintf(f, " Portal: %p\n", idxd->portal);
+ fprintf(f, " Config: { ring_size: %u }\n",
+ idxd->qcfg.nb_desc);
+ fprintf(f, " Batch ring (sz = %u, max_batches = %u):\n\t",
+ idxd->max_batches + 1, idxd->max_batches);
+ for (i = 0; i <= idxd->max_batches; i++) {
+ fprintf(f, " %u ", idxd->batch_idx_ring[i]);
+ if (i == idxd->batch_idx_read && i == idxd->batch_idx_write)
+ fprintf(f, "[rd ptr, wr ptr] ");
+ else if (i == idxd->batch_idx_read)
+ fprintf(f, "[rd ptr] ");
+ else if (i == idxd->batch_idx_write)
+ fprintf(f, "[wr ptr] ");
+ if (i == idxd->max_batches)
+ fprintf(f, "\n");
+ }
+
+ fprintf(f, " Curr batch: start = %u, size = %u\n", idxd->batch_start,
idxd->batch_size);
+ fprintf(f, " IDS: avail = %u, returned: %u\n", idxd->ids_avail,
idxd->ids_returned);
+ return 0;
+}
Reviewed-by: Conor Walsh <[email protected]>
<snip>