Show a cover letter.

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

{
    "id": 84665,
    "url": "http://patches.dpdk.org/api/covers/84665/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/20201202054647.3449-1-ndabilpuram@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": "<20201202054647.3449-1-ndabilpuram@marvell.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20201202054647.3449-1-ndabilpuram@marvell.com",
    "date": "2020-12-02T05:46:43",
    "name": "[v4,0/4] fix issue with partial DMA unmap",
    "submitter": {
        "id": 1202,
        "url": "http://patches.dpdk.org/api/people/1202/?format=api",
        "name": "Nithin Dabilpuram",
        "email": "ndabilpuram@marvell.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/20201202054647.3449-1-ndabilpuram@marvell.com/mbox/",
    "series": [
        {
            "id": 14164,
            "url": "http://patches.dpdk.org/api/series/14164/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=14164",
            "date": "2020-12-02T05:46:43",
            "name": "fix issue with partial DMA unmap",
            "version": 4,
            "mbox": "http://patches.dpdk.org/series/14164/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/84665/comments/",
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 87DE1A04DB;\n\tWed,  2 Dec 2020 06:47:02 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id EDB66C9B8;\n\tWed,  2 Dec 2020 06:46:59 +0100 (CET)",
            "from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com\n [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id A4F0CC9A8\n for <dev@dpdk.org>; Wed,  2 Dec 2020 06:46:58 +0100 (CET)",
            "from pps.filterd (m0045851.ppops.net [127.0.0.1])\n by mx0b-0016f401.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id\n 0B25fSwP013736; Tue, 1 Dec 2020 21:46:56 -0800",
            "from sc-exch03.marvell.com ([199.233.58.183])\n by mx0b-0016f401.pphosted.com with ESMTP id 355w5097cm-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT);\n Tue, 01 Dec 2020 21:46:54 -0800",
            "from SC-EXCH04.marvell.com (10.93.176.84) by SC-EXCH03.marvell.com\n (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 1 Dec\n 2020 21:46:52 -0800",
            "from DC5-EXCH02.marvell.com (10.69.176.39) by SC-EXCH04.marvell.com\n (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1497.2;\n Tue, 1 Dec 2020 21:46:53 -0800",
            "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.2 via Frontend\n Transport; Tue, 1 Dec 2020 21:46:53 -0800",
            "from hyd1588t430.marvell.com (unknown [10.29.52.204])\n by maili.marvell.com (Postfix) with ESMTP id 2CB2A3F7043;\n Tue,  1 Dec 2020 21:46:50 -0800 (PST)"
        ],
        "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-type; s=pfpt0220; bh=059B+iYNcCTKgEZRMGqUnuPM4VRcdLb0HVZEbk05dZA=;\n b=PuBKW+j8mwAbSAHMApwui6FLgB/Fivi2jCI7UHJq57Pkx93+t0KG+XFdU5W1eJqpKWDd\n nsbxIE2DVfSzQWhjCCnJqtz1XECaufMuuXMs1pUo1+O8n0YzkMZ0J7fXofhbSOczsL8c\n ssLXhcK3SP1LPZZcvFJULgkoT31F5B31yxuXRurxaf3lc5TE5Xshwal9mhXcHelQtHrM\n SqYkFOAuLcYbUVKFai/swfuVLVlxSVTblSPAddTpw3gyQYSGpkl3mB1NzfqOxX/sAGUh\n I/4vsA5fhLFb12smobgwATeCdl6Hcs+QCDSpoJyjri6bTAb8lMt0xWi4ogU6ovVH21EA mQ==",
        "From": "Nithin Dabilpuram <ndabilpuram@marvell.com>",
        "To": "<anatoly.burakov@intel.com>, David Christensen <drc@linux.vnet.ibm.com>,\n <david.marchand@redhat.com>",
        "CC": "<jerinj@marvell.com>, <dev@dpdk.org>, Nithin Dabilpuram\n <ndabilpuram@marvell.com>",
        "Date": "Wed, 2 Dec 2020 11:16:43 +0530",
        "Message-ID": "<20201202054647.3449-1-ndabilpuram@marvell.com>",
        "X-Mailer": "git-send-email 2.8.4",
        "In-Reply-To": "<20201012081106.10610-1-ndabilpuram@marvell.com>",
        "References": "<20201012081106.10610-1-ndabilpuram@marvell.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Proofpoint-Virus-Version": "vendor=fsecure engine=2.50.10434:6.0.312, 18.0.737\n definitions=2020-12-02_01:2020-11-30,\n 2020-12-02 signatures=0",
        "Subject": "[dpdk-dev] [PATCH v4 0/4] fix issue with partial DMA unmap",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "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",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Partial DMA unmap is not supported by VFIO type1 IOMMU\nin Linux. Though the return value is zero, the returned\nDMA unmap size is not same as expected size.\nSo add test case and fix to both heap triggered DMA\nmapping and user triggered DMA mapping/unmapping.\n\nRefer vfio_dma_do_unmap() in drivers/vfio/vfio_iommu_type1.c\nSnippet of comment is below.\n\n        /*\n         * vfio-iommu-type1 (v1) - User mappings were coalesced together to\n         * avoid tracking individual mappings.  This means that the granularity\n         * of the original mapping was lost and the user was allowed to attempt\n         * to unmap any range.  Depending on the contiguousness of physical\n         * memory and page sizes supported by the IOMMU, arbitrary unmaps may\n         * or may not have worked.  We only guaranteed unmap granularity\n         * matching the original mapping; even though it was untracked here,\n         * the original mappings are reflected in IOMMU mappings.  This\n         * resulted in a couple unusual behaviors.  First, if a range is not\n         * able to be unmapped, ex. a set of 4k pages that was mapped as a\n         * 2M hugepage into the IOMMU, the unmap ioctl returns success but with\n         * a zero sized unmap.  Also, if an unmap request overlaps the first\n         * address of a hugepage, the IOMMU will unmap the entire hugepage.\n         * This also returns success and the returned unmap size reflects the\n         * actual size unmapped.\n\n         * We attempt to maintain compatibility with this \"v1\" interface, but  \n         * we take control out of the hands of the IOMMU.  Therefore, an unmap \n         * request offset from the beginning of the original mapping will      \n         * return success with zero sized unmap.  And an unmap request covering\n         * the first iova of mapping will unmap the entire range.              \n\nThis behavior can be verified by using first patch and add return check for\ndma_unmap.size != len in vfio_type1_dma_mem_map()\n\nv4:\n- Fixed issue with patch 4/4 on x86 builds.\n\nv3:\n- Fixed external memory test case(4/4) to use system page size\n  instead of 4K.\n- Fixed check-git-log.sh issue and rebased.\n- Added acked-by from anatoly.burakov@intel.com to first 3 patches.\n\nv2: \n- Reverted earlier commit that enables mergin contiguous mapping for\n  IOVA as PA. (see 1/3)\n- Updated documentation about kernel dma mapping limits and vfio\n  module parameter.\n- Moved vfio test to test_vfio.c and handled comments from\n  Anatoly.\n\nNithin Dabilpuram (4):\n  vfio: revert changes for map contiguous areas in one go\n  vfio: fix DMA mapping granularity for type1 IOVA as VA\n  test: add test case to validate VFIO DMA map/unmap\n  test: change external memory test to use system page sz\n\n app/test/meson.build                   |   1 +\n app/test/test_external_mem.c           |   3 +-\n app/test/test_vfio.c                   | 103 +++++++++++++++++++++++++++++++++\n doc/guides/linux_gsg/linux_drivers.rst |  10 ++++\n lib/librte_eal/linux/eal_vfio.c        |  93 ++++++++++++-----------------\n lib/librte_eal/linux/eal_vfio.h        |   1 +\n 6 files changed, 153 insertions(+), 58 deletions(-)\n create mode 100644 app/test/test_vfio.c"
}