IP Library › Granted Patent US 8,843,673
Granted Patent B2
US 8,843,673 · App. 13/771,608 · Granted Sep 23, 2014

Offloading input/output (I/O) completion operations

Inventors: Bruce G. Mealey (Austin, TX); Greg R. Mewhinney (Austin, TX); Mysore S. Srinivas (Austin, TX); Suresh E. Warrier (Austin, TX)
Assignee: International Business Machines Corporation
G06F13/26G06F11/203G06F9/52
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 8,843,673
App. No.
13/771,608
Granted
Sep 23, 2014
Kind
B2
Abstract

A mechanism is provided for offloading an input/output (I/O) completion operation. Responsive to a second processor identifying that a flag has been set by a first processor requesting assistance in completing an I/O operation, the second processor copies an I/O response from a first I/O response data structure associated with the first processor to a second I/O response data structure associated with the second processor. The second processor deletes the I/O response from the first I/O response data structure, clears the flag, and processes the I/O operation by addressing the I/O response in the second I/O response data structure. Responsive to completing the I/O operation, the second processor deletes the I/O response from the second I/O response data structure.

Claims (25)

1. A method, in a multi-processor data processing system, for offloading an input/output (I/O) completion operation, the method comprising:

responsive to a second processor identifying that a flag has been set by a first processor requesting assistance in completing an I/O operation, copying, by the second processor, an I/O response from a first I/O response data structure associated with the first processor to a second I/O response data structure associated with the second processor;

deleting, by the second processor, the I/O response from the first I/O response data structure;

clearing, by the second processor, the flag;

processing, by the second processor, the I/O operation by addressing the I/O response in the second I/O response data structure; and

responsive to completing the I/O operation, deleting, by the second processor, the I/O response from the second I/O response data structure.

2. The method of claim 1 , wherein the flag is in a flag data structure in a shared memory area.

3. The method of claim 1 , wherein the first I/O response data structure is in a private memory area owned by the first processor.

4. The method of claim 1 , wherein the second I/O response data structure is in a private memory area owned by the second processor.

5. The method of claim 1 , wherein the second processor gains access to the first I/O response data structure by the method comprising:

locking, by the second processor, the first I/O response data structure prior to copying the I/O response from the first I/O response data structure associated with the first processor to the second I/O response data structure associated with the second processor; and

responsive to the second processor deleting the I/O response from the first I/O response data structure, unlocking, by the second processor, the first I/O response data structure.

6. The method of claim 5 , further comprising:

prior to the second processor locking the first I/O response data structure, determining, by the second processor, whether another processor has already obtained a lock on the first I/O response data structure;

responsive to a determination, by the second processor, that no other processor has obtained the lock on the first I/O response data structure, proceeding, by the second processor, with obtaining the lock on the first I/O response data structure; and

responsive to a determination, by the second processor, that the other processor has obtained the lock on the first I/O response data structure, discontinuing, by the second processor, the process of assisting in completion of the I/O operation.

7. The method of claim 1 , further comprising:

responsive to the first processor completing higher priority work and identifying that the flag was set by a first processor requesting assistance in completing the I/O operation, clearing, by the first processor, the flag;

processing, by the first processor, the I/O operation by addressing the I/O response in the second I/O response data structure; and

responsive to completing the I/O operation, deleting, by the first processor, the I/O response from the first I/O response data structure.

8. The method of claim 1 , wherein the flag indicating the requested assistance in completing the I/O operation is set by the method comprising:

responsive to the I/O response being migratable, accessing, by the first processor, a timestamp associated with the I/O response entry in the first I/O response data structure;

subtracting, by the first processor, the time value associated with the timestamp from a current time, thereby forming a wait time;

determining, by the first processor, whether the wait time exceeds a wait-time threshold value; and

responsive to the wait time exceeding the wait-time threshold value, setting, by the first processor, the flag in a flag data structure in a shared memory area.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2013
From: MEALEY, BRUCE G.; MEWHINNEY, GREG R.; SRINIVAS, MYSORE S.; WARRIER, SURESH E.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 029844/0848 →
Continuity (2)
Continuation 13680752 · Nov 19, 2012
Related Publication 20140143465A1 · May 22, 2014