get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 132860,
    "url": "http://patches.dpdk.org/api/patches/132860/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20231018064806.24145-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": "<20231018064806.24145-27-syalavarthi@marvell.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20231018064806.24145-27-syalavarthi@marvell.com",
    "date": "2023-10-18T06:47:54",
    "name": "[v5,26/34] ml/cnxk: support start and stop for TVM models",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "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/20231018064806.24145-27-syalavarthi@marvell.com/mbox/",
    "series": [
        {
            "id": 29898,
            "url": "http://patches.dpdk.org/api/series/29898/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=29898",
            "date": "2023-10-18T06:47:28",
            "name": "Implementation of revised ml/cnxk driver",
            "version": 5,
            "mbox": "http://patches.dpdk.org/series/29898/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/132860/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/132860/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 6DB6A43196;\n\tWed, 18 Oct 2023 08:50:45 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id A1BD542E44;\n\tWed, 18 Oct 2023 08:48: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 639D840F16\n for <dev@dpdk.org>; Wed, 18 Oct 2023 08:48:20 +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 39HKEpYq012051 for <dev@dpdk.org>; Tue, 17 Oct 2023 23:48:19 -0700",
            "from dc5-exch01.marvell.com ([199.233.59.181])\n by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3tt1481rwr-6\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT)\n for <dev@dpdk.org>; Tue, 17 Oct 2023 23:48:19 -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 Tue, 17 Oct 2023 23:48:18 -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; Tue, 17 Oct 2023 23:48:18 -0700",
            "from ml-host-33.caveonetworks.com (unknown [10.110.143.233])\n by maili.marvell.com (Postfix) with ESMTP id DE9DA5B6972;\n Tue, 17 Oct 2023 23:48:16 -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=TASmTS6/7DPdwED8KuID7Fsj+5fdbQoBNRSoihyJXsE=;\n b=OPIH21gNpXX+b2UpnTyQWftDl1l/LxsfyfBqTq6yMA7P4sUxYztZREukPFwap+hdYTkp\n 67Xv7iLx+o9+BL7f+k4jQFPsdl6Oxd7mfwCNnhrBycoS3xDAFHttjP7KhSCGdrM3+YM2\n j8DgsQg6H3veDhebIKhIOeYlKeRwhnA3UaYC9XymHD2d7Yo4U8oU6ZZYHDBbzTSFXY4y\n 0EqExa37OVWPhFSwjiXQCPNmCoBQDEJDJ+V6SYmjmTgmz95wzUrvjnAbDNIf+gxFKPCX\n l1zMYC8dfRN7kOxNCVMVxespnrr8wrQBtU8nhOlb14AD9CjxID9koCACIzFFLX5bhZuH MA==",
        "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 v5 26/34] ml/cnxk: support start and stop for TVM models",
        "Date": "Tue, 17 Oct 2023 23:47:54 -0700",
        "Message-ID": "<20231018064806.24145-27-syalavarthi@marvell.com>",
        "X-Mailer": "git-send-email 2.42.0",
        "In-Reply-To": "<20231018064806.24145-1-syalavarthi@marvell.com>",
        "References": "<20230830155927.3566-1-syalavarthi@marvell.com>\n <20231018064806.24145-1-syalavarthi@marvell.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Proofpoint-GUID": "WZ3fWwL65PSS_VsoRu_q-LuVpisSlHtr",
        "X-Proofpoint-ORIG-GUID": "WZ3fWwL65PSS_VsoRu_q-LuVpisSlHtr",
        "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.272,Aquarius:18.0.980,Hydra:6.0.619,FMLib:17.11.176.26\n definitions=2023-10-18_04,2023-10-17_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 03f4783b3f..66cda513db 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 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": [
        "v5",
        "26/34"
    ]
}