Offloading the processing of a network protocol stack
AssigneeIntel Corporation
InventorsVincent J. Zimmer, Michael A. Rothman
Life of this patent
Estimating the term…
Abstract
A computer system is partitioned during a pre-boot phase of the computer system between a first partition and a second partition, wherein the first partition to include a first processing unit and the second partition to include a second processing unit. An Input/Output (I/O) operating system is booted on the first partition. A general purpose operating system is booted on the second partition. Network transactions are issued by the general purpose operating system to be performed by the I/O operating system. The network transactions are performed by the I/O operating system.
Claims21
A method, comprising:
- partitioning a computer system during a pre-boot phase of the computer system between a first partition and a second partition, wherein the first partition to include a first processing unit and a first memory region and the second partition to include a second processing unit and a second memory region, the first and second memory regions partially overlapping to form a shared memory region;
- booting an Input/Output (I/O) operating system on the first partition;
- booting a general purpose operating system on the second partition;
- issuing network transactions by the general purpose operating system to be performed by the I/O operating system by placing network transactions requests in the shared memory region;
- and
- performing the network transactions by the I/O operating system, wherein a Transmission Control Protocol and Internet Protocol (“TCP/IP”) stack of the general purpose operating system is offloaded to the I/O operating system to perform the network transactions of the general purpose operating system by the I/O operating system instead,
- wherein partitioning memory of the computer system includes under-reporting an amount of memory available to the general purpose operating system.
A non-transitory machine-accessible medium that stores a plurality of instructions which when executed perform operations comprising:
- designating a first processing unit of a computer system, during a pre-boot phase of the computer system, to be used by an Input/Output (I/O) operating system;
- designating a second processing unit of the computer system, during the pre-boot phase, to be used by a general purpose operating system;
- partitioning memory of the computer system, during the pre-boot phase, into a first portion to be used by the I/O operating system and a second portion to be used by the general purpose operating system, wherein the first and second portions include a shared memory portion that is to be accessible to the general purpose operating system and the I/O operating system, wherein partitioning the memory of the computer system includes under-reporting an amount of memory available to the general purpose operating system;
- offloading a network protocol stack of the general purpose operating system to the I/O operating system;
- and
- issuing network transactions by the general purpose operating system to the I/O operating system by placing network transaction requests in the shared memory portion.
A computer system, comprising:
- a first processing unit coupled to a first portion of memory;
- a second processing unit coupled to a second portion of memory;
- an Input/Output Hub coupled to the first and second processing units;
- and
- a non-volatile storage unit coupled to the Input/Output Hub, wherein the non-volatile storage unit stores a plurality of instructions which when executed by the first or second processing units perform operations comprising:
- designating the first processing unit, during a pre-boot phase of the computer system, to be used by an Input/Output (I/O) operating system to execute a Transmission Control Protocol and Internet Protocol (“TCP/IP”) stack for a general purpose operating system;
- designating the second processing unit, during the pre-boot phase, to be used by the general purpose operating system;
- and
- partitioning the first and second portions of memory, during the pre-boot phase, wherein the first and second portions overlap to include a shared memory portion that is to be accessible to the general purpose operating system and the I/O operating system for issuing network transaction requests by the general purpose operating system to the I/O operating system,
- wherein partitioning the memory of the computer system includes under-reporting an amount of memory available to the general purpose operating system.
Dependencies are inferred from the claim text.