Browse Prior Art Database

Method for multiple event queues in a channel adapter for efficient distribution of events on multiprocessor systems

IP.com Disclosure Number: IPCOM000022476D
Publication Date: 2004-Mar-17
Document File: 5 page(s) / 18K

Publishing Venue

The IP.com Prior Art Database

Abstract

Disclosed is a method for multiple event queues in a channel adapter for efficient distribution of events on multiprocessor systems. Benefits include improved functionality, improved performance, and improved reliability.

This text was extracted from a Microsoft Word document.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 42% of the total text.

Method for multiple event queues in a channel adapter for efficient distribution of events on multiprocessor systems

Disclosed is a method for multiple event queues in a channel adapter for efficient distribution of events on multiprocessor systems. Benefits include improved functionality, improved performance, and improved reliability.

Background

Network input/output architecture defines a mechanism to notify transport service agents of asynchronous events. A mechanism for event generation and delivery is an event queue. It is a memory region accessible by host software and a host or target channel adapter. The channel adapter writes events to the event queue. Software running on a host or target system reads the events from the queue. Typically, a channel adapter generates an interrupt to indicate that one or more events are available on the event queue. However, other mechanisms may be implemented.

A completion notification event is generated when a work task is completed and written to a queue that triggers a signal (such as an interrupt) indicating that the task is complete. Completion queues are created for the use of transport service clients. Like an event queue, a completion queue is typically a memory region shared by the host system and the channel adapter. A work completion entry on a completion queue is the mechanism by which a client is informed of a completed work request. The architecture defines a work request as a request to send or receive a message (consisting of one or more data packets) over a network fabric. By requesting a completion notification event on the next entry written to a completion queue, a client is asynchronously notified of a completed work request.

General description

The disclosed method proposes a channel adapter design that incorporates multiple event queues. The purpose is to distribute event servicing among the processors in a multi-processor system. Typically, the number of event queues is the smaller of the number of processors in the system or the number of event queues supported by the channel adapter. Event queues may be assigned statically or dynamically to processors for servicing when the host system is notified that events are available on an event queue. An event queue is bound to a processor for servicing and is accessed exclusively by the processor to which it is bound.

Software typically configures the base address and size for each event queue supported, but other mechanisms may be used. The device must provide a mechanism to signal the host system when an event is written to the queue. The signaling mechanism may include a means to identify the particular event queue. The device must enable and disable signaling on a per-event-queue basis to prevent a new event from generating a signal to the host when the event queue is already being serviced.

Each completion queue is associated with an event queue when the completion queue is initialized. Enabling software to assign a completion qu...