IP Library › Granted Patent US 10,552,164
Granted Patent B2
US 10,552,164 · App. 15/489,869 · Granted Feb 4, 2020

Sharing snapshots between restoration and recovery

Inventors: Michael K. Gschwind (Chappaqua, NY); Valentina Salapura (Chappaqua, NY); Chung-Lung K. Shum (Wappingers Falls, NY); Timothy J. Slegel (Staatsburg, NY)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F9/3863G06F9/30058G06F9/384
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 10,552,164
App. No.
15/489,869
Granted
Feb 4, 2020
Kind
B2
Abstract

Sharing snapshots between restoration and recovery. A snapshot to be used for recovery and restoration is obtained. The snapshot includes restoration state for a plurality of architected registers. The plurality of architected registers includes one or more architected registers associated with an instruction to alter an execution path and one or more architected registers associated with a save request. At least one architected register of the plurality of architected registers is restored, based on a request. The request is a recovery request to recover at least one architected register associated with the instruction to alter the execution path or a restoration request to restore at least one architected register associated with the save request.

Claims (38)

1. A computer program product for facilitating processing within a computing environment, the computer program product comprising:

a computer readable storage medium readable by a processing circuit and storing instructions for performing a method comprising:

obtaining a chosen snapshot to be used for multiple types of processing, the multiple types of processing including recovery and restoration, the recovery being recovery from an instruction to alter an execution path, and the restoration being based on a save request, the chosen snapshot including restoration state for a plurality of architected registers, the plurality of architected registers including one or more architected registers associated with an instruction to alter an execution path and usable in recovery, and one or more architected registers associated with the save request and usable in restoration;

restoring at least one architected register of the plurality of architected registers, based on a selected request, the selected request being a recovery request to recover at least one architected register associated with the instruction to alter the execution path or a restoration request to restore at least one architected register associated with the save request;

obtaining another request to take another snapshot of a set of architected registers of the plurality of architected registers;

determining whether at least one selected architected register of the set of architected registers has been modified since the chosen snapshot was taken; and

using the chosen snapshot to satisfy the other request to take another snapshot, based on determining that the at least one selected architected register has not been modified.

2. The computer program product of claim 1 , wherein the instruction to alter the execution path comprises a branch conditional instruction.

3. The computer program product of claim 1 , wherein the instruction to alter the execution path comprises a jump instruction.

4. The computer program product of claim 1 , wherein the save request comprises a bulk store request.

5. The computer program product of claim 1 , wherein the method further comprises creating the other snapshot based on determining that the at least one selected architected register has been modified.

6. The computer program product of claim 5 , wherein the other snapshot includes the at least one selected architected register that has been modified and fails to include architected registers of the set of architected registers that have not been modified.

7. The computer program product of claim 5 , wherein the other snapshot includes the set of architected registers.

8. The computer program product of claim 1 , wherein the restoration request is a bulk restore request.

9. A computer system for facilitating processing within a computing environment, the computer system comprising:

a memory; and

a processor in communication with the memory, wherein the computer system is configured to perform a method, said method comprising:

obtaining a chosen snapshot to be used for multiple types of processing, the multiple types of processing including recovery and restoration, the recovery being recovery from an instruction to alter an execution path, and the restoration being based on a save request, the chosen snapshot including restoration state for a plurality of architected registers, the plurality of architected registers including one or more architected registers associated with an instruction to alter an execution path and usable in recovery, and one or more architected registers associated with the save request and usable in restoration;

restoring at least one architected register of the plurality of architected registers, based on a selected request, the selected request being a recovery request to recover at least one architected register associated with the instruction to alter the execution path or a restoration request to restore at least one architected register associated with the save request;

obtaining another request to take another snapshot of a set of architected registers of the plurality of architected registers;

determining whether at least one selected architected register of the set of architected registers has been modified since the chosen snapshot was taken; and

using the chosen snapshot to satisfy the other request to take another snapshot, based on determining that the at least one selected architected register has not been modified.

10. The computer system of claim 9 , wherein the instruction to alter the execution path comprises a branch conditional instruction.

11. The computer system of claim 9 , wherein the instruction to alter the execution path comprises a jump instruction.

12. The computer system of claim 9 , wherein the save request comprises a bulk store request.

13. The computer system of claim 9 , wherein the method further comprises creating the other snapshot based on determining that the at least one selected architected register has been modified.

14. The computer system of claim 13 , wherein the other snapshot includes the at least one selected architected register that has been modified and fails to include architected registers of the set of architected registers that have not been modified.

15. A computer-implemented method of facilitating processing within a computing environment, the computer-implemented method comprising:

obtaining, by a processor, a chosen snapshot to be used for multiple types of processing, the multiple types of processing including recovery and restoration, the recovery being recovery from an instruction to alter an execution path, and the restoration being based on a save request, the chosen snapshot including restoration state for a plurality of architected registers, the plurality of architected registers including one or more architected registers associated with an instruction to alter an execution path and usable in recovery, and one or more architected registers associated with the save request and usable in restoration;

restoring at least one architected register of the plurality of architected registers, based on a selected request, the selected request being a recovery request to recover at least one architected register associated with the instruction to alter the execution path or a restoration request to restore at least one architected register associated with the save request;

obtaining another request to take another snapshot of a set of architected registers of the plurality of architected registers;

determining whether at least one selected architected register of the set of architected registers has been modified since the chosen snapshot was taken; and

using the chosen snapshot to satisfy the other request to take another snapshot, based on determining that the at least one selected architected register has not been modified.

16. The computer-implemented method of claim 15 , wherein the instruction to alter the execution path comprises a branch conditional instruction.

17. The computer-implemented method of claim 15 , wherein the instruction to alter the execution path comprises a jump instruction.

18. The computer-implemented method of claim 15 , wherein the save request comprises a bulk store request.

19. The computer-implemented method of claim 15 , wherein the method further comprises creating the other snapshot based on determining that the at least one selected architected register has been modified.

20. The computer-implemented method of claim 19 , wherein the other snapshot includes the at least one selected architected register that has been modified and fails to include architected registers of the set of architected registers that have not been modified.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2017
From: GSCHWIND, MICHAEL K.; SALAPURA, VALENTINA; SHUM, CHUNG-LUNG K.; SLEGEL, TIMOTHY J.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 042043/0921 →
Continuity (1)
Related Publication 20180300150A1 · Oct 18, 2018
Cited By (1)
US 12,613,704