Show a cover letter.

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

{
    "id": 42,
    "url": "http://patchwork.dpdk.org/api/covers/42/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/cover/cover.1691768109.git.anatoly.burakov@intel.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": "<cover.1691768109.git.anatoly.burakov@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/cover.1691768109.git.anatoly.burakov@intel.com",
    "date": "2023-08-11T16:14:43",
    "name": "[v1,0/3] Add support for inter-domain DMA operations",
    "submitter": {
        "id": 4,
        "url": "http://patchwork.dpdk.org/api/people/4/?format=api",
        "name": "Anatoly Burakov",
        "email": "anatoly.burakov@intel.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/cover/cover.1691768109.git.anatoly.burakov@intel.com/mbox/",
    "series": [
        {
            "id": 29192,
            "url": "http://patchwork.dpdk.org/api/series/29192/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=29192",
            "date": "2023-08-11T16:14:43",
            "name": "Add support for inter-domain DMA operations",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/29192/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/covers/42/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 4299A43036;\n\tFri, 11 Aug 2023 18:14:52 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id C29A040E03;\n\tFri, 11 Aug 2023 18:14:51 +0200 (CEST)",
            "from mgamail.intel.com (mgamail.intel.com [192.55.52.136])\n by mails.dpdk.org (Postfix) with ESMTP id 7E5E840144\n for <dev@dpdk.org>; Fri, 11 Aug 2023 18:14:50 +0200 (CEST)",
            "from orsmga005.jf.intel.com ([10.7.209.41])\n by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 11 Aug 2023 09:14:49 -0700",
            "from silpixa00401191.ir.intel.com ([10.55.128.139])\n by orsmga005.jf.intel.com with ESMTP; 11 Aug 2023 09:14:48 -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=1691770490; x=1723306490;\n h=from:to:cc:subject:date:message-id:mime-version:\n content-transfer-encoding;\n bh=0bhbZ/mZJioAiwyJIbJH05C/x3zSf9Qtz8VI1K4WSHU=;\n b=EebTOAmh31oHnRYWMFSA1+Uk7+zTgGVEi1bXYkSKhlyfVn3QhjCd+ODH\n W32CsLmh7fR/sxHE1sEB7s3lMNXpCQkZlfcmitRK5oIT0vV84d2TOOAlo\n RydD0TGTohuO4rMAn2V297hq9STK28ahCuPi7gt2WlVbmlPwKsnCWSD8o\n JG6q/C5n3sDvZE0qaqB68MAEcwOBUubzQUShLHLJwX58dO4G+TOOpbgEe\n CD0dgU4LvZSBc29hWHoeR22ByVbHeY9fidQvqMMkTrp6Ir9Quvxy4dVLu\n aiQBvhMEm4nQddU+Gp7veZQb9beEboWOp0LitSagkcI/LqKSJaAXqp6Ft g==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6600,9927,10799\"; a=\"351312909\"",
            "E=Sophos;i=\"6.01,166,1684825200\"; d=\"scan'208\";a=\"351312909\"",
            "E=McAfee;i=\"6600,9927,10799\"; a=\"906499469\"",
            "E=Sophos;i=\"6.01,166,1684825200\"; d=\"scan'208\";a=\"906499469\""
        ],
        "X-ExtLoop1": "1",
        "From": "Anatoly Burakov <anatoly.burakov@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "bruce.richardson@intel.com",
        "Subject": "[PATCH v1 0/3] Add support for inter-domain DMA operations",
        "Date": "Fri, 11 Aug 2023 16:14:43 +0000",
        "Message-Id": "<cover.1691768109.git.anatoly.burakov@intel.com>",
        "X-Mailer": "git-send-email 2.37.2",
        "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": "This patchset adds inter-domain DMA operations, and implements driver support\nfor them in Intel(R) IDXD driver.\n\nInter-domain DMA operations are similar to regular DMA operations, except that\nsource and/or destination addresses will be in virtual address space of another\nprocess. In this patchset, DMA device is extended to support two new data plane\noperations: inter-domain copy, and inter-domain fill. No control plane API is\nprovided for dmadev to set up inter-domain communication (see below for more\ninfo).\n\nDMA device API is extended with inter-domain operations, along with their\nrespective capability flag. Two new op flags are also added to allow for\ninter-domain operations to select whether the source and/or destination address\nis in an address space of another process. Finally, the `rte_dma_info` struct is\nextended with a \"controller ID\" value (set to -1 by default for all drivers that\ndon't implement it), representing a hardware DMA controller ID. This is because\nunder current IDXD implementation the IDPTE (Inter-Domain Permission Table\nEntry) table is global to each device. That is, even though there may be\nmultiple dmadev devices used by IDXD driver, they will all share their IDPTE\nentries if they belong to the same hardware controller, so some sort of value\nindicating where each dmadev belongs was needed.\n\nSimilarly, IDXD driver is extended to support the new dmadev API, as well as use\nthe new \"controller ID\" value. IDXD driver is also extended to have a private\nAPI for control-plane operations related to creating/attaching to memory regions\nwhich are shared between processes.\n\nIn the current implementation, control-plane operations were made as a private\nAPI, instead of extending the DMA device API. This is because technically, only\nthe submitter (a process which is using IDXD driver to perform inter-domain\noperations) has to have a DMA device available, while the owner (a process which\nshares its memory regions with the submitter) does not have to manage a DMA\ndevice to give access to its memory to another process. Another consideration is\nthat currently, this API is Linux*-specific and relies on passing file\ndescriptors over IPC, and this process, if implemented on other vendors'\nhardware, may not map to the same scheme.\n\nNOTE: currently, no publicly released hardware is available to test this feature\nor this patchset\n\nWe are seeking community review on the following aspects of the patchset:\n- The fact that control-plane API is supposed to be private to specific drivers\n- The design of inter-domain data-plane operations API with respect to how\n  \"inter-domain handles\" are being used and whether it's possible to make the\n  API more vendor-neutral\n- New data-plane ops in dmadev will extend the data plane struct into the second\n  cache line - this should not be an issue since non-inter-domain operations are\n  still in the first cache line, and thus existing fast path is not affected\n- Any other feedback is welcome as well!\n\nAnatoly Burakov (3):\n  dmadev: add inter-domain operations\n  dma/idxd: implement inter-domain operations\n  dma/idxd: add API to create and attach to window\n\n doc/guides/dmadevs/idxd.rst           |  52 ++++++++\n doc/guides/prog_guide/dmadev.rst      |  22 ++++\n drivers/dma/idxd/idxd_bus.c           |  35 ++++++\n drivers/dma/idxd/idxd_common.c        | 123 ++++++++++++++++---\n drivers/dma/idxd/idxd_hw_defs.h       |  14 ++-\n drivers/dma/idxd/idxd_inter_dom.c     | 166 ++++++++++++++++++++++++++\n drivers/dma/idxd/idxd_internal.h      |   7 ++\n drivers/dma/idxd/meson.build          |   7 +-\n drivers/dma/idxd/rte_idxd_inter_dom.h |  79 ++++++++++++\n drivers/dma/idxd/version.map          |  11 ++\n lib/dmadev/rte_dmadev.c               |   2 +\n lib/dmadev/rte_dmadev.h               | 133 +++++++++++++++++++++\n lib/dmadev/rte_dmadev_core.h          |  12 ++\n 13 files changed, 644 insertions(+), 19 deletions(-)\n create mode 100644 drivers/dma/idxd/idxd_inter_dom.c\n create mode 100644 drivers/dma/idxd/rte_idxd_inter_dom.h\n create mode 100644 drivers/dma/idxd/version.map"
}