Show a cover letter.

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

{
    "id": 95439,
    "url": "http://patchwork.dpdk.org/api/covers/95439/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/cover/1625656687-40604-1-git-send-email-jiayu.hu@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": "<1625656687-40604-1-git-send-email-jiayu.hu@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1625656687-40604-1-git-send-email-jiayu.hu@intel.com",
    "date": "2021-07-07T11:18:04",
    "name": "[v2,0/3] provide thread unsafe async registration functions",
    "submitter": {
        "id": 539,
        "url": "http://patchwork.dpdk.org/api/people/539/?format=api",
        "name": "Hu, Jiayu",
        "email": "jiayu.hu@intel.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/cover/1625656687-40604-1-git-send-email-jiayu.hu@intel.com/mbox/",
    "series": [
        {
            "id": 17679,
            "url": "http://patchwork.dpdk.org/api/series/17679/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=17679",
            "date": "2021-07-07T11:18:04",
            "name": "provide thread unsafe async registration functions",
            "version": 2,
            "mbox": "http://patchwork.dpdk.org/series/17679/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/covers/95439/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 753DEA0C48;\n\tWed,  7 Jul 2021 06:50:13 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 36BBE406FF;\n\tWed,  7 Jul 2021 06:50:13 +0200 (CEST)",
            "from mga03.intel.com (mga03.intel.com [134.134.136.65])\n by mails.dpdk.org (Postfix) with ESMTP id 759714069E\n for <dev@dpdk.org>; Wed,  7 Jul 2021 06:50:11 +0200 (CEST)",
            "from fmsmga003.fm.intel.com ([10.253.24.29])\n by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 06 Jul 2021 21:50:09 -0700",
            "from npg_dpdk_virtio_jiayuhu_07.sh.intel.com ([10.67.119.25])\n by FMSMGA003.fm.intel.com with ESMTP; 06 Jul 2021 21:50:08 -0700"
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6200,9189,10037\"; a=\"209279833\"",
            "E=Sophos;i=\"5.83,330,1616482800\"; d=\"scan'208\";a=\"209279833\"",
            "E=Sophos;i=\"5.83,330,1616482800\"; d=\"scan'208\";a=\"486673136\""
        ],
        "X-ExtLoop1": "1",
        "From": "Jiayu Hu <jiayu.hu@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "maxime.coquelin@redhat.com, chenbo.xia@intel.com, yinan.wang@intel.com,\n Jiayu Hu <jiayu.hu@intel.com>",
        "Date": "Wed,  7 Jul 2021 07:18:04 -0400",
        "Message-Id": "<1625656687-40604-1-git-send-email-jiayu.hu@intel.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1622189463-392610-2-git-send-email-jiayu.hu@intel.com>",
        "References": "<1622189463-392610-2-git-send-email-jiayu.hu@intel.com>",
        "Subject": "[dpdk-dev] [PATCH v2 0/3] provide thread unsafe async registration\n functions",
        "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",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Lock protection is needed during the vhost notifies the application of\ndevice readiness, so the first patch adds lock protection. In addition,\nthe second patch reworks async feature structure to improve readability.\nAfter performing locking, existed async vhost registration functions will\ncause deadlock, as they acquire lock too. The last patch provides thread\nunsafe registration functions to support calling within vhost callback\nfunctions.\n\nv2:\n* rework async feature structure\n* fix typo in commit log\n\nJiayu Hu (3):\n  vhost: fix lock on device readiness notification\n  vhost: rework async feature struct\n  vhost: add thread unsafe async registeration functions\n\n doc/guides/prog_guide/vhost_lib.rst |  12 +++\n examples/vhost/main.c               |   4 +-\n lib/vhost/rte_vhost_async.h         |  63 +++++++++++----\n lib/vhost/version.map               |   4 +\n lib/vhost/vhost.c                   | 157 ++++++++++++++++++++++++++----------\n lib/vhost/vhost_user.c              |   5 +-\n 6 files changed, 183 insertions(+), 62 deletions(-)"
}