IP Library › Granted Patent US 9,354,967
Granted Patent B1
US 9,354,967 · App. 14/953,900 · Granted May 31, 2016

I/O operation-level error-handling

Inventors: David Craddock (New Paltz, NY); John R. Flanagan (Poughkeepsie, NY); Thomas A. Gregg (Highland, NY)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F11/079G06F11/0745G06F11/0751
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 9,354,967
App. No.
14/953,900
Granted
May 31, 2016
Kind
B1
Abstract

Error-handling in a computing environment at an input/output (I/O) level is facilitated by associating a control element with an input/output (I/O) operation based on a command to perform the I/O operation between an adapter and memory. Based on detection of an error for the I/O operation, the control element is updated to indicate an error state, and completion of any uncompleted I/O request for the I/O operation is blocked, while other I/O requests for one or more other I/O operations are allowed to proceed between the adapter (or adapter function) and the memory. By way of example, the control element may be a cyclic redundancy check (CRC) control element used, for instance, by an I/O hub of the computing environment to accumulate during performance of the I/O operation an accumulated CRC value for the I/O operation to facilitate error checking of the operation.

Claims (32)

1. A system for facilitating error-handling in a computing environment, the system comprising:

a memory;

a processing device communicatively coupled to the memory, wherein the system performs a method comprising:

based on a command to perform an input/output (I/O) operation between an adapter and memory of a computing environment, associating, by an I/O hub of the computing environment, a control element with the I/O operation;

based on detection of an error for the I/O operation, updating, by the I/O hub, the control element to indicate an error state; and

based on detection of the error for the I/O operation, blocking completion of any uncompleted I/O requests for the I/O operation, while allowing other I/O requests for one or more other I/O operations between the adapter and the memory to continue.

2. The system of claim 1 , wherein the command is a command to perform the I/O operation between an adapter function of the adapter and the memory, and the blocking blocks completion of any uncompleted I/O requests for the I/O operation, while allowing other I/O requests for one or more other I/O operations between the adapter function and the memory to continue.

3. The system of claim 1 , wherein the I/O hub of the computing environment is coupled between the adapter and the memory.

4. The system of claim 1 , wherein the control element comprises a cyclic redundancy check (CRC) control element (CCE) for the I/O operation, and wherein the method further comprises, prior to detection of the error for the I/O operation, using the CRC control element in accumulating with performance of the I/O operation an accumulated CRC value for the I/O operation to facilitate error checking of the I/O operation.

5. The system of claim 4 , wherein the accumulating comprises, prior to detection of the error for the I/O operation, performing CRC calculations for the I/O operation with performance of the I/O operation to accumulate the accumulated CRC value for the I/O operation.

6. The system of claim 4 , wherein the data of the I/O operation is transferred in data fragments, and prior to detection of the error for the I/O operation, the CRC control element is updated for each transferred data fragment during the accumulating of the CRC value for the I/O operation.

7. The system of claim 1 , wherein the updating further comprises updating the control element to indicate an error type of the error for the I/O operation, the error type comprising at least one of an invalid address, a key violation, or a memory error associated with the I/O operation.

8. The system of claim 1 , wherein the updating further comprises updating the control element to indicate an error type of the error for the I/O operation, the error type comprising at least one of a direct memory access (DMA) error, a message signal interrupt (MSI) error, a peripheral component interconnect (PCI) error, an invalid address error, a key violation error, or a system memory error associated with the I/O operation.

9. The system of claim 1 , wherein the computing environment reads the error state from the control element, and based thereon, notifies an application of the computing environment associated with the I/O operation of the error.

10. A method comprising:

based on a command to perform an input/output (I/O) operation between an adapter and system memory of a computing environment, associating, by an I/O hub of the computing environment, a control element with the I/O operation;

based on detection of an error for the I/O operation, updating, by the I/O hub, the control element to indicate an error state; and

based on detection of the error for the I/O operation, blocking completion of any uncompleted I/O requests for the I/O operation, while allowing other I/O requests for one or more other I/O operations between the adapter and the memory to continue.

11. The method of claim 10 , wherein the command is a command to perform the I/O operation between an adapter function of the adapter and the memory, and the blocking blocks completion of any uncompleted I/O requests for the I/O operation, while allowing other I/O requests for one or more other I/O operations between the adapter function and the memory to continue.

12. The method of claim 10 , wherein the I/O hub of the computing environment is coupled between the adapter and the memory.

13. The method of claim 10 , wherein the control element comprises a cyclic redundancy check (CRC) control element (CCE) for the I/O operation, and wherein the method further comprises, prior to detection of the error for the I/O operation, using the CRC control element in accumulating with performance of the I/O operation an accumulated CRC value for the I/O operation to facilitate error checking of the I/O operation.

14. The method of claim 13 , wherein the accumulating comprises, prior to detection of the error for the I/O operation, performing CRC calculations for the I/O operation with performance of the I/O operation to accumulate the accumulated CRC value for the I/O operation.

15. The method of claim 13 , wherein data of the I/O operation is transferred in data fragments, and prior to detection of the error for the I/O operation, the CRC control element is updated for each transferred data fragment during the accumulating of the CRC value for the I/O operation.

16. The method of claim 10 , wherein the updating further comprises updating the control element to indicate an error type of the error for the I/O operation, the error type comprising at least one of an invalid address, a key violation, or a system memory error associated with the I/O operation.

17. The method of claim 10 , wherein the updating further comprises updating the control element to indicate an error type of the error for the I/O operation, the error type comprising at least one of a direct memory access (DMA) error, a message signal interrupt (MSI) error, a peripheral component interconnect (PCI) error, an invalid address error, a key violation error, or a memory error associated with the I/O operation.

18. The method of claim 10 , wherein the computing environment reads the error state and error type from the control element, and based thereon, notifies an application of the computing environment associated with the I/O operation of the error.

19. A computer program product for facilitating error-handling in a computing environment, the computer program product comprising:

a non-transitory computer readable storage medium having program instructions embodied therewith, the program instructions being executable by a processing device to cause the processing device to perform a method comprising:

based on a command to perform an input/output (I/O) operation between an adapter and memory of a computing environment, associating, by an I/O hub of the computing environment, a control element with the I/O operation;

based on detection of an error for the I/O operation, updating, by the I/O hub, the control element to indicate an error state; and

based on detection of the error for the I/O operation, blocking completion of any uncompleted I/O requests for the I/O operation, while allowing other I/O requests for one or more other I/O operations between the adapter and the memory to continue.

20. The computer program product of claim 19 , wherein the control element comprises a cyclic redundancy check (CRC) control element (CCE) for the I/O operation, and wherein the method further comprises, prior to detection of the error for the I/O operation, using the CRC control element in accumulating with performance of the I/O operation an accumulated CRC value for the I/O operation to facilitate error checking of the I/O operation.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2026
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: KIDON IP CORPORATION
Reel/Frame 074125/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2026
From: KIDON IP CORPORATION
To: CAPROCK INTEGRATED TECHNOLOGIES LLC
Reel/Frame 073866/0504 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2026
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: KIDON IP CORPORATION
Reel/Frame 074975/0477 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2015
From: CRADDOCK, DAVID; FLANAGAN, JOHN R.; GREGG, THOMAS A.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 037166/0978 →