Legal claims defining the scope of protection, as filed with the USPTO.
1. A method of transferring an input/output (I/O) request in a cache-coherent non-uniform memory access (ccNUMA) computer system, wherein the ccNUMA computer system includes multiple cells that are connected via a system interconnect, and wherein each cell includes multiple processors, comprising: receiving an I/O request from a source processor, which is one of the multiple processors associated with one of the multiple cells in the ccNUMA computer system; associating a processor, which is different from the source processor, corresponding to a multi-interrupt capable I/O interface that is servicing the I/O request, located in the one of the multiple cells as a lead processor; executing an I/O initiation path associated with the received I/O request on the lead processor using soft affinity; and executing a completion path associated with the received I/O request on the lead processor using soft affinity.
2. The method of claim 1 , further comprising: determining whether one of the multiple processors that received the I/O request is the lead processor in the one of the multiple cells; and if so, then executing the I/O initiation path and the completion in the one of the multiple processors.
3. The method of claim 2 , wherein executing the I/O initiation path comprises: preparing a request descriptor at the one of the multiple processors, wherein the request descriptor includes an identification of the one of the multiple processors; and sending a device-level I/O request to an I/O device from the one of the multiple processors via the multi-interrupt capable I/O interface.
4. The method of claim 3 , wherein executing the I/O completion path comprises: receiving a response to the device-level I/O request from the I/O device via the multi-interrupt capable I/O interface to one of the multiple processors in another one of the multiple cells; and completing processing of the response at the one of the multiple processors located in the one of the multiple cells.
5. The method of claim 2 , further comprising: if not, transferring control to process remaining I/O stack layers in the I/O initiation path and all the I/O stack layers in the completion path from the one of the multiple processors to the lead processor upon determining the lead processor; and executing the remaining I/O stack layers in the I/O initiation path and all the I/O stack layers in the completion path on the lead processor located in the one of the multiple cells.
6. The method of claim 5 , wherein transferring the control to process the remaining I/O stack layers from the one of the multiple processors to the lead processor is through a soft interrupt.
7. The method of claim 5 , further comprising: preparing a request descriptor at the one of the multiple processors in the one of the multiple cells, wherein the request descriptor includes an identification of the one of the multiple processors; and sending a device-level I/O request to an I/O device from the one of the multiple processors via the multi-interrupt capable I/O interface.
8. The method of claim 7 , wherein executing the I/O completion path comprises: receiving a response to the device-level I/O request from the I/O device via the multi-interrupt capable I/O interface at the lead processor; and completing processing of the response at the lead processor in the one of the multiple cells.
9. The method of claim 8 , wherein completing the processing of the response comprises: accessing one or more data structures stored in a cache associated with the lead processor in the one of the multiple cells.
10. The method of claim 9 , wherein a data structure of the one or more data structures is dynamically allocated prior to preparation of the request descriptor.
11. The method of claim 10 , wherein the data structure of the one or more data structures includes information associated with one or more I/O stack layers.
12. The method of claim 11 , further comprising: passing the request descriptor to a callback function at the lead processor in the one of the multiple cells in response to the posting of the interrupt.
13. The method of claim 9 , wherein preparing the request descriptor at the one of the multiple processors in the one of the multiple cells comprises: placing the I/O request on a designated device queue associated with a multi-interrupt capable I/O device such that the multiple interrupt capable I/O device would interrupt one of the multiple processors in one of the multiple cells on completion of the I/O request.
14. An article, comprising: a storage medium having instructions, that when executed by a computing platform, result in execution of a method of transferring an input/output (I/O) request in a cache-coherent non-uniform memory access (ccNUMA) computer system, wherein the ccNUMA computer system includes multiple cells that are connected via a system interconnect and wherein each cell includes multiple processors, comprising: receiving an I/O request from a source processor, which is one of the multiple processors associated with one of the multiple cells in the ccNUMA computer system; associating a lead processor, which is different from the source processor and is located within the one of the multiple cells, corresponding to a multi-interrupt capable I/O interface that is servicing the I/O request in one of the multiple cells; executing an I/O initiation path on the lead processor using soft affinity; and executing a completion path on the lead processor using soft affinity.
15. The article of claim 14 , further comprising: determining whether one of the multiple processors that received the I/O request is the lead processor in the one of the multiple cells; and if so, then executing the I/O initiation path and the completion path in the one of the multiple processors.
16. The article of claim 14 , further comprising: preparing a request descriptor at the one of the multiple processors, wherein the request descriptor includes an identification of the one of the multiple processors; and sending a device-level I/O request to an I/O device from the one of the multiple processors via the multi-interrupt capable I/O interface.
17. The article of claim 16 , wherein executing the I/O completion path comprises: receiving a response to the device-level I/O request from the I/O device via the multi-interrupt capable I/O interface to one of the multiple processors in another one of the multiple cells; and completing processing of the response at the one of the multiple processors located in the one of the multiple cells.
18. The article of claim 15 , further comprising: if not, transferring control to process remaining I/O stack layers in the I/O initiation path and all the I/O stack layers in the completion path from the one of the multiple processors to the lead processor upon determining the lead processor; and executing the remaining I/O stack layers in the I/O initiation path and all the I/O stack layers in the completion path on the lead processor located in the one of the multiple cells.
19. A system comprising: a cache-coherent non-uniform memory access (ccNUMA) computer system including multiple cells connected via a system interconnect, wherein each cell includes multiple processors; one or more multi-interrupt capable input/output (I/O) interfaces coupled to the ccNUMA computer system via the system interconnect; one or more I/O devices connected to associated one or more multi-interrupt capable I/O interfaces; a system memory; and an I/O management software residing in the system memory, wherein the I/O management software is configured to: receive an I/O request from a source processor, which is one of the multiple processors associated with one of the multiple cells in the ccNUMA computer system; associate a processor, which is different from the source processor, corresponding to a multi-interrupt capable I/O interface that is servicing the I/O request, located in the one of the multiple cells as a lead processor; execute an I/O initiation path associated with the received I/O request on the lead processor using soft affinity; and execute a completion path associated with the received I/O request on the lead processor using soft affinity.
20. The system of claim 19 , wherein the I/O management software is further configured to determine whether one of the multiple processors that received the I/O request is the lead processor located in the one of the multiple cells and execute the I/O initiation path and the completion path in the one of the multiple processors.
21. The system of claim 20 , wherein the I/O management software is further configured to prepare a request descriptor at the one of the multiple processors, wherein the request descriptor includes an identification of the one of the multiple processors if the one of the multiple processors that received the I/O request is the lead processor in the one of the multiple cells, and send a device-level I/O request to an I/O device from the one of the multiple processors via the multi-interrupt capable I/O interface.
22. The system of claim 21 , wherein the I/O management software is further configured to receive a response to the device-level I/O request from the one or more I/O devices via one of the one or more multi-interrupt capable I/O interfaces to one of the multiple processors in another one of the multiple cells, and complete processing of the response at the one of the multiple processors located in the one of the multiple cells.
23. The method of claim 1 , wherein the lead processor receives and handles interrupts from the multi-interrupt capable I/O interface.
24. The article of claim 14 , wherein the lead processor receives and handles interrupts from the multi-interrupt capable I/O interface.
25. The system of claim 19 , wherein the lead processor receives and handles interrupts from the multi-interrupt capable I/O interface.
Unknown
August 28, 2012
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.