fi_lpp(7)
π NAME: fi_lpp(7) β The LPP Fabric Provider π
Bestie, this is fi_lpp(7), aka The LPP Fabric Provider. That's the name, that's the page, and we're already off to a slay. π«Ά
π OVERVIEW π
Okay so the LPP provider runs on FabreX PCIe networks. FabreX provides high performance RDMA capabilities which form the foundation of the LPP provider. Higher level primitives are implemented at the libfabric and LPP kernel module (KLPP) layers. It's giving layered, it's giving foundational, it's giving exactly what the page says. β¨
β¨ SUPPORTED FEATURES β¨
The LPP provider supports a subset of the libfabric API. Key features include:
π Endpoint types π
LPP supports the FI_EP_RDM endpoint type with resource management. That's the endpoint type, and resource management is coming with it. π
π Endpoint capabilities π
LPP supports FI_MSG, FI_RMA, and FI_TAGGED message types. Message types? Supported. Periodt. π
π Additional capabilities π
LPP supports the additional features: FI_DIRECTED_RECV, FI_MULTI_RECV, FI_INJECT, FI_DELIVERY_COMPLETE. Look at that list, bestie β additional capabilities ate. π₯
π Progress π
LPP currently supports only FI_PROGRESS_MANUAL. Therefore user applications are required to poll for progress. So yeah, polling is the assignment. π
π LIMITATIONS π
Vibe check: these features are unsupported β connection management, event queue, scalable endpoint, passive endpoint, shared receive context, atomics. Not here, not on this provider, not today. π
π§ RUNTIME PARAMETERS π§
The LPP provider checks for the following environment variables:
FI_LPP_DISABLE_OSBYPASSβ A bool which disables direct userspace writes when set. This can be used as a debugging aid, however it will degrade performance. So like, debug if you must, but highkey it will degrade performance. πFI_LPP_MAX_WR_OSBYPASS_SIZEβ Sets the maximum size forPIOwhen performing write RDMA transfers. Transfers at or below this size will use CPU copy, while transfers above it will use a DMA engine. Cutoff behavior, very demure, veryPIO. πFI_LPP_MAX_RD_OSBYPASS_SIZEβ Sets the maximum size forPIOwhen performing read RDMA transfers. Transfers at or below this size will use CPU copy, while transfers above it will use a DMA engine. Same energy, read-RDMA edition. π¦FI_LPP_CQ_OVERCOMMITβ A bool which allows operations to start that may overrun the CQ. Normally, when resource management is enabled, the LPP provider will attempt to throttle operations that might overrun the CQ. This parameter disables that behavior while leaving the remainder of the resource management features enabled. So it's not "resource management off," it's "that throttling behavior off, remainder still enabled." πFI_LPP_DOMAIN_CLEANUPβ A bool which controls whether closing a domain with active resources will cause those resources to be automatically closed. If true (the default), the LPP provider will automatically close the resources. Default is true, so auto-close is the default vibe. β¨FI_LPP_SYSTEM_MEMCPYβ Use thememcpyimplementation in the system libc rather than provider-specificmemcpy. System libc vs provider-specificmemcpy: choose your fighter. π«Ά
π SEE ALSO π
Required reading, bestie. Go click through the manuals. π
π AUTHORS π
OpenFabrics. Iconic. π
This cutie came from Libfabric v2.5.1, Libfabric Programmerβs Manual, dated 2024-12-10. Bye bestie, mwah! ππ¦
π¦ where this page comes from
- centos-stream 10: libfabric-devel 2.5.1-1.el10 Β· BSD-2-Clause OR GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms