{"id":2223854,"url":"http://patchwork.ozlabs.org/api/1.1/covers/2223854/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/cover/20260416092105.41439-1-fengchengwen@huawei.com/","project":{"id":28,"url":"http://patchwork.ozlabs.org/api/1.1/projects/28/?format=json","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},"msgid":"<20260416092105.41439-1-fengchengwen@huawei.com>","date":"2026-04-16T09:21:00","name":"[v2,0/5] vfio/pci: Add PCIe TPH support","submitter":{"id":92756,"url":"http://patchwork.ozlabs.org/api/1.1/people/92756/?format=json","name":"Chengwen Feng","email":"fengchengwen@huawei.com"},"mbox":"http://patchwork.ozlabs.org/project/linux-pci/cover/20260416092105.41439-1-fengchengwen@huawei.com/mbox/","series":[{"id":500123,"url":"http://patchwork.ozlabs.org/api/1.1/series/500123/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/list/?series=500123","date":"2026-04-16T09:21:03","name":"vfio/pci: Add PCIe TPH support","version":2,"mbox":"http://patchwork.ozlabs.org/series/500123/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/covers/2223854/comments/","headers":{"Return-Path":"\n <linux-pci+bounces-52580-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=JkoOOMnI;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-pci+bounces-52580-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=\"JkoOOMnI\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=113.46.200.223","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 sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fxCLN4RJwz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 16 Apr 2026 19:26:04 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 79B8430E4511\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 16 Apr 2026 09:21:18 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 7F3D8391838;\n\tThu, 16 Apr 2026 09:21:17 +0000 (UTC)","from canpmsgout08.his.huawei.com (canpmsgout08.his.huawei.com\n [113.46.200.223])\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 017173815DC;\n\tThu, 16 Apr 2026 09:21:13 +0000 (UTC)","from mail.maildlp.com (unknown [172.19.163.214])\n\tby canpmsgout08.his.huawei.com (SkyGuard) with ESMTPS id 4fxC5R2ZPMzmVBt;\n\tThu, 16 Apr 2026 17:14:51 +0800 (CST)","from kwepemk500009.china.huawei.com (unknown [7.202.194.94])\n\tby mail.maildlp.com (Postfix) with ESMTPS id C189540561;\n\tThu, 16 Apr 2026 17:21:11 +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; Thu, 16 Apr 2026 17:21:11 +0800"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776331277; cv=none;\n b=HtZF9tXz38Mi2Eql+Ev8xUPRmrQmSnFi8h4yllMbzarihaqNdzy9Z74WBhiSr40ySQDEj6qUsrih4C+QtNOOdXzWzqP6RHsZJpLz9yBQuwq2MHTn7AEh5gx6CyAWo8JOWbj8wuuyIY+TE/UyPO7hWe4TeIpFGmN78HMlmoGNKwc=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776331277; c=relaxed/simple;\n\tbh=9rrxkJGcfvheNH3ZjThzxRyJRY6JnbKPAWOjKCR3WRE=;\n\th=From:To:CC:Subject:Date:Message-ID:MIME-Version:Content-Type;\n b=eRWKuvL0E+7ukNV3HffUfOgWnm9qf+b21p1QwERIiKZLz/rKAto0yPLRH7hBsv5vDhU0fFH/UbYHRchdOgpXdWJZgYDVsfMFnK1f82XeVvp2sYwyoDR76pbljYKrYAJtwnDF6DZdLx5gP9UaG7svagD4TOOjqEy+ZG+MyGn9KIU=","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=JkoOOMnI; arc=none smtp.client-ip=113.46.200.223","dkim-signature":"v=1; a=rsa-sha256; d=huawei.com; s=dkim;\n\tc=relaxed/relaxed; q=dns/txt;\n\th=From;\n\tbh=3Fvqqj6W6niUat7EKNlM1LJN9IyI47YUEGrMTafBpVk=;\n\tb=JkoOOMnI9EuVIRzgjFgAL6Fy+zCwJafwIFnACmKmuO3LGGFpjmfWVuV5rS7zZX224Olub3cHQ\n\tMBgvAd6JsoBrWLToWu9O583a0nqRmKKfydrEaTDM24LH1xjrGQjqSQNEKits8DSDbXSsfaUsLx+\n\tFUBeWf/iTwQTLhDo1A/RGGo=","From":"Chengwen Feng <fengchengwen@huawei.com>","To":"<alex@shazbot.org>, <jgg@ziepe.ca>","CC":"<wathsala.vithanage@arm.com>, <wangzhou1@hisilicon.com>,\n\t<wangyushan12@huawei.com>, <liuyonglong@huawei.com>, <kvm@vger.kernel.org>,\n\t<linux-pci@vger.kernel.org>","Subject":"[PATCH v2 0/5] vfio/pci: Add PCIe TPH support","Date":"Thu, 16 Apr 2026 17:21:00 +0800","Message-ID":"<20260416092105.41439-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":"kwepems200002.china.huawei.com (7.221.188.68) To\n kwepemk500009.china.huawei.com (7.202.194.94)"},"content":"This series adds support for PCIe TLP Processing Hints (TPH) to\nvfio-pci, allowing userspace to manage device steering tags for\nimproved performance and QoS in virtualized deployments.\n\nThe implementation follows a clean incremental structure:\n- Patch 1: Introduce UAPI ABI and implement capability query to\n  let userspace discover supported TPH modes, ST table presence\n  and size.\n- Patch 2: Add TPH enable/disable with mode selection.\n- Patch 3: Add interface to batch get per-CPU steering tags for\n  device-specific mode.\n- Patch 4: Add interface to batch program steering tag table\n  entries for standard TPH modes.\n\nAll user API definitions are finalized in the first patch and\nremain stable across the series. The design follows existing\nVFIO conventions and relies on kernel pcie-tph infrastructure.\n\nThis series addresses the TPH management requirements discussed\nin the RFC \"Proposal: Add sysfs interface for PCIe TPH Steering\nTag retrieval and configuration\".\n\nInstead of introducing a sysfs interface, we choose to implement\nTPH management via a VFIO-specific ioctl for these reasons:\n1. VFIO is the standard userspace interface for PCI devices.\n2. An ioctl approach provides better type safety, batch support\n   and stable ABI compared to sysfs for configuration.\n3. VFIO properly isolates TPH operations to the assigned device,\n   avoiding conflicts with other kernel management paths.\n\nBased on earlier RFC work by Wathsala Vithanage.\n\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_core.c | 213 +++++++++++++++++++++++++++++++\n include/linux/pci-tph.h          |   7 +\n include/uapi/linux/vfio.h        | 131 +++++++++++++++++++\n 4 files changed, 362 insertions(+), 2 deletions(-)"}