get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 132058,
    "url": "http://patchwork.dpdk.org/api/patches/132058/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20230927183052.17347-26-syalavarthi@marvell.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.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": "<20230927183052.17347-26-syalavarthi@marvell.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20230927183052.17347-26-syalavarthi@marvell.com",
    "date": "2023-09-27T18:30:38",
    "name": "[v3,25/35] ml/cnxk: support start and stop for TVM models",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": true,
    "hash": "d6d9d452e479c8073962832c0e666d41457cdefc",
    "submitter": {
        "id": 2480,
        "url": "http://patchwork.dpdk.org/api/people/2480/?format=api",
        "name": "Srikanth Yalavarthi",
        "email": "syalavarthi@marvell.com"
    },
    "delegate": {
        "id": 310,
        "url": "http://patchwork.dpdk.org/api/users/310/?format=api",
        "username": "jerin",
        "first_name": "Jerin",
        "last_name": "Jacob",
        "email": "jerinj@marvell.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20230927183052.17347-26-syalavarthi@marvell.com/mbox/",
    "series": [
        {
            "id": 29661,
            "url": "http://patchwork.dpdk.org/api/series/29661/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=29661",
            "date": "2023-09-27T18:30:13",
            "name": "Implemenation of revised ml/cnxk driver",
            "version": 3,
            "mbox": "http://patchwork.dpdk.org/series/29661/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/132058/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/132058/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 3D0364262B;\n\tWed, 27 Sep 2023 20:34:45 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id ADB8642D7F;\n\tWed, 27 Sep 2023 20:31:40 +0200 (CEST)",
            "from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com\n [67.231.148.174])\n by mails.dpdk.org (Postfix) with ESMTP id 9A26C40E5E\n for <dev@dpdk.org>; Wed, 27 Sep 2023 20:31:13 +0200 (CEST)",
            "from pps.filterd (m0045849.ppops.net [127.0.0.1])\n by mx0a-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id\n 38RCK792015701 for <dev@dpdk.org>; Wed, 27 Sep 2023 11:31:12 -0700",
            "from dc5-exch01.marvell.com ([199.233.59.181])\n by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3tcma5sftc-11\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT)\n for <dev@dpdk.org>; Wed, 27 Sep 2023 11:31:12 -0700",
            "from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH01.marvell.com\n (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.48;\n Wed, 27 Sep 2023 11:31:10 -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; Wed, 27 Sep 2023 11:31:10 -0700",
            "from ml-host-33.caveonetworks.com (unknown [10.110.143.233])\n by maili.marvell.com (Postfix) with ESMTP id 8F1DE3F7090;\n Wed, 27 Sep 2023 11:31:10 -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=b5n6ggRJR70QJOP7rVNLMnlS1gSQlF1UAQlJXnvsoGY=;\n b=FRqP971C1/C54EteJ8xop3CcU8+GHwmqpMMNzm/VKxIHc7XlybGEKf/mkEA/iNJuJ6JQ\n Uo9yWItwPUBclEkAVFpESdXLYPnB13W74MnHeaflpgP81m+eLExIgnqVSuO6+nCxVsxh\n AlusQFL1r97PTezNmIqlmrji20DeOmt75Gdg2E6IM60ude1I24A+/xgsa56HX7xb5/uS\n wroiKkOJYIowWWU3VsxzF5/ouC9lHihFoRoCxKUN2sRLB5Zz4EZ7OKAW0iy2hqdf3XwF\n Cswnp+Op95WgVP+mAGGo9afkvoiRqD/Raq0STPjqlVZmnhG/l7Un6YO1P/mGcdM/7NRm yQ==",
        "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 v3 25/35] ml/cnxk: support start and stop for TVM models",
        "Date": "Wed, 27 Sep 2023 11:30:38 -0700",
        "Message-ID": "<20230927183052.17347-26-syalavarthi@marvell.com>",
        "X-Mailer": "git-send-email 2.41.0",
        "In-Reply-To": "<20230927183052.17347-1-syalavarthi@marvell.com>",
        "References": "<20230830155927.3566-1-syalavarthi@marvell.com>\n <20230927183052.17347-1-syalavarthi@marvell.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Proofpoint-GUID": "g0z2DPAm0W1EWNuSfztzMRJbmu3x_Mtg",
        "X-Proofpoint-ORIG-GUID": "g0z2DPAm0W1EWNuSfztzMRJbmu3x_Mtg",
        "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.267,Aquarius:18.0.980,Hydra:6.0.619,FMLib:17.11.176.26\n definitions=2023-09-27_12,2023-09-27_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 cd95a3c7ad..9d664571c4 100644\n--- a/drivers/ml/cnxk/cnxk_ml_ops.c\n+++ b/drivers/ml/cnxk/cnxk_ml_ops.c\n@@ -1156,7 +1156,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@@ -1176,7 +1181,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 9fd9e58de6..1d0b3544a7 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": [
        "v3",
        "25/35"
    ]
}