Show a cover letter.

GET /api/covers/125484/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 125484,
    "url": "http://patches.dpdk.org/api/covers/125484/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/20230324021622.1369006-1-zhirun.yan@intel.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": "<20230324021622.1369006-1-zhirun.yan@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20230324021622.1369006-1-zhirun.yan@intel.com",
    "date": "2023-03-24T02:16:07",
    "name": "[v2,00/15] graph enhancement for multi-core dispatch",
    "submitter": {
        "id": 1154,
        "url": "http://patches.dpdk.org/api/people/1154/?format=api",
        "name": "Yan, Zhirun",
        "email": "zhirun.yan@intel.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/20230324021622.1369006-1-zhirun.yan@intel.com/mbox/",
    "series": [
        {
            "id": 27532,
            "url": "http://patches.dpdk.org/api/series/27532/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=27532",
            "date": "2023-03-24T02:16:07",
            "name": "graph enhancement for multi-core dispatch",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/27532/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/125484/comments/",
    "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 1A4D04281E;\n\tFri, 24 Mar 2023 04:16:34 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id B19894113C;\n\tFri, 24 Mar 2023 04:16:33 +0100 (CET)",
            "from mga06.intel.com (mga06b.intel.com [134.134.136.31])\n by mails.dpdk.org (Postfix) with ESMTP id 069CB4068E\n for <dev@dpdk.org>; Fri, 24 Mar 2023 04:16:31 +0100 (CET)",
            "from fmsmga007.fm.intel.com ([10.253.24.52])\n by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 23 Mar 2023 20:16:30 -0700",
            "from dpdk-zhirun-lmm.sh.intel.com ([10.67.119.68])\n by fmsmga007.fm.intel.com with ESMTP; 23 Mar 2023 20:16:28 -0700"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1679627792; x=1711163792;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=/GLeS7CU0PdhRR1lJyRSpVDcFJOuefRJp6qweEv29r0=;\n b=kJ+5FPbVzbcdwQONS9uWumqWY3ZEgeMufjrzHW7mdJ8Bf5p7rXrQVcnC\n 5w3cB5Xi1XOv+133zypKbQp8/NV+E/lUwgFjAxakKVrYrBz/prR5lyAfX\n EiyDaKNbVZep29dsPqxn/zvCVXdG9qOuYYXmqyS4ZwDWFwV3Omr5UlcJ0\n 9UGMbl5/m7t4VSy25lpb9T8XeNp6KCn0h+hDN1X40mGU5py63ehJoQFaX\n Ds1AP6miE88RYc/zdH3/5cE8RFlwqkOt1HDTBMLKMLFkaMh+O/989m0wZ\n Qc2yGA0bbu+IMHUhe28Suwg0YuffUsaVtNbQXVauC2AlBZoEW2tAu8p0W A==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6600,9927,10658\"; a=\"402266399\"",
            "E=Sophos;i=\"5.98,286,1673942400\"; d=\"scan'208\";a=\"402266399\"",
            "E=McAfee;i=\"6600,9927,10658\"; a=\"684998506\"",
            "E=Sophos;i=\"5.98,286,1673942400\"; d=\"scan'208\";a=\"684998506\""
        ],
        "X-ExtLoop1": "1",
        "From": "Zhirun Yan <zhirun.yan@intel.com>",
        "To": "dev@dpdk.org, jerinj@marvell.com, kirankumark@marvell.com,\n ndabilpuram@marvell.com",
        "Cc": "cunming.liang@intel.com, haiyue.wang@intel.com,\n Zhirun Yan <zhirun.yan@intel.com>",
        "Subject": "[PATCH v2 00/15] graph enhancement for multi-core dispatch",
        "Date": "Fri, 24 Mar 2023 11:16:07 +0900",
        "Message-Id": "<20230324021622.1369006-1-zhirun.yan@intel.com>",
        "X-Mailer": "git-send-email 2.37.2",
        "In-Reply-To": "<20221117050926.136974-1-zhirun.yan@intel.com>",
        "References": "<20221117050926.136974-1-zhirun.yan@intel.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "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": "V2:\nUse git mv to keep git history for patch 1,2.\nUse TLS for per-thread local storage about model setting in patch 4.\nChange model name to mcore dispatch.\nChange API with specific mode name.\nSplit big patch for patch 8,9.\nFix CI build issues.\nRebase l3fwd-graph example.\nUpdate doc and maintainers files.\n\n\nCurrently, rte_graph supports RTC (Run-To-Completion) model within each\nof a single core.\nRTC is one of the typical model of packet processing. Others like\nPipeline or Hybrid are lack of support.\n\nThe patch set introduces a 'multicore dispatch' model selection which\nis a self-reacting scheme according to the core affinity.\nThe new model enables a cross-core dispatching mechanism which employs a\nscheduling work-queue to dispatch streams to other worker cores which\nbeing associated with the destination node. When core flavor of the\ndestination node is a default 'current', the stream can be continue\nexecuted as normal.\n\nExample:\n3-node graph targets 3-core budget\n\nRTC:\nGraph: node-0 -> node-1 -> node-2 @Core0.\n\n+ - - - - - - - - - - - - - - - - - - - - - +\n'                Core #0/1/2                '\n'                                           '\n' +--------+     +---------+     +--------+ '\n' | Node-0 | --> | Node-1  | --> | Node-2 | '\n' +--------+     +---------+     +--------+ '\n'                                           '\n+ - - - - - - - - - - - - - - - - - - - - - +\n\nDispatch:\n\nGraph topo: node-0 -> Core1; node-1 -> node-2; node-2 -> node-3.\nConfig graph: node-0 @Core0; node-1/3 @Core1; node-2 @Core2.\n\n.. code-block:: diff\n\n    + - - - - - -+     +- - - - - - - - - - - - - +     + - - - - - -+\n    '  Core #0   '     '          Core #1         '     '  Core #2   '\n    '            '     '                          '     '            '\n    ' +--------+ '     ' +--------+    +--------+ '     ' +--------+ '\n    ' | Node-0 | - - - ->| Node-1 |    | Node-3 |<- - - - | Node-2 | '\n    ' +--------+ '     ' +--------+    +--------+ '     ' +--------+ '\n    '            '     '     |                    '     '      ^     '\n    + - - - - - -+     +- - -|- - - - - - - - - - +     + - - -|- - -+\n                             |                                 |\n                             + - - - - - - - - - - - - - - - - +\n\n\nThe patch set has been break down as below:\n\n1. Split graph worker into common and default model part.\n2. Inline graph node processing to make it reusable.\n3. Add set/get APIs to choose worker model.\n4. Introduce core affinity API to set the node run on specific worker core.\n  (only use in new model)\n5. Introduce graph affinity API to bind one graph with specific worker\n  core.\n6. Introduce graph clone API.\n7. Introduce stream moving with scheduler work-queue in patch 8~12.\n8. Add stats for new models.\n9. Abstract default graph config process and integrate new model into\n  example/l3fwd-graph. Add new parameters for model choosing.\n\nWe could run with new worker model by this:\n./dpdk-l3fwd-graph -l 8,9,10,11 -n 4 -- -p 0x1 --config=\"(0,0,9)\" -P\n--model=\"dispatch\"\n\nReferences:\nhttps://static.sched.com/hosted_files/dpdkuserspace22/a6/graph%20introduce%20remote%20dispatch%20for%20mult-core%20scaling.pdf\n\n\nZhirun Yan (15):\n  graph: rename rte_graph_work as common\n  graph: split graph worker into common and default model\n  graph: move node process into inline function\n  graph: add get/set graph worker model APIs\n  graph: introduce graph node core affinity API\n  graph: introduce graph bind unbind API\n  graph: introduce graph clone API for other worker core\n  graph: add struct for stream moving between cores\n  graph: introduce stream moving cross cores\n  graph: enable create and destroy graph scheduling workqueue\n  graph: introduce graph walk by cross-core dispatch\n  graph: enable graph multicore dispatch scheduler model\n  graph: add stats for corss-core dispatching\n  examples/l3fwd-graph: introduce multicore dispatch worker model\n  doc: update multicore dispatch model in graph guides\n\n MAINTAINERS                          |   1 +\n doc/guides/prog_guide/graph_lib.rst  |  59 ++-\n examples/l3fwd-graph/main.c          | 237 +++++++++---\n lib/graph/graph.c                    | 179 +++++++++\n lib/graph/graph_debug.c              |   6 +\n lib/graph/graph_populate.c           |   1 +\n lib/graph/graph_private.h            |  44 +++\n lib/graph/graph_stats.c              |  74 +++-\n lib/graph/meson.build                |   4 +-\n lib/graph/node.c                     |   1 +\n lib/graph/rte_graph.h                |  44 +++\n lib/graph/rte_graph_model_dispatch.c | 179 +++++++++\n lib/graph/rte_graph_model_dispatch.h | 120 ++++++\n lib/graph/rte_graph_model_rtc.h      |  45 +++\n lib/graph/rte_graph_worker.c         |  54 +++\n lib/graph/rte_graph_worker.h         | 498 +------------------------\n lib/graph/rte_graph_worker_common.h  | 536 +++++++++++++++++++++++++++\n lib/graph/version.map                |   8 +\n 18 files changed, 1546 insertions(+), 544 deletions(-)\n create mode 100644 lib/graph/rte_graph_model_dispatch.c\n create mode 100644 lib/graph/rte_graph_model_dispatch.h\n create mode 100644 lib/graph/rte_graph_model_rtc.h\n create mode 100644 lib/graph/rte_graph_worker.c\n create mode 100644 lib/graph/rte_graph_worker_common.h"
}