Browse Prior Art Database

Infiniband Queue Pair Prioritization Using Service Levels and Tenure Limits

IP.com Disclosure Number: IPCOM000033929D
Original Publication Date: 2005-Jan-05
Included in the Prior Art Database: 2005-Jan-05
Document File: 2 page(s) / 46K

Publishing Venue

IBM

Abstract

Disclosed is an service level (SL) arbitration mechanism using SL arbitrations and queue pair (QP) tenures. This mechanism is suitable for providing quality of service (QOS) differentiation in Infiniband* host channel adapters (HCA's) or switches and other fabrics that use the concept of traffic classes such as PCI express.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 52% of the total text.

Page 1 of 2

Infiniband Queue Pair Prioritization Using Service Levels and Tenure Limits

Service levels (SL's) are defined by Infiniband* as a method for systems to provide different qualities of service for data flows from different applications. For example, service levels could be used to define minimum latency requirements or deterministic bandwidth requirements. Infiniband defines sixteen service levels, all of which must be supported by all implementations. However, Infiniband does not define the meanings of the sixteen service levels or how the system should treat them. That is up to the individual system.

    This disclosure describes an SL arbitration mechanism that can be used by an operating system or system firmware to meet quality of service (QOS) goals and provide for a reasonable task switching interval between queue pairs (QP's) to keep context switching losses minimal, all independent of the subnet manager defined virtual lane (VL) arbitration.

    The two new components of this invention are an SL arbitration table (SLAT) and queue pair tenure.

    In this invention, an SL arbitration table is defined. Each end node and switch port could have an SL arbitration table, but the invention still works if just end nodes implement them. The SL arbitration table is made up of multiple entries, each entry having an SL number and an associated weight. The weight is a number indicating how many bytes of data packet should be generated for this SL before generating packets for another SL. The table could be as small as sixteen entries since each of the required sixteen SLs must appear in the table at least once. It could be as large as desired. A typical implementation would be 64 entry table. Longer tables allow for low latency SLs by putting a particular SL into every other entry in the table, for example. SL numbers can be programmed into the table in any ordered desired. Also any traffic weighing per entry can be used.

    The SL arbitration table is traversed in order, in a circular fashion, from top to bottom and wrapping back to the top again. A pointer into the table is used by the node to indicate the current table entry. Whatever SL number is in the current pointed to entry will be the only SL allowed to generate packets for transmission on the phy...