A computer-implemented method executed by one or more processors, the method comprising: during execution of a software application by a processor, receiving (210, 305), by a copy processor, which is separate from the processor, a request for an asynchronous data copy operation to copy data within a memory accessible by the copy processor, wherein the request is received from a copy manager accessible by the software application in a user space of an operating system managing execution of the software application, wherein the request includes a notification indication indicating how a notification that the asynchronous data copy operation has completed is to be handled, wherein the handling comprises setting a completion flag or passing an interrupt to the copy manager, and wherein the notification indication indicates that the copy processor should pass an interrupt to the copy manager upon completion of the asynchronous data copy operation; in response to the request, initiating (225, 310), by the copy processor, the asynchronous data copy operation; continuing execution of the software application by the processor; determining (235, 320), by the copy processor, that the asynchronous data copy operation has completed; and in response to determining that the asynchronous data copy operation has completed, selectively notifying (245, 250, 325), by the copy processor, the software application that the asynchronous data copy operation has completed, wherein, based on the notification indication in the request, the selectively notifying comprises the passing of the interrupt to the copy manager, which communicates with the software application. during execution of a software application by a processor, receiving (210, 305), by a copy processor, which is separate from the processor, a request for an asynchronous data copy operation to copy data within a memory accessible by the copy processor, wherein the request is received from a copy manager accessible by the software application in a user space of an operating system managing execution of the software application, wherein the request includes a notification indication indicating how a notification that the asynchronous data copy operation has completed is to be handled, wherein the handling comprises setting a completion flag or passing an interrupt to the copy manager, and wherein the notification indication indicates that the copy processor should pass an interrupt to the copy manager upon completion of the asynchronous data copy operation; in response to the request, initiating (225, 310), by the copy processor, the asynchronous data copy operation; continuing execution of the software application by the processor; determining (235, 320), by the copy processor, that the asynchronous data copy operation has completed; and in response to determining that the asynchronous data copy operation has completed, selectively notifying (245, 250, 325), by the copy processor, the software application that the asynchronous data copy operation has completed, wherein, based on the notification indication in the request, the selectively notifying comprises the passing of the interrupt to the copy manager, which communicates with the software application.