Performing select input/output requests while in protected memory states
A computer-implemented method, according to one approach, includes: receiving an indication that memory has entered a protected state. An I/O request that is intended for a target location in the memory is also received. Moreover, the relative significance of the I/O request is evaluated, and in response to concluding the I/O request is sufficiently significant, the I/O request is performed at the target location. However, in response to concluding the I/O request is insufficiently significant, the I/O request is denied.
1 . A computer-implemented method, comprising:
receiving an indication that a memory has entered a protected state in response to an error being experienced by a system having the memory;
receiving an input/output (I/O) request intended for a target location in the memory;
causing a trained machine learning model to determine an amount of available space that will be created in the memory as a result of performing the I/O request;
determining whether the target location is permitted to perform the I/O request while the memory is in the protected state by comparing the target location to memory blocks in a buffer, wherein the respective memory blocks include a number of invalid pages therein that is above a threshold; and
in response to determining the target location matches one of the memory blocks in the buffer and concluding the amount of available space that will be created in the memory as a result of performing the I/O request is in a predetermined range;
using a reserved portion of the memory to perform garbage collection on the target location, and
in response to the garbage collection being performed, causing the I/O request to be performed at the target location.
2 . The computer-implemented method of claim 1 , further comprising:
in response to determining the target location does not match any of the memory blocks in the buffer, denying the I/O request,
wherein the reserved portion of the memory is different from the target location.
3 . The computer-implemented method of claim 2 , wherein the machine learning model is trained to generate a classification value that represents a significance of the I/O request.
4 . The computer-implemented method of claim 3 , further comprising:
determining whether the classification value for the I/O request is in a predetermined range; and
in response to determining the classification value is outside the predetermined range, concluding the I/O request is sufficiently significant.
5 . The computer-implemented method of claim 4 , further comprising:
in response to determining the classification value is not outside the predetermined range, concluding the I/O request is insufficiently significant.
6 . The computer-implemented method of claim 1 , wherein the memory is non-volatile random-access memory (NVRAM).
7 . The computer-implemented method of claim 6 , wherein the memory is NAND Flash.
8 . A computer program product, comprising a computer readable storage medium having program instructions embodied therewith, the program instructions readable by a processor, executable by the processor, or readable and executable by the processor, to cause the processor to:
receive an indication that a memory has entered a protected state in response to an error being experienced by a system having the memory;
receive an input/output (I/O) request intended for a target location in the memory;
cause a trained machine learning model to determine an amount of available space that will be created in the memory as a result of performing the I/O request;
determine whether the target location is permitted to perform the I/O request while the memory is in the protected state by comparing the target location to memory blocks in a buffer, wherein the respective memory blocks include a number of invalid pages therein that is above a threshold; and
in response to determining the target location matches one of the memory blocks in the buffer and concluding the amount of available space that will be created in the memory as a result of performing the I/O request is in a predetermined range;
use a reserved portion of the memory to perform garbage collection on the target location, and
in response to the garbage collection being performed, cause the I/O request to be performed at the target location.
9 . The computer program product of claim 8 , wherein the program instructions are readable and/or executable by the processor to cause the processor to:
in response to determining the target location does not match any of the memory blocks in the buffer, denying the I/O request,
wherein the reserved portion of the memory is different from the target location.
10 . PREVIOUSLY PRESENTED) The computer program product of claim 9 , wherein the machine learning model is trained to generate a classification value that represents a significance of the I/O request.
11 . The computer program product of claim 10 , wherein the program instructions are readable and/or executable by the processor to cause the processor to:
determine whether the classification value for the I/O request is in a predetermined range; and
in response to determining the classification value is outside the predetermined range, conclude the I/O request is sufficiently significant.
12 . The computer program product of claim 11 , wherein the program instructions are readable and/or executable by the processor to cause the processor to:
in response to determining the classification value is not outside the predetermined range, conclude the I/O request is insufficiently significant.
13 . The computer program product of claim 8 , wherein the memory is non-volatile random-access memory (NVRAM).
14 . The computer program product of claim 13 , wherein the memory is NAND Flash.
15 . A system, comprising:
a memory;
a processor; and
logic integrated with the processor, executable by the processor, or integrated with and executable by the processor, the logic being configured to:
receive an indication that the memory has entered a protected state in response to an error being experienced by a system having the memory;
receive an input/output (I/O) request intended for a target location in the memory;
cause a trained machine learning model to determine an amount of available space that will be created in the memory as a result of performing the I/O request;
determine whether the target location is permitted to perform the I/O request while the memory is in the protected state by comparing the target location to memory blocks in a buffer, wherein the respective memory blocks include a number of invalid pages therein that is above a threshold; and
in response to determining the target location matches one of the memory blocks in the buffer and concluding the amount of available space that will be created in the memory as a result of performing the I/O request is in a predetermined range;
use a reserved portion of the memory to perform garbage collection on the target location, and
in response to the garbage collection being performed, cause the I/O request to be performed at the target location.
16 . The system of claim 15 , wherein the logic is further configured to:
in response to determining the target location does not match any of the memory blocks in the buffer, denying the I/O request,
wherein the reserved portion of the memory is different from the target location.
17 . The system of claim 16 , wherein the machine learning model is trained to generate a classification value that represents a significance of the I/O request.
18 . The system of claim 17 , wherein the logic is further configured to:
determine whether the classification value for the I/O request is in a predetermined range; and
in response to determining the classification value is outside the predetermined range, conclude the I/O request is sufficiently significant; and
in response to determining the classification value is not outside the predetermined range, conclude the I/O request is insufficiently significant.
19 . A computer-implemented method, comprising:
in response to an error being experienced by a system, receiving an indication that memory in the system has entered a protected state;
sending, to a host location, a request for locations in the memory that are permitted to perform I/O requests while the memory is in the protected state;
receiving, from the host location, registers of target locations in the memory that are permitted to perform I/O requests while the memory is in the protected state;
determining whether the target locations are permitted to perform a given I/O request while the memory is in the protected state by comparing the respective target locations to memory blocks in a buffer, wherein the respective memory blocks include a number of invalid pages therein that is above a threshold; and
in response to determining: one or more of the target locations match corresponding one or more of the memory blocks in the buffer, and concluding an amount of available space that will be created in the memory as a result of performing the given I/O request is in a predetermined range:
using a reserved portion of the memory to perform garbage collections on the one or more target locations.
20 . The computer-implemented method of claim 19 , wherein the host location includes a host logical partition, wherein the host logical partition is correlated with the target locations in the memory such that the host logical partition is permitted to perform I/O requests at the target locations while the memory is in the protected state.
21 . The computer-implemented method of claim 19 , further comprising:
receiving an I/O request, wherein the I/O request is an addressing and control command.
22 . A computer program product, comprising a computer readable storage medium having program instructions embodied therewith, the program instructions readable by a processor, executable by the processor, or readable and executable by the processor, to cause the processor to:
in response to an error being experienced by a system, receive an indication that memory in the system has entered a protected state;
send, to a host location, a request for locations in the memory that are permitted to perform I/O requests while the memory is in the protected state;
receive, from the host location, registers of target locations in the memory that are permitted to perform I/O requests while the memory is in the protected state;
determine whether the target locations are permitted to perform a given I/O request while the memory is in the protected state by comparing the respective target locations to memory blocks in a buffer, wherein the respective memory blocks include a number of invalid pages therein that is above a threshold; and
in response to determining: one or more of the target locations match corresponding one or more of the memory blocks in the buffer, and concluding an amount of available space that will be created in the memory as a result of performing the given I/O request is in a predetermined range:
use a reserved portion of the memory to perform garbage collections on the one or more target locations.