Method, system, and program for managing memory for data transmission through a network
First Claim
Patent Images
1. A method for sending data from a source to a destination, comprising:
- a host of the source providing to a sending agent of the source, virtual memory addresses of data to be sent to a destination wherein the data is stored in a plurality of unpinned physical locations of the source, each location having a physical address and a virtual memory address which is mapped to the physical address and wherein the physical locations include locations of a first memory and locations of a second memory;
the sending agent providing to the host of the source at least some of the virtual memory addresses of the data to be sent to the destination;
the host of the source identifying to the sending agent the data addressed by the virtual memory addresses provided by the sending agent wherein the host identifying data comprises the host providing to the sending agent the physical addresses of the locations containing the data addressed by the virtual memory addresses provided by the sending agent, and the data identified by the host is stored in the first memory and the physical memory addresses provided by the host are physical memory locations of the first memory containing the data addressed by the virtual addresses provided by the sending agent; and
the sending agent sending the identified data to the destination;
the method further comprising;
pinning the physical memory locations of the first memory provided by the host to the sending agent to prevent the data addressed by the virtual addresses provided by the sending agent from being swapped to the second memory;
the sending agent retrieving from the pinned physical memory locations of the first memory, the data addressed by the virtual addresses provided by the sending agent; and
unpinning the pinned physical memory locations of the first memory after the sending agent sends to the destination the data addressed by the virtual addresses provided by the sending agent.
1 Assignment
0 Petitions
Accused Products
Abstract
Provided are a method, system, and program for managing memory for data transmission through a network. Virtual memory addresses of the data to be sent are provided to a sending agent. The sending agent provides to a host the virtual addresses of requested data. In response, the requested data addressed by the virtual addresses or the physical memory locations of the requested data are provided to the sending agent for sending to a destination.
130 Citations
21 Claims
-
1. A method for sending data from a source to a destination, comprising:
-
a host of the source providing to a sending agent of the source, virtual memory addresses of data to be sent to a destination wherein the data is stored in a plurality of unpinned physical locations of the source, each location having a physical address and a virtual memory address which is mapped to the physical address and wherein the physical locations include locations of a first memory and locations of a second memory; the sending agent providing to the host of the source at least some of the virtual memory addresses of the data to be sent to the destination; the host of the source identifying to the sending agent the data addressed by the virtual memory addresses provided by the sending agent wherein the host identifying data comprises the host providing to the sending agent the physical addresses of the locations containing the data addressed by the virtual memory addresses provided by the sending agent, and the data identified by the host is stored in the first memory and the physical memory addresses provided by the host are physical memory locations of the first memory containing the data addressed by the virtual addresses provided by the sending agent; and the sending agent sending the identified data to the destination; the method further comprising; pinning the physical memory locations of the first memory provided by the host to the sending agent to prevent the data addressed by the virtual addresses provided by the sending agent from being swapped to the second memory; the sending agent retrieving from the pinned physical memory locations of the first memory, the data addressed by the virtual addresses provided by the sending agent; and unpinning the pinned physical memory locations of the first memory after the sending agent sends to the destination the data addressed by the virtual addresses provided by the sending agent. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system adapted to communicate with a destination, comprising:
-
memory; a processor coupled to the system memory; an operating system executable by the processor in memory; a network adaptor; data storage; a data storage controller adapted to manage Input/Output (I/O) access to the data storage; and a device driver executable by the processor in the memory, wherein the memory and the data storage each comprise physical locations adapted to store data, each location having a physical address and a virtual address which is mapped to the physical address; and wherein at least one of the operating system and device driver is adapted to provide a host and at least one of the device driver and the network adaptor is adapted to provide a sending agent wherein; (i) the host provides to the sending agent, virtual memory addresses of data to be sent to a destination wherein the data is stored in a plurality of unpinned physical locations of the memory, (ii) the sending agent provides to the host at least some of the virtual memory addresses of the data to be sent to the destination; (iii) the host identifies to the sending agent the data addressed by the virtual memory addresses provided by the sending agent, wherein the host identifying data comprises the host providing to the sending agent the physical addresses of the locations containing the data addressed by the virtual memory addresses provided by the sending agent and wherein the data identified by the host is stored in the memory and the physical addresses provided by the host are physical locations of the memory containing the data addressed by the virtual addresses provided by the sending agent; and (iv) the sending agent sends the identified data to the destination; wherein the host is further adapted to pin the physical memory locations of the memory provided by the host to the sending agent to prevent the data addressed by the virtual addresses provided by the sending agent from being swapped to the data storage; wherein the sending agent is further adapted to retrieve from the pinned physical memory locations of the memory, the data addressed by the virtual addresses provided by the sending agent; and at least one of the sending agent and the host is further adapted to unpin the pinned physical memory locations of the memory after the sending agent sends to the destination the data addressed by the virtual addresses provided by the sending agent. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. An article of manufacture for sending data from a source to a destination, the operations comprising:
-
a host of the source providing to a sending agent of the source, virtual memory addresses of data to be sent to a destination wherein the data is stored in a plurality of unpinned physical locations of the source, each location having a physical address and a virtual memory address which is mapped to the physical address, and wherein the physical locations include locations of a first memory and locations of a second memory; the sending agent providing to the host of the source at least some of the virtual memory addresses of the data to be sent to the destination; the host of the source identifying to the sending agent the data addressed by the virtual memory addresses provided by the sending agent and wherein the host identifying data comprises the host providing to the sending agent the physical addresses of the locations containing the data addressed by the virtual memory addresses provided by the sending agent, and the data identified by the host is stored in the first memory and the physical memory addresses provided by the host are physical memory locations of the first memory containing the data addressed by the virtual addresses provided by the sending agent; and the sending agent sending the identified data to the destination; the operations further comprising; pinning the physical memory locations of the first memory provided by the host to the sending agent to prevent the data addressed by the virtual addresses provided by the sending agent from being swarmed to the second memory; the sending agent retrieving from the pinned physical memory locations of the first memory, the data addressed by the virtual addresses provided by the sending agent; and unpinning the pinned physical memory locations of the first memory after the sending agent sends to the destination the data addressed by the virtual addresses provided by the sending agent. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification