Patent ID: 8725912

Claim:
A non-transitory computer readable medium comprising software instructions, which when executed by a processor perform a method, the method comprising: receiving, by an I/O (input output) Subsystem, a request to use an I/O device from a process; determining, by the I/O Subsystem, a first resource to service the request; generating, by the I/O Subsystem, a first I/O object corresponding to the first resource, wherein the first I/O object is unbound; sending, by the I/O Subsystem, the first I/O object to a Non-Uniform Memory Access (NUMA) I/O Framework; obtaining, by the NUMA I/O Framework, a first I/O object effective load from the first I/O object; sending, to a Load Balancing Module, a first NUMA node identifier corresponding to a first NUMA node of a plurality of NUMA nodes; providing, by the Load Balancing Module, a first I/O load capacity to the NUMA I/O Framework in response to receiving the first NUMA node identifier from the NUMA I/O Framework; receiving, by the NUMA I/O Framework, the first I/O load capacity from the Load Balancing Module; comparing, by the NUMA I/O Framework, the first I/O load capacity and the first I/O object effective load; selecting the first NUMA node based on a determination by the NUMA I/O Framework that the first I/O load capacity is greater than the first I/O object effective load; binding, by the NUMA I/O Framework based on the selecting, the first I/O object to the first NUMA node; and servicing the request by processing, on the first NUMA node, the first resource corresponding to the first I/O object.