Show a cover letter.

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

{
    "id": 45863,
    "url": "http://patches.dpdk.org/api/covers/45863/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/1538484302-97153-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": "<1538484302-97153-1-git-send-email-jia.guo@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1538484302-97153-1-git-send-email-jia.guo@intel.com",
    "date": "2018-10-02T12:44:58",
    "name": "[v3,0/4] 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/1538484302-97153-1-git-send-email-jia.guo@intel.com/mbox/",
    "series": [
        {
            "id": 1638,
            "url": "http://patches.dpdk.org/api/series/1638/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=1638",
            "date": "2018-10-02T12:44:59",
            "name": "Enable hotplug in vfio",
            "version": 3,
            "mbox": "http://patches.dpdk.org/series/1638/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/45863/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 270AF5B12;\n\tTue,  2 Oct 2018 14:48:26 +0200 (CEST)",
            "from mga03.intel.com (mga03.intel.com [134.134.136.65])\n\tby dpdk.org (Postfix) with ESMTP id 6CD224F90\n\tfor <dev@dpdk.org>; Tue,  2 Oct 2018 14:48:20 +0200 (CEST)",
            "from orsmga006.jf.intel.com ([10.7.209.51])\n\tby orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t02 Oct 2018 05:48:18 -0700",
            "from jeffguo-s2600wt2.sh.intel.com (HELO localhost.localdomain)\n\t([10.67.110.10])\n\tby orsmga006.jf.intel.com with ESMTP; 02 Oct 2018 05:41:17 -0700"
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.54,332,1534834800\"; d=\"scan'208\";a=\"79210137\"",
        "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, \n\tarybchenko@solarflare.com, anatoly.burakov@intel.com",
        "Cc": "jblunck@infradead.org, shreyansh.jain@nxp.com, dev@dpdk.org,\n\tjia.guo@intel.com, helin.zhang@intel.com, jerin.jacob@caviumnetworks.com",
        "Date": "Tue,  2 Oct 2018 20:44:58 +0800",
        "Message-Id": "<1538484302-97153-1-git-send-email-jia.guo@intel.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1534503091-31910-1-git-send-email-jia.guo@intel.com>",
        "References": "<1534503091-31910-1-git-send-email-jia.guo@intel.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v3 0/4] 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 hot-unplug. But for vfio, when device is be\nhot-unplugged, 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 hot-unplug. With this mechanism, hotplug\ncould be enable in vfio.\n\npatchset history:\nv3->v2:\nchange some commit log and coding style and typo.\n\nv2->v1:\nchange the rte_dev_event_callback_prcess from internal to external api\nfor bus or app usage.\nchange some code logic.\n\nJeff Guo (4):\n  eal: add a new req notifier to eal interrupt\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 app/test-pmd/testpmd.c                             |   4 +-\n drivers/bus/pci/linux/pci_vfio.c                   | 111 +++++++++++++++++++++\n drivers/bus/pci/pci_common.c                       |  10 ++\n drivers/bus/pci/rte_bus_pci.h                      |   1 +\n lib/librte_eal/bsdapp/eal/eal_dev.c                |   8 ++\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            |  18 +++-\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_eal/rte_eal_version.map                 |   1 +\n 12 files changed, 226 insertions(+), 18 deletions(-)"
}