IP Library Granted Patent US 12,117,908
Granted Patent B2
US 12,117,908 · App. 17/111,832 · Granted Oct 15, 2024

Restoring persistent application data from non-volatile memory after a system crash or system reboot

Inventors: Aravinda Prasad (Bangalore, IN); Sreenivas Subramoney (Bangalore, IN)
Assignee: Intel Corporation
G06F11/1471G06F12/1009G06F12/1036G06F12/109G06F2212/1032
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,117,908
App. No.
17/111,832
Granted
Oct 15, 2024
Kind
B2
Abstract

Systems, apparatuses and methods may provide for technology that associates a unique identifier with an application, creates an entry in a metadata table, wherein the metadata table is at a fixed location in persistent system memory, populates the entry with the unique identifier, a user identifier, and a pointer to a root of a page table tree, and recovers in-use data pages after a system crash. In one example, the in-use data pages are recovered from the persistent system memory based on the metadata table and include one or more of application heap information or application stack information.

Claims (66)

1. A computing system comprising:

a network controller;

a processor coupled to the network controller; and

a memory architecture including volatile system memory, persistent system memory, and a set of executable program instructions, which when executed by the processor, cause the processor to:

associate a unique identifier with an application,

create an entry in a metadata table, wherein the metadata table is at a fixed location in the persistent system memory,

populate the entry with the unique identifier, a user identifier, and a pointer to a root of a page table tree, and

recover in-use data pages after a system crash, wherein the in-use data pages are recovered from the persistent system memory based on the metadata table and include application heap information and application stack information.

2. The computing system of claim 1 , wherein to recover the in-use data pages, the instructions, when executed, cause the processor to:

read the root of the page table tree from the metadata table;

traverse the page table tree to identify the in-use data pages; and

flag the in-use data pages for future use.

3. The computing system of claim 2 , wherein the instructions, when executed, cause the processor to recognize the metadata table based on one or more of a boot argument list or a kernel source code.

4. The computing system of claim 1 , wherein the unique identifier is associated with the application in response to a request from the application.

5. The computing system of claim 1 , wherein the unique identifier is associated with the application in response to an allocation of a page in the persistent system memory to the application.

6. The computing system of claim 1 , wherein the in-use data pages are recovered in response to a request from the application, and wherein the instructions, when executed, cause the processor to:

conduct a verification of the request based on the user identifier; and

map an address space associated with the root of the page table tree to a virtual address space associated with the application if the verification is successful.

7. A semiconductor apparatus comprising:

one or more substrates; and

logic coupled to the one or more substrates, wherein the logic is implemented at least partly in one or more of configurable logic or fixed-functionality hardware logic, the logic coupled to the one or more substrates to:

associate a unique identifier with an application;

create an entry in a metadata table, wherein the metadata table is at a fixed location in a persistent system memory;

populate the entry with the unique identifier, a user identifier, and a pointer to a root of a page table tree; and

recover in-use data pages after a system crash, wherein the in-use data pages are recovered from the persistent system memory based on the metadata table and include application heap information and application stack information.

8. The semiconductor apparatus of claim 7 , wherein to recover the in-use data pages, the logic coupled to the one or more substrates is to:

read the root of the page table tree from the metadata table;

traverse the page table tree to identify the in-use data pages; and

flag the in-use data pages for future use.

9. The semiconductor apparatus of claim 8 , wherein the logic coupled to the one or more substrates is to recognize the metadata table based on one or more of a boot argument list or a kernel source code.

10. The semiconductor apparatus of claim 7 , wherein the unique identifier is associated with the application in response to a request from the application.

11. The semiconductor apparatus of claim 7 , wherein the unique identifier is associated with the application in response to an allocation of a page in the persistent system memory to the application.

12. The semiconductor apparatus of claim 7 , wherein the in-use data pages are recovered in response to a request from the application, and wherein the logic coupled to the one or more substrates is to:

conduct a verification of the request based on the user identifier; and

map an address space associated with the root of the page table tree to a virtual address space associated with the application if the verification is successful.

13. The semiconductor apparatus of claim 7 , wherein the logic coupled to the one or more substrates includes transistor channel regions that are positioned within the one or more substrates.

14. At least one non-transitory computer readable storage medium comprising a set of executable program instructions, which when executed by a computing system, cause the computing system to:

associate a unique identifier with an application;

create an entry in a metadata table, wherein the metadata table is at a fixed location in a persistent system memory;

populate the entry with the unique identifier, a user identifier, and a pointer to a root of a page table tree; and

recover in-use data pages after a system crash, wherein the in-use data pages are recovered from the persistent system memory based on the metadata table and include application heap information and application stack information.

15. The at least one non-transitory computer readable storage medium of claim 14 , wherein to recover the in-use data pages, the instructions, when executed, cause the computing system to:

read the root of the page table tree from the metadata table;

traverse the page table tree to identify the in-use data pages; and

flag the in-use data pages for future use.

16. The at least one non-transitory computer readable storage medium of claim 15 , wherein the instructions, when executed, cause the computing system to recognize the metadata table based on one or more of a boot argument list or a kernel source code.

17. The at least one non-transitory computer readable storage medium of claim 14 , wherein the unique identifier is associated with the application in response to a request from the application.

18. The at least one non-transitory computer readable storage medium of claim 14 , wherein the unique identifier is associated with the application in response to an allocation of a page in the persistent system memory to the application.

19. The at least one non-transitory computer readable storage medium of claim 14 , wherein the in-use data pages are recovered in response to a request from the application, and wherein the instructions, when executed, cause the computing system to:

conduct a verification of the request based on the user identifier; and

map an address space associated with the root of the page table tree to a virtual address space associated with the application if the verification is successful.

20. A method comprising:

associating a unique identifier with an application;

creating an entry in a metadata table, wherein the metadata table is at a fixed location in a persistent system memory;

populating the entry with the unique identifier, a user identifier, and a pointer to a root of a page table tree; and

recovering in-use data pages after a system crash, wherein the in-use data pages are recovered from the persistent system memory based on the metadata table and include application heap information and application stack information.

21. The method of claim 20 , wherein recovering the in-use data pages includes:

reading the root of the page table tree from the metadata table;

traversing the page table tree to identify the in-use data pages; and

flagging the in-use data pages for future use.

22. The method of claim 21 , further including recognizing the metadata table based on one or more of a boot argument list or a kernel source code.

23. The method of claim 20 , wherein the unique identifier is associated with the application in response to a request from the application.

24. The method of claim 20 , wherein the unique identifier is associated with the application in response to an allocation of a page in the persistent system memory to the application.

25. The method of claim 20 , wherein the in-use data pages are recovered in response to a request from the application, the method further including:

conducting a verification of the request based on the user identifier; and

mapping an address space associated with the root of the page table tree to a virtual address space associated with the application if the verification is successful.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2021
From: PRASAD, ARAVINDA; SUBRAMONEY, SREENIVAS
To: INTEL CORPORATION
Reel/Frame 054799/0729 →
Continuity (1)
Related Publication 20210089411A1 · Mar 25, 2021