Show a cover letter.

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

{
    "id": 2228090,
    "url": "http://patchwork.ozlabs.org/api/covers/2228090/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-pci/cover/20260425084607.53825-1-fengchengwen@huawei.com/",
    "project": {
        "id": 28,
        "url": "http://patchwork.ozlabs.org/api/projects/28/?format=api",
        "name": "Linux PCI development",
        "link_name": "linux-pci",
        "list_id": "linux-pci.vger.kernel.org",
        "list_email": "linux-pci@vger.kernel.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260425084607.53825-1-fengchengwen@huawei.com>",
    "list_archive_url": null,
    "date": "2026-04-25T08:46:02",
    "name": "[v4,0/5] vfio/pci: Add PCIe TPH support",
    "submitter": {
        "id": 92756,
        "url": "http://patchwork.ozlabs.org/api/people/92756/?format=api",
        "name": "Chengwen Feng",
        "email": "fengchengwen@huawei.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/linux-pci/cover/20260425084607.53825-1-fengchengwen@huawei.com/mbox/",
    "series": [
        {
            "id": 501427,
            "url": "http://patchwork.ozlabs.org/api/series/501427/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-pci/list/?series=501427",
            "date": "2026-04-25T08:46:02",
            "name": "vfio/pci: Add PCIe TPH support",
            "version": 4,
            "mbox": "http://patchwork.ozlabs.org/series/501427/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/2228090/comments/",
    "headers": {
        "Return-Path": "\n <linux-pci+bounces-53164-incoming=patchwork.ozlabs.org@vger.kernel.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "linux-pci@vger.kernel.org"
        ],
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=huawei.com header.i=@huawei.com header.a=rsa-sha256\n header.s=dkim header.b=jMo9St1o;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.105.105.114; helo=tor.lore.kernel.org;\n envelope-from=linux-pci+bounces-53164-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)",
            "smtp.subspace.kernel.org;\n\tdkim=pass (1024-bit key) header.d=huawei.com header.i=@huawei.com\n header.b=\"jMo9St1o\"",
            "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=113.46.200.219",
            "smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=huawei.com",
            "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=huawei.com"
        ],
        "Received": [
            "from tor.lore.kernel.org (tor.lore.kernel.org [172.105.105.114])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g2k2V4H5Dz1xvV\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 25 Apr 2026 18:46:26 +1000 (AEST)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id E51113011A64\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 25 Apr 2026 08:46:23 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 9B3C33321B1;\n\tSat, 25 Apr 2026 08:46:22 +0000 (UTC)",
            "from canpmsgout04.his.huawei.com (canpmsgout04.his.huawei.com\n [113.46.200.219])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id C17DF238C3B;\n\tSat, 25 Apr 2026 08:46:19 +0000 (UTC)",
            "from mail.maildlp.com (unknown [172.19.163.0])\n\tby canpmsgout04.his.huawei.com (SkyGuard) with ESMTPS id 4g2jts6pm5z1prLm;\n\tSat, 25 Apr 2026 16:39:49 +0800 (CST)",
            "from kwepemk500009.china.huawei.com (unknown [7.202.194.94])\n\tby mail.maildlp.com (Postfix) with ESMTPS id 2754840537;\n\tSat, 25 Apr 2026 16:46:17 +0800 (CST)",
            "from localhost.localdomain (10.50.163.32) by\n kwepemk500009.china.huawei.com (7.202.194.94) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.2.1544.11; Sat, 25 Apr 2026 16:46:16 +0800"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777106782; cv=none;\n b=C7V9KxYuZArMKJCqDceYehFRnEzMhSMtfcRYzmMDw2AVSmaO3DfOAmY9OoOX/H8JKRII+GH25quS88WTYIgSY4lRVgA4IjbVut38p3ESr2kfwrO9d92WxSCDA7pHNyHCNgiuld1CGcLY+XozVDFReoOXqjXtDCfrj5FcKCDxwKY=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777106782; c=relaxed/simple;\n\tbh=rSxfunIGSHk14MUJKSTFNSYATTxwMqrcub1WT5QZVVw=;\n\th=From:To:CC:Subject:Date:Message-ID:MIME-Version:Content-Type;\n b=kK2ty4EoL1erHNEJsda9iaR5AAnXOcfL68BKj5L4Z2TRDY2Y8bj6ylRUFKOSnyOeSNpgMV6Tm4uENnxmyN/0e04CAAEa/IzaR1j1eBTf9l75QnLR+hAfOQkfAg2SiYunHaH4ga7btgdW2TPv7ru17vEEcERawzr2x2LTc8Bome0=",
        "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=huawei.com;\n spf=pass smtp.mailfrom=huawei.com;\n dkim=pass (1024-bit key) header.d=huawei.com header.i=@huawei.com\n header.b=jMo9St1o; arc=none smtp.client-ip=113.46.200.219",
        "dkim-signature": "v=1; a=rsa-sha256; d=huawei.com; s=dkim;\n\tc=relaxed/relaxed; q=dns/txt;\n\th=From;\n\tbh=arGDMajk/38n/zFbEhbqe2wKQuL+pRQW1uw7zlONIVM=;\n\tb=jMo9St1oVjo90Tq9j0PdDOs61HDGgASFH6nRK5vw5Ma2dmHoTB4+DVrIR55VFKuTBcyjHTXqT\n\tXcEBGEQma+307/aOdAZKlWk/CjOTbce2VqMnaF5/TjmlGyqI5tOZAiWBmaXvnq3zq+IFiQmRdt+\n\tFat01x3DZbfmPltwtP+mof0=",
        "From": "Chengwen Feng <fengchengwen@huawei.com>",
        "To": "<alex@shazbot.org>, <jgg@ziepe.ca>",
        "CC": "<wathsala.vithanage@arm.com>, <helgaas@kernel.org>,\n\t<wangzhou1@hisilicon.com>, <wangyushan12@huawei.com>,\n\t<liuyonglong@huawei.com>, <kvm@vger.kernel.org>, <linux-pci@vger.kernel.org>",
        "Subject": "[PATCH v4 0/5] vfio/pci: Add PCIe TPH support",
        "Date": "Sat, 25 Apr 2026 16:46:02 +0800",
        "Message-ID": "<20260425084607.53825-1-fengchengwen@huawei.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "Precedence": "bulk",
        "X-Mailing-List": "linux-pci@vger.kernel.org",
        "List-Id": "<linux-pci.vger.kernel.org>",
        "List-Subscribe": "<mailto:linux-pci+subscribe@vger.kernel.org>",
        "List-Unsubscribe": "<mailto:linux-pci+unsubscribe@vger.kernel.org>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "kwepems500001.china.huawei.com (7.221.188.70) To\n kwepemk500009.china.huawei.com (7.202.194.94)"
    },
    "content": "This patchset enables userspace control over PCIe TPH steering tags,\nmotivated by the following considerations:\n\n1. Why userspace needs the capability to control steering tags:\n   When PCIe devices are fully owned by userspace workloads such as DPDK\n   and SPDK, only userspace has full knowledge of core binding policies\n   and traffic distribution strategies. Without this series, userspace\n   cannot enable TPH or configure steering tags, leaving built-in PCIe\n   performance optimizations unused in high-throughput polling I/O\n   scenarios.\n\n2. Why this interface must be implemented in VFIO:\n   VFIO is the standard, secure community solution for granting full\n   PCIe device ownership to userspace. Existing kernel TPH interfaces\n   are designed purely for in-kernel drivers. For user-owned devices,\n   VFIO provides the only isolated and correct path to expose per-device\n   TPH management.\n\nTPH supports both IV and DS modes. Since device-specific (DS) TPH mode\nintroduces cross-VM isolation risks such as untrusted guests programming\narbitrary steering tags to impact other domains, so a new module parameter\n`enable_unsafe_tph_ds_mode` is added. It defaults to off, and blocks all\nunsafe DS-mode TPH operations when disabled.\n\nTo restrict abuse of SET_ST and prevent arbitrary steering tag programming\nfrom userspace, the interface only accepts explicit CPU ID, memory type\nand index inputs. The kernel resolves the corresponding steering tag\ninternally before programming, limiting userspace to controlled,\nindex-based configuration.\n\nBased on earlier RFC work by Wathsala Vithanage.\n\nv4:\n- Address Jason's comment of restrict device-specific mode under module\n  param control.\n- Rename module param to enable_unsafe_tph_ds_mode\nv3:\n- Add module param enable_unsafe_tph_ds to guard unsafe usage\n  of TPH device-specific mode with no ST table\nv2:\n- Export pcie_tph_get_st_modes()\n- Add detailed comment for UAPI structures and operations\n- Add batch entry limit VFIO_TPH_MAX_ENTRIES\n- Improve robustness and error handling\n\nChengwen Feng (5):\n  PCI/TPH: Export pcie_tph_get_st_modes() for external use\n  vfio/pci: Add PCIe TPH interface with capability query\n  vfio/pci: Add PCIe TPH enable/disable support\n  vfio/pci: Add PCIe TPH GET_ST interface\n  vfio/pci: Add PCIe TPH SET_ST interface\n\n drivers/pci/tph.c                |  13 +-\n drivers/vfio/pci/vfio_pci.c      |  13 +-\n drivers/vfio/pci/vfio_pci_core.c | 221 ++++++++++++++++++++++++++++++-\n include/linux/pci-tph.h          |   7 +\n include/linux/vfio_pci_core.h    |   3 +-\n include/uapi/linux/vfio.h        | 131 ++++++++++++++++++\n 6 files changed, 383 insertions(+), 5 deletions(-)"
}