[PATCH v1 0/4] Introduce generic cache stash API and PCIe TPH implementation
Chengwen Feng
fengchengwen at huawei.com
Fri May 8 11:28:51 CEST 2026
This patch set introduces a generic ethdev cache stash framework,
provides PCIe TPH (Transaction Processing Hints) implementation
on PCI/VFIO bus, enables TPH cache stash support for e1000/igb PMD,
and adds testpmd command line configuration.
The patchset is organized as follows:
- Patch 1/4: bus/pci: introduce PCIe TPH support
Add generic PCIe TPH APIs and VFIO backend implementation,
with stub implementations for BSD and Windows.
- Patch 2/4: ethdev: introduce generic cache stash API
Define unified cache stash capability/operation/config abstraction,
support device-level and per-queue stash management.
- Patch 3/4: net/e1000: add cache stash support via TPH
Implement ethdev cache stash ops for igb PMD based on PCIe TPH.
- Patch 4/4: app/testpmd: add TPH stash objects configuration
Add testpmd CLI option to configure stash objects and
automatically apply stash enable/disable on forwarding start/stop.
Note:
1. This implementation references the Linux kernel VFIO TPH uapi
series (v8 version), which is not yet merged upstream:
https://lore.kernel.org/all/20260508064053.37529-1-fengchengwen@huawei.com/
2. The API design and cache stash model learn from the prior work
by Wathsala Vithanage: "An API for Cache Stashing with TPH".
3. The e1000/igb PMD is enabled as the first user of this API
because it is the only PCIe TPH capable hardware available
for testing at this time. The generic API design is extensible
to other NICs and future cache stash mechanisms.
Chengwen Feng (4):
bus/pci: introduce PCIe TPH support
ethdev: introduce generic cache stash API
net/e1000: add cache stash support via TPH
app/testpmd: add TPH stash objects configuration
app/test-pmd/parameters.c | 20 ++
app/test-pmd/testpmd.c | 81 +++++++
app/test-pmd/testpmd.h | 1 +
drivers/bus/pci/bsd/pci.c | 50 +++++
drivers/bus/pci/linux/pci.c | 48 +++++
drivers/bus/pci/linux/pci_init.h | 9 +
drivers/bus/pci/linux/pci_vfio.c | 272 ++++++++++++++++++++++++
drivers/bus/pci/rte_bus_pci.h | 112 ++++++++++
drivers/bus/pci/windows/pci.c | 50 +++++
drivers/net/intel/e1000/base/e1000_hw.h | 2 +
drivers/net/intel/e1000/base/e1000_vf.h | 2 +
drivers/net/intel/e1000/igb_ethdev.c | 221 +++++++++++++++++++
lib/ethdev/ethdev_driver.h | 37 ++++
lib/ethdev/rte_ethdev.c | 40 ++++
lib/ethdev/rte_ethdev.h | 95 +++++++++
15 files changed, 1040 insertions(+)
--
2.17.1
More information about the dev
mailing list