[4/4] ml/cnxk: add adapter dequeue function
Checks
Commit Message
Implemented ML adapter dequeue function.
Signed-off-by: Srikanth Yalavarthi <syalavarthi@marvell.com>
---
drivers/event/cnxk/cn10k_worker.h | 3 +++
drivers/ml/cnxk/cn10k_ml_event_dp.h | 2 ++
drivers/ml/cnxk/cn10k_ml_ops.c | 17 +++++++++++++++++
drivers/ml/cnxk/version.map | 1 +
4 files changed, 23 insertions(+)
Comments
On Sun, Jan 7, 2024 at 11:39 PM Srikanth Yalavarthi
<syalavarthi@marvell.com> wrote:
>
> Implemented ML adapter dequeue function.
>
> Signed-off-by: Srikanth Yalavarthi <syalavarthi@marvell.com>
Update the release notes for this new feature in PMD section.
@@ -7,6 +7,7 @@
#include <rte_eventdev.h>
#include "cn10k_cryptodev_event_dp.h"
+#include "cn10k_ml_event_dp.h"
#include "cn10k_rx.h"
#include "cnxk_worker.h"
#include "cn10k_eventdev.h"
@@ -236,6 +237,8 @@ cn10k_sso_hws_post_process(struct cn10k_sso_hws *ws, uint64_t *u64,
/* Mark vector mempool object as get */
RTE_MEMPOOL_CHECK_COOKIES(rte_mempool_from_obj((void *)u64[1]),
(void **)&u64[1], 1, 1);
+ } else if (CNXK_EVENT_TYPE_FROM_TAG(u64[0]) == RTE_EVENT_TYPE_MLDEV) {
+ u64[1] = cn10k_ml_adapter_dequeue(u64[1]);
}
}
@@ -12,5 +12,7 @@
__rte_internal
__rte_hot uint16_t cn10k_ml_adapter_enqueue(void *ws, struct rte_event ev[], uint16_t nb_events);
+__rte_internal
+__rte_hot uintptr_t cn10k_ml_adapter_dequeue(uintptr_t get_work1);
#endif /* _CN10K_ML_EVENT_DP_H_ */
@@ -1660,3 +1660,20 @@ cn10k_ml_adapter_enqueue(void *ws, struct rte_event ev[], uint16_t nb_events)
return count;
}
+
+__rte_hot uintptr_t
+cn10k_ml_adapter_dequeue(uintptr_t get_work1)
+{
+ struct cnxk_ml_dev *cnxk_mldev;
+ struct cnxk_ml_req *req;
+ struct cnxk_ml_qp *qp;
+
+ req = (struct cnxk_ml_req *)(get_work1);
+ cnxk_mldev = req->cnxk_mldev;
+ qp = cnxk_mldev->mldev->data->queue_pairs[req->qp_id];
+
+ cn10k_ml_result_update(cnxk_mldev, req->qp_id, req);
+ rte_mempool_put(qp->mla.req_mp, req);
+
+ return (uintptr_t)req->op;
+}
@@ -2,6 +2,7 @@ INTERNAL {
global:
cn10k_ml_adapter_enqueue;
+ cn10k_ml_adapter_dequeue;
local: *;
};