Cross-domain data transfer using deferred page remapping
First Claim
1. A computer system, comprising:
- a network adapter that connects to a network, said network adapter including circuitry for performing data checksum operations;
a computer and an operating system arranged to support multiple processes and multiple domains;
a main memory having at least a portion thereof arranged in pages; and
a virtual memory management unit, operatively connected to said computer and said memory, for managing reads and writes to said memory using page mapping information, wherein said operating system controls ownership of the pages in said memory using page ownership information, and wherein said computer system enables the receipt of a physical page of data transferred between domains by reassigning ownership of the physical page within the page ownership information without updating the page mapping information associated with said virtual memory management unit until the domain obtaining ownership needs to read the data.
0 Assignments
0 Petitions
Accused Products
Abstract
A cross-domain data transfer technique is disclosed in which page remapping operations are eliminated in situations where physical memory addresses can be passed across domains. By passing physical memory addresses across domains instead of virtual memory addresses, the page remapping operations necessarily associated with passing virtual memory addresses across domains can be avoided in many cases. With the receipt of data across domains, page remapping operations are able to be deferred until the data is received in a domain that needs to touch the data. In certain cases, the transfer of data can be completed without ever having to map in the data to the receiving domain'"'"'s address space. With the transmission of data across domains, where possible the pages are borrowed in their physical form. The invention can be embodied in many ways, including system, apparatus or method forms.
-
Citations
18 Claims
-
1. A computer system, comprising:
-
a network adapter that connects to a network, said network adapter including circuitry for performing data checksum operations;
a computer and an operating system arranged to support multiple processes and multiple domains;
a main memory having at least a portion thereof arranged in pages; and
a virtual memory management unit, operatively connected to said computer and said memory, for managing reads and writes to said memory using page mapping information, wherein said operating system controls ownership of the pages in said memory using page ownership information, and wherein said computer system enables the receipt of a physical page of data transferred between domains by reassigning ownership of the physical page within the page ownership information without updating the page mapping information associated with said virtual memory management unit until the domain obtaining ownership needs to read the data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
wherein the header is placed in one of the virtual buffers and the data is placed one or more of the physical buffers. -
6. A computer system as recited in claim 1, wherein said computer system enables the transmission of a physical page of data across domains by borrowing the physical page.
-
7. A computer system as recited in claim 6, wherein said computer system further enables the transmission of the physical page across domains by locking the page ownership information associated with the borrowed page while the physical page is being borrowed.
-
8. A computer system as recited in claim 7, wherein the original owner of the borrowed page is restricted to read-only access while the physical page is being borrowed.
-
9. A computer system as recited in claim 6, wherein the transfer of the page of data is invoked by a data request,
wherein said operating system comprises means for determining whether the requested page of data being received is one of a virtual address request and a physical page memory request, wherein when the requested page is the physical page memory request, said operating system controls the reassigning of ownership of the physical page within the page ownership information without updating the page mapping information, and wherein when the requested page is the virtual address request, said operating system controls the reassigning of ownership of the physical page within the page ownership information and said operating system together with said virtual memory management unit update the page mapping information. -
10. A computer system as recited in claim 6, wherein said operating system has physical buffers and virtual buffers associated with each of the multiple domains, the physical buffers point to said main memory and the virtual buffers point to virtual memory.
-
11. A computer system as recited in claim 10, wherein said network adapter receives incoming packets of data, each packet includes a header and data, and
wherein the header is placed in one of the virtual buffers and the data is placed one or more of the physical buffers.
-
-
12. A computer readable medium including computer program code for transferring a block of data associated with a first domain to a second domain, the first and second domains are associated with a computer system that supports multiple domains and virtual memory, said computer readable medium comprising:
-
computer program code for receiving a request at a first domain from a second domain for a block of data residing on a portion of physical memory assigned to the first domain;
computer program code for reassigning ownership of the block of data requested from the first domain to the second domain;
computer program code for determining whether the block of data requested is one of a virtual address request and a physical memory request; and
computer program code for remapping virtual addresses in accordance with said computer program code for reassigning when said computer program code for determining determines that the data request is the virtual address request and not when said computer program code for determining determines that the data request is the physical memory request, wherein burdensome remapping operations are avoided or at least deferred until said computer program code for determining determines that a data request is a virtual address request for the reassigned block of data. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
Specification