Browse Prior Art Database

Method for a scalable high-speed transmit operation for hyper-threaded and multiprocessor systems

IP.com Disclosure Number: IPCOM000009980D
Publication Date: 2002-Oct-02
Document File: 3 page(s) / 43K

Publishing Venue

The IP.com Prior Art Database

Abstract

Disclosed is a method for a scalable high-speed transmit operation for hyper-threaded and multiprocessor systems. Benefits include improved performance.

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 50% of the total text.

Method for a scalable high-speed transmit operation for hyper-threaded and multiprocessor systems

Disclosed is a method for a scalable high-speed transmit operation for hyper-threaded and multiprocessor systems. Benefits include improved performance.

Background

        � � � � � On a multiprocessor system or a system with hyper-threading technology, multiple threads may attempt to send data onto the network at the same time. If these data are directed to the same network adapter even though they are sent from separate processors (physical or virtual), their operation is serialized by the device driver for the network adapter.

        � � � � � The network adapter has various command and control structures and registers. Access to these structures and registers must be conducted in a controlled manner. If multiple threads access them simultaneously, the results may be unpredictable. The network controller may interleave the data from two or more sources into a single packet, resulting in data corruption. The controller may be placed in an invalid state that halts operation (see Figure 1).

        � � � � � To avoid these potential problems, device drivers use semaphores or locks to restrict access to the hardware structures and registers. However, the use of these locks limits the scalability of the system. As additional processors are added to the system or as hyper-threading is enabled, the performance of a server system may not improve. Instead of the new threads being able to achieve more work, they might instead contend for control of the locks to send data onto the network.

        � � � � � The result is a requirement for a method that enables multiple threads access to the network adapter to support scalability as more processing threads are added to the system.

        � � � � � Conventionally, the high level operation of a transmit operation is as follows:

1.        � � Acquire the transmit lock.

2.        � � Check resource availability.

3.        � � Determine what offload operations are required.

4.        � � For each buffer of the transmit operation:

        � � � � � a.        � � Determine the location and length.

        � � � � � b.        � � Prepare the DMA descriptor.

5.        � � Inform the network adapter of new DMA descriptors.

6.        � � Release the transmit lock.

        � � � � � Conventionally, the bulk of the transmit operation work is done while the transmit lock is held. Step 4 can be processing-overhead intensive in some operating systems in that it may include operations such as data copies and converting virtual buffer addresses to physical addresses to populate the DMA descriptors. Typical transmit operations have two buffers that comprise the packet to be sent. One buffer contains the packet headers such as Ethernet, IP and TCP, while the second buffer contains the data payload. For TCP segmentation offl...