Numa i/o framework
AssigneeOracle America, Inc.
InventorsNicolas G. Droux, Jonathan Chew, Rajagopal Kunhappan
Life of this patent
Estimating the term…
Abstract
A method for binding input/output (I/O) objects to nodes includes an subsystem receiving a request to use an I/O device from a process, determining a first resource to service the request, generating a first I/O object corresponding to the first resource, wherein the first I/O object is unbound, and sending the first I/O object to a Non-Uniform Memory Access (NUMA) I/O Framework. The method further includes the NUMA I/O Framework selecting a first NUMA node of a plurality of NUMA nodes, to which to bind the first I/O object and binding the first I/O object to the first NUMA node. The method further includes servicing the request by processing, on the first NUMA node, the first resource corresponding to the first I/O object.
Claims20
A non-transitory computer readable medium comprising software instructions, which when executed by a processor perform a method, the method comprising:
- receiving, by an input/output (I/O) 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;
- selecting, by the NUMA I/O Framework, a first NUMA node of a plurality of NUMA nodes, to which to bind the first I/O object;
- binding, by the NUMA I/O Framework, 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.
A system, comprising:
- a plurality of Non-Uniform Memory Access (NUMA) nodes comprising:
- a first NUMA node comprising a first processor and a first memory;
- a second NUMA node comprising a second processor and a second memory;
- an input/output (I/O) device group comprising an I/O device;
- an I/O Subsystem executing on at least one of the plurality of NUMA nodes, configured to:
- receive a request to use the I/O device from a process executing on the first NUMA node;
- determine a first resource necessary to service the request;
- and
- generate a first I/O object corresponding to the first resource wherein the first I/O object is unbound;
- and
- a NUMA I/O Framework executing on at least one of the plurality of NUMA nodes, configured to:
- receive the first I/O object from the I/O Subsystem;
- select the second NUMA node;
- and
- bind the first I/O object to the second NUMA node,
- wherein the request is serviced by processing, on the second NUMA node, the first resource corresponding to the first I/O object.
A method for binding input/output (I/O) objects to nodes, the method comprising:
- receiving, by a Network Media Access Connection (MAC) Layer, a request to create a data link from a process, wherein the Network MAC Layer is associated with a physical network interface card (NIC);
- determining, by the Network MAC Layer, a thread to service the request;
- generating, by the Network MAC Layer, a first I/O object corresponding to the thread, wherein the first I/O object is unbound;
- sending, by the Network MAC Layer, the first I/O object to a Non-Uniform Memory Access (NUMA) I/O Framework;
- selecting, by the NUMA I/O Framework, a first NUMA node of a plurality of NUMA nodes, to which to bind the first I/O object;
- binding, by the NUMA I/O Framework, the first I/O object to the first NUMA node;
- and
- servicing the request by executing, on the first NUMA node, the thread corresponding to the first I/O object.
The method claim 19, wherein the affinity specifies that the thread and the interrupt both be bound to a single NUMA node.
Dependencies are inferred from the claim text.