A computer-implemented method comprising: receiving a request to access, from a main memory, a first cache line of a page of data; determining that the first cache line is not stored in the main memory and is stored in a secondary memory, and in response, transferring the first cache line of the page of data from the secondary memory to the main memory without transferring the entire page of data, wherein a remaining portion of the page of data remains stored in the secondary memory; updating a page table entry associated with the page of data to point to a location of the page of data in the main memory; and implementing a cache coherence mechanism while transferring the remaining portion of the page of data from the secondary memory to the main memory to service an access of a second cache line of the page of data, the cache coherence mechanism including, issuing, by a cache agent, a request for ownership of cache lines in the page of data; releasing ownership of each cache line in response to the cache line being transferred from the secondary memory to the main memory; and in response to a request to access the second cache line of the page of data while the remaining portion of the page of data is being transferred, recognizing a snoop request for the second cache line, and returning the second cache line in response to the snoop request once the second cache line is transferred from the secondary memory. receiving a request to access, from a main memory, a first cache line of a page of data; determining that the first cache line is not stored in the main memory and is stored in a secondary memory, and in response, transferring the first cache line of the page of data from the secondary memory to the main memory without transferring the entire page of data, wherein a remaining portion of the page of data remains stored in the secondary memory; updating a page table entry associated with the page of data to point to a location of the page of data in the main memory; and implementing a cache coherence mechanism while transferring the remaining portion of the page of data from the secondary memory to the main memory to service an access of a second cache line of the page of data, the cache coherence mechanism including, issuing, by a cache agent, a request for ownership of cache lines in the page of data; releasing ownership of each cache line in response to the cache line being transferred from the secondary memory to the main memory; and in response to a request to access the second cache line of the page of data while the remaining portion of the page of data is being transferred, recognizing a snoop request for the second cache line, and returning the second cache line in response to the snoop request once the second cache line is transferred from the secondary memory. issuing, by a cache agent, a request for ownership of cache lines in the page of data; releasing ownership of each cache line in response to the cache line being transferred from the secondary memory to the main memory; and in response to a request to access the second cache line of the page of data while the remaining portion of the page of data is being transferred, recognizing a snoop request for the second cache line, and returning the second cache line in response to the snoop request once the second cache line is transferred from the secondary memory.