get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/133417/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 133417,
    "url": "http://patches.dpdk.org/api/patches/133417/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20231026124347.22477-27-syalavarthi@marvell.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20231026124347.22477-27-syalavarthi@marvell.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20231026124347.22477-27-syalavarthi@marvell.com",
    "date": "2023-10-26T12:43:35",
    "name": "[v9,26/34] ml/cnxk: support start and stop for TVM models",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "d6d9d452e479c8073962832c0e666d41457cdefc",
    "submitter": {
        "id": 2480,
        "url": "http://patches.dpdk.org/api/people/2480/?format=api",
        "name": "Srikanth Yalavarthi",
        "email": "syalavarthi@marvell.com"
    },
    "delegate": {
        "id": 310,
        "url": "http://patches.dpdk.org/api/users/310/?format=api",
        "username": "jerin",
        "first_name": "Jerin",
        "last_name": "Jacob",
        "email": "jerinj@marvell.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20231026124347.22477-27-syalavarthi@marvell.com/mbox/",
    "series": [
        {
            "id": 30002,
            "url": "http://patches.dpdk.org/api/series/30002/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=30002",
            "date": "2023-10-26T12:43:09",
            "name": "Implementation of revised ml/cnxk driver",
            "version": 9,
            "mbox": "http://patches.dpdk.org/series/30002/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/133417/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/133417/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 5016443208;\n\tThu, 26 Oct 2023 14:49:52 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 3832242EC3;\n\tThu, 26 Oct 2023 14:44:34 +0200 (CEST)",
            "from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com\n [67.231.156.173])\n by mails.dpdk.org (Postfix) with ESMTP id 163F942E1B\n for <dev@dpdk.org>; Thu, 26 Oct 2023 14:44:05 +0200 (CEST)",
            "from pps.filterd (m0045851.ppops.net [127.0.0.1])\n by mx0b-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id\n 39QALk0G007523 for <dev@dpdk.org>; Thu, 26 Oct 2023 05:44:05 -0700",
            "from dc5-exch02.marvell.com ([199.233.59.182])\n by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3txcsr25pc-17\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT)\n for <dev@dpdk.org>; Thu, 26 Oct 2023 05:44:05 -0700",
            "from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH02.marvell.com\n (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.48;\n Thu, 26 Oct 2023 05:44:00 -0700",
            "from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com\n (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.48 via Frontend\n Transport; Thu, 26 Oct 2023 05:44:00 -0700",
            "from ml-host-33.caveonetworks.com (unknown [10.110.143.233])\n by maili.marvell.com (Postfix) with ESMTP id 3C2643F70C1;\n Thu, 26 Oct 2023 05:44:00 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com;\n h=from : to : cc :\n subject : date : message-id : in-reply-to : references : mime-version :\n content-transfer-encoding : content-type; s=pfpt0220;\n bh=BWoKzkC1W5gCXVVgtXfNfiOZ4xHWuo8jspmcaZlA/dQ=;\n b=fkjufcexyoJo+nXV4vxoFwgugV77EyMg1440ybh8wcEfaKcpNwJ/Bop3dIrvEbEqM/pW\n s+pPF12sh4TB/lLeRQ361M0jOgQIitm0ceVCIz3eEtVDp1gZMvve45T8O6OtL2NC+Lf1\n yXF3FZiAldfi6JG2at4JUK48OBetPc44CrZ1DrR3u7BJkk25O5bdjijeYgW586zidfWK\n tBDfPuTtZs6//OhW/uWT1/q0rU3ewKM9U29ZfQnCYw8qKtNaGaTRixDyg/PYS6ONajC0\n ssbIkzoY1wJW6EyhAKnnLQR3TEkzjMHqcronCeY15plAlnWaW4ckTikM6mm0k6Enfyk+ MQ==",
        "From": "Srikanth Yalavarthi <syalavarthi@marvell.com>",
        "To": "Srikanth Yalavarthi <syalavarthi@marvell.com>",
        "CC": "<dev@dpdk.org>, <sshankarnara@marvell.com>, <aprabhu@marvell.com>,\n <ptakkar@marvell.com>",
        "Subject": "[PATCH v9 26/34] ml/cnxk: support start and stop for TVM models",
        "Date": "Thu, 26 Oct 2023 05:43:35 -0700",
        "Message-ID": "<20231026124347.22477-27-syalavarthi@marvell.com>",
        "X-Mailer": "git-send-email 2.42.0",
        "In-Reply-To": "<20231026124347.22477-1-syalavarthi@marvell.com>",
        "References": "<20230830155927.3566-1-syalavarthi@marvell.com>\n <20231026124347.22477-1-syalavarthi@marvell.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Proofpoint-ORIG-GUID": "x1vmZbKCzi6ayJ-RBIXnfJdM4ZepjmNL",
        "X-Proofpoint-GUID": "x1vmZbKCzi6ayJ-RBIXnfJdM4ZepjmNL",
        "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.272,Aquarius:18.0.987,Hydra:6.0.619,FMLib:17.11.176.26\n definitions=2023-10-26_10,2023-10-26_01,2023-05-22_02",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "Added support to start and stop TVM models. TVM model\nstart would invoke layer start for all Glow layers part\nof the model. TVM model stop would invoke layer stop\nfor all Glow layers part of the model.\n\nSigned-off-by: Srikanth Yalavarthi <syalavarthi@marvell.com>\nSigned-off-by: Anup Prabhu <aprabhu@marvell.com>\n---\n drivers/ml/cnxk/cn10k_ml_ops.c   | 16 ++++++----\n drivers/ml/cnxk/cnxk_ml_ops.c    | 14 +++++++--\n drivers/ml/cnxk/mvtvm_ml_ops.c   | 52 ++++++++++++++++++++++++++++++++\n drivers/ml/cnxk/mvtvm_ml_ops.h   |  2 ++\n drivers/ml/cnxk/mvtvm_ml_stubs.c | 18 +++++++++++\n drivers/ml/cnxk/mvtvm_ml_stubs.h |  2 ++\n 6 files changed, 96 insertions(+), 8 deletions(-)",
    "diff": "diff --git a/drivers/ml/cnxk/cn10k_ml_ops.c b/drivers/ml/cnxk/cn10k_ml_ops.c\nindex e7208391fd..2d308802cf 100644\n--- a/drivers/ml/cnxk/cn10k_ml_ops.c\n+++ b/drivers/ml/cnxk/cn10k_ml_ops.c\n@@ -827,7 +827,7 @@ cn10k_ml_layer_start(void *device, uint16_t model_id, const char *layer_name)\n \tstruct cn10k_ml_ocm *ocm;\n \tstruct cnxk_ml_req *req;\n \n-\tuint16_t layer_id = 0;\n+\tuint16_t layer_id;\n \tbool job_enqueued;\n \tbool job_dequeued;\n \tuint8_t num_tiles;\n@@ -838,8 +838,6 @@ cn10k_ml_layer_start(void *device, uint16_t model_id, const char *layer_name)\n \tbool locked;\n \tint ret = 0;\n \n-\tPLT_SET_USED(layer_name);\n-\n \tcnxk_mldev = (struct cnxk_ml_dev *)device;\n \tif (cnxk_mldev == NULL) {\n \t\tplt_err(\"Invalid device = %p\", device);\n@@ -852,6 +850,10 @@ cn10k_ml_layer_start(void *device, uint16_t model_id, const char *layer_name)\n \t\treturn -EINVAL;\n \t}\n \n+\tret = cn10k_ml_model_get_layer_id(model, layer_name, &layer_id);\n+\tif (ret != 0)\n+\t\treturn ret;\n+\n \tlayer = &model->layer[layer_id];\n \tcn10k_mldev = &cnxk_mldev->cn10k_mldev;\n \tocm = &cn10k_mldev->ocm;\n@@ -1015,14 +1017,12 @@ cn10k_ml_layer_stop(void *device, uint16_t model_id, const char *layer_name)\n \tstruct cn10k_ml_ocm *ocm;\n \tstruct cnxk_ml_req *req;\n \n-\tuint16_t layer_id = 0;\n+\tuint16_t layer_id;\n \tbool job_enqueued;\n \tbool job_dequeued;\n \tbool locked;\n \tint ret = 0;\n \n-\tPLT_SET_USED(layer_name);\n-\n \tcnxk_mldev = (struct cnxk_ml_dev *)device;\n \tif (cnxk_mldev == NULL) {\n \t\tplt_err(\"Invalid device = %p\", device);\n@@ -1035,6 +1035,10 @@ cn10k_ml_layer_stop(void *device, uint16_t model_id, const char *layer_name)\n \t\treturn -EINVAL;\n \t}\n \n+\tret = cn10k_ml_model_get_layer_id(model, layer_name, &layer_id);\n+\tif (ret != 0)\n+\t\treturn ret;\n+\n \tlayer = &model->layer[layer_id];\n \tcn10k_mldev = &cnxk_mldev->cn10k_mldev;\n \tocm = &cn10k_mldev->ocm;\ndiff --git a/drivers/ml/cnxk/cnxk_ml_ops.c b/drivers/ml/cnxk/cnxk_ml_ops.c\nindex d1471971e4..c38c60bf76 100644\n--- a/drivers/ml/cnxk/cnxk_ml_ops.c\n+++ b/drivers/ml/cnxk/cnxk_ml_ops.c\n@@ -1216,7 +1216,12 @@ cnxk_ml_model_start(struct rte_ml_dev *dev, uint16_t model_id)\n \t\treturn -EINVAL;\n \t}\n \n-\treturn cn10k_ml_model_start(cnxk_mldev, model);\n+\tif (model->type == ML_CNXK_MODEL_TYPE_GLOW)\n+\t\treturn cn10k_ml_model_start(cnxk_mldev, model);\n+\telse\n+\t\treturn mvtvm_ml_model_start(cnxk_mldev, model);\n+\n+\treturn 0;\n }\n \n int\n@@ -1236,7 +1241,12 @@ cnxk_ml_model_stop(struct rte_ml_dev *dev, uint16_t model_id)\n \t\treturn -EINVAL;\n \t}\n \n-\treturn cn10k_ml_model_stop(cnxk_mldev, model);\n+\tif (model->type == ML_CNXK_MODEL_TYPE_GLOW)\n+\t\treturn cn10k_ml_model_stop(cnxk_mldev, model);\n+\telse\n+\t\treturn mvtvm_ml_model_stop(cnxk_mldev, model);\n+\n+\treturn 0;\n }\n \n static int\ndiff --git a/drivers/ml/cnxk/mvtvm_ml_ops.c b/drivers/ml/cnxk/mvtvm_ml_ops.c\nindex 3847f9b6b9..323c7c6fb6 100644\n--- a/drivers/ml/cnxk/mvtvm_ml_ops.c\n+++ b/drivers/ml/cnxk/mvtvm_ml_ops.c\n@@ -213,3 +213,55 @@ mvtvm_ml_model_unload(struct cnxk_ml_dev *cnxk_mldev, struct cnxk_ml_model *mode\n \n \treturn plt_memzone_free(mz);\n }\n+\n+int\n+mvtvm_ml_model_start(struct cnxk_ml_dev *cnxk_mldev, struct cnxk_ml_model *model)\n+{\n+\tstruct cnxk_ml_layer *layer;\n+\n+\tuint16_t layer_id = 0;\n+\tint ret = 0;\n+\n+next_layer:\n+\tlayer = &model->layer[layer_id];\n+\tif (layer->type == ML_CNXK_LAYER_TYPE_MRVL) {\n+\t\tret = cn10k_ml_layer_start(cnxk_mldev, model->model_id, layer->name);\n+\t\tif (ret != 0) {\n+\t\t\tplt_err(\"Layer start failed, model_id = %u, layer_name = %s, error = %d\",\n+\t\t\t\tmodel->model_id, layer->name, ret);\n+\t\t\treturn ret;\n+\t\t}\n+\t}\n+\tlayer_id++;\n+\n+\tif (layer_id < model->nb_layers)\n+\t\tgoto next_layer;\n+\n+\treturn 0;\n+}\n+\n+int\n+mvtvm_ml_model_stop(struct cnxk_ml_dev *cnxk_mldev, struct cnxk_ml_model *model)\n+{\n+\tstruct cnxk_ml_layer *layer;\n+\n+\tuint16_t layer_id = 0;\n+\tint ret = 0;\n+\n+next_layer:\n+\tlayer = &model->layer[layer_id];\n+\tif (layer->type == ML_CNXK_LAYER_TYPE_MRVL) {\n+\t\tret = cn10k_ml_layer_stop(cnxk_mldev, model->model_id, layer->name);\n+\t\tif (ret != 0) {\n+\t\t\tplt_err(\"Layer stop failed, model_id = %u, layer_name = %s, error = %d\",\n+\t\t\t\tmodel->model_id, layer->name, ret);\n+\t\t\treturn ret;\n+\t\t}\n+\t}\n+\tlayer_id++;\n+\n+\tif (layer_id < model->nb_layers)\n+\t\tgoto next_layer;\n+\n+\treturn 0;\n+}\ndiff --git a/drivers/ml/cnxk/mvtvm_ml_ops.h b/drivers/ml/cnxk/mvtvm_ml_ops.h\nindex 770794fe7d..55459f9f7f 100644\n--- a/drivers/ml/cnxk/mvtvm_ml_ops.h\n+++ b/drivers/ml/cnxk/mvtvm_ml_ops.h\n@@ -19,5 +19,7 @@ int mvtvm_ml_dev_close(struct cnxk_ml_dev *cnxk_mldev);\n int mvtvm_ml_model_load(struct cnxk_ml_dev *cnxk_mldev, struct rte_ml_model_params *params,\n \t\t\tstruct cnxk_ml_model *model);\n int mvtvm_ml_model_unload(struct cnxk_ml_dev *cnxk_mldev, struct cnxk_ml_model *model);\n+int mvtvm_ml_model_start(struct cnxk_ml_dev *cnxk_mldev, struct cnxk_ml_model *model);\n+int mvtvm_ml_model_stop(struct cnxk_ml_dev *cnxk_mldev, struct cnxk_ml_model *model);\n \n #endif /* _MVTVM_ML_OPS_H_ */\ndiff --git a/drivers/ml/cnxk/mvtvm_ml_stubs.c b/drivers/ml/cnxk/mvtvm_ml_stubs.c\nindex a17a76e41f..b8c2e6a1fc 100644\n--- a/drivers/ml/cnxk/mvtvm_ml_stubs.c\n+++ b/drivers/ml/cnxk/mvtvm_ml_stubs.c\n@@ -72,3 +72,21 @@ mvtvm_ml_model_unload(struct cnxk_ml_dev *cnxk_mldev, struct cnxk_ml_model *mode\n \n \treturn -EINVAL;\n }\n+\n+int\n+mvtvm_ml_model_start(struct cnxk_ml_dev *cnxk_mldev, struct cnxk_ml_model *model)\n+{\n+\tRTE_SET_USED(cnxk_mldev);\n+\tRTE_SET_USED(model);\n+\n+\treturn -EINVAL;\n+}\n+\n+int\n+mvtvm_ml_model_stop(struct cnxk_ml_dev *cnxk_mldev, struct cnxk_ml_model *model)\n+{\n+\tRTE_SET_USED(cnxk_mldev);\n+\tRTE_SET_USED(model);\n+\n+\treturn -EINVAL;\n+}\ndiff --git a/drivers/ml/cnxk/mvtvm_ml_stubs.h b/drivers/ml/cnxk/mvtvm_ml_stubs.h\nindex 3776fb5369..1eb663b1d1 100644\n--- a/drivers/ml/cnxk/mvtvm_ml_stubs.h\n+++ b/drivers/ml/cnxk/mvtvm_ml_stubs.h\n@@ -16,6 +16,8 @@ int mvtvm_ml_dev_close(struct cnxk_ml_dev *cnxk_mldev);\n int mvtvm_ml_model_load(struct cnxk_ml_dev *cnxk_mldev, struct rte_ml_model_params *params,\n \t\t\tstruct cnxk_ml_model *model);\n int mvtvm_ml_model_unload(struct cnxk_ml_dev *cnxk_mldev, struct cnxk_ml_model *model);\n+int mvtvm_ml_model_start(struct cnxk_ml_dev *cnxk_mldev, struct cnxk_ml_model *model);\n+int mvtvm_ml_model_stop(struct cnxk_ml_dev *cnxk_mldev, struct cnxk_ml_model *model);\n \n int mvtvm_ml_model_get_layer_id(struct cnxk_ml_model *model, const char *layer_name,\n \t\t\t\tuint16_t *layer_id);\n",
    "prefixes": [
        "v9",
        "26/34"
    ]
}