Show a cover letter.

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

{
    "id": 43776,
    "url": "http://patches.dpdk.org/api/covers/43776/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/1534503091-31910-1-git-send-email-jia.guo@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": "<1534503091-31910-1-git-send-email-jia.guo@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1534503091-31910-1-git-send-email-jia.guo@intel.com",
    "date": "2018-08-17T10:51:26",
    "name": "[v1,0/5] Enable hotplug in vfio",
    "submitter": {
        "id": 507,
        "url": "http://patches.dpdk.org/api/people/507/?format=api",
        "name": "Guo, Jia",
        "email": "jia.guo@intel.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/1534503091-31910-1-git-send-email-jia.guo@intel.com/mbox/",
    "series": [
        {
            "id": 1010,
            "url": "http://patches.dpdk.org/api/series/1010/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=1010",
            "date": "2018-08-17T10:51:26",
            "name": "Enable hotplug in vfio",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/1010/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/43776/comments/",
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 0C1F210A3;\n\tFri, 17 Aug 2018 12:54:17 +0200 (CEST)",
            "from mga04.intel.com (mga04.intel.com [192.55.52.120])\n\tby dpdk.org (Postfix) with ESMTP id EEC7598\n\tfor <dev@dpdk.org>; Fri, 17 Aug 2018 12:54:14 +0200 (CEST)",
            "from fmsmga003.fm.intel.com ([10.253.24.29])\n\tby fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t17 Aug 2018 03:54:14 -0700",
            "from jeffguo-z170x-ud5.sh.intel.com (HELO localhost.localdomain)\n\t([10.67.104.10])\n\tby FMSMGA003.fm.intel.com with ESMTP; 17 Aug 2018 03:54:11 -0700"
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.53,250,1531810800\"; d=\"scan'208\";a=\"73536775\"",
        "From": "Jeff Guo <jia.guo@intel.com>",
        "To": "stephen@networkplumber.org, bruce.richardson@intel.com,\n\tferruh.yigit@intel.com, konstantin.ananyev@intel.com,\n\tgaetan.rivet@6wind.com, jingjing.wu@intel.com, thomas@monjalon.net,\n\tmotih@mellanox.com, matan@mellanox.com, harry.van.haaren@intel.com,\n\tqi.z.zhang@intel.com, shaopeng.he@intel.com,\n\tbernard.iremonger@intel.com, arybchenko@solarflare.com",
        "Cc": "jblunck@infradead.org, shreyansh.jain@nxp.com, dev@dpdk.org,\n\tjia.guo@intel.com, helin.zhang@intel.com",
        "Date": "Fri, 17 Aug 2018 18:51:26 +0800",
        "Message-Id": "<1534503091-31910-1-git-send-email-jia.guo@intel.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v1 0/5] Enable hotplug in vfio",
        "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\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "As we may know that the process of hotplug is different between igb_uio\nand vfio. For igb_uio, it could use uevent notification and memory\nfailure handle mechanism for hotplug. But for vfio, when device is be\nhotplug-out, the uevent can not be detected immediately, because of the\nvfio kernel module will use a special mechanism to guaranty the pci\ndevice would not be deleted until the user space release the resources,\nso it will use another event “req notifier” at first to notify user space\nto release resources for hotplug.\n\nThis patch will add a new interrupt type of req notifier in eal interrupt,\nand add the new interrupt handler in pci device to handle the req device\nevent. When the req notifier be detected, it can trigger the device event\ncallback process to process for hotplug. With this mechanism, hotplug\ncould be enable in vfio.\n\nJeff Guo (5):\n  eal: add a new req notifier to eal interrupt\n  eal: add a new req event to device event\n  eal: modify device event callback process func\n  pci: add req handler field to generic pci device\n  vfio: enable vfio hotplug by req notifier handler\n\n drivers/bus/pci/linux/pci_vfio.c                   | 104 +++++++++++++++++++++\n drivers/bus/pci/pci_common.c                       |  10 ++\n drivers/bus/pci/rte_bus_pci.h                      |   1 +\n lib/librte_eal/common/eal_common_dev.c             |   5 +-\n lib/librte_eal/common/eal_private.h                |  12 ---\n lib/librte_eal/common/include/rte_dev.h            |  20 +++-\n lib/librte_eal/common/include/rte_eal_interrupts.h |   1 +\n lib/librte_eal/linuxapp/eal/eal_dev.c              |   2 +-\n lib/librte_eal/linuxapp/eal/eal_interrupts.c       |  71 ++++++++++++++\n lib/librte_ethdev/rte_ethdev.c                     |   3 +-\n 10 files changed, 212 insertions(+), 17 deletions(-)"
}