Show a cover letter.

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

{
    "id": 45715,
    "url": "http://patches.dpdk.org/api/covers/45715/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/1538316988-128382-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": "<1538316988-128382-1-git-send-email-jia.guo@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1538316988-128382-1-git-send-email-jia.guo@intel.com",
    "date": "2018-09-30T14:16:24",
    "name": "[v2,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/1538316988-128382-1-git-send-email-jia.guo@intel.com/mbox/",
    "series": [
        {
            "id": 1607,
            "url": "http://patches.dpdk.org/api/series/1607/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=1607",
            "date": "2018-09-30T14:16:24",
            "name": "Enable hotplug in vfio",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/1607/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/45715/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 336B55F1C;\n\tSun, 30 Sep 2018 16:12:44 +0200 (CEST)",
            "from mga12.intel.com (mga12.intel.com [192.55.52.136])\n\tby dpdk.org (Postfix) with ESMTP id 15A5C5F19\n\tfor <dev@dpdk.org>; Sun, 30 Sep 2018 16:12:41 +0200 (CEST)",
            "from orsmga005.jf.intel.com ([10.7.209.41])\n\tby fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t30 Sep 2018 07:12:40 -0700",
            "from jeffguo-s2600wt2.sh.intel.com (HELO localhost.localdomain)\n\t([10.67.110.10])\n\tby orsmga005.jf.intel.com with ESMTP; 30 Sep 2018 07:12:36 -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,324,1534834800\"; d=\"scan'208\";a=\"261661848\"",
        "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",
        "Date": "Sun, 30 Sep 2018 22:16:24 +0800",
        "Message-Id": "<1538316988-128382-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 v2 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:\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                   | 95 ++++++++++++++++++++++\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, 210 insertions(+), 18 deletions(-)"
}