IP Library Granted Patent US 8,032,682
Granted Patent B2
US 8,032,682 · App. 12/501,817 · Granted Oct 4, 2011

System and method for device resource allocation and re-balance

Assignee: Oracle America, Inc.
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,032,682
App. No.
12/501,817
Granted
Oct 4, 2011
Kind
B2
Abstract

In at least one embodiment, an apparatus for providing resources from a plurality of on-board device nodes to a hot-plugged device node in a computer is provided. The apparatus comprises a resource manager configured to receive a resource request over a bus system indicative of a set of desired resources from the hot-plugged device node. The resource manager is further configured to probe a parent device and at least one upper level device node positioned above the parent device node for the set of desired resources. The resource manager is further configured to provide the set of desired resources from the parent device node and one or more nodes of the at least one upper level device node over the bus system for transmission to the hot-plugged device node to enable the hot-plugged device node to operate in the intended manner.

Claims (37)

1. An apparatus for providing resources from a plurality of on-board device nodes to a hot-plugged device node in a computer, the apparatus comprising:

a resource manager being operably coupled to a device tree including the plurality of on-board device nodes and the hot-plugged device node, the resource manager being configured to:

receive information indicative of a set of desired resources for the hot-plugged device node;

probe a parent device node positioned immediately above the hot-plugged device node to determine if the parent device node is capable of providing the set of desired resources to the hot-plugged device node;

probe the parent device node and at least one upper level device node positioned above the parent device node for the set of desired resources if the parent device node is incapable of providing the set of desired resources to the hot-plugged device node;

generate a linked list to indicate the movement of the set of desired resources from the parent node device and the at least one upper level device node to the hot-plugged device node;

provide the set of desired resources from the parent device node and the at least one upper level device node over a bus system for transmission to the hot-plugged device node to enable the hot-plugged device node to operate in the intended manner; and

communicate with a caller to suspend the operation of the parent device node and the at least one upper level device node prior to the hot-plugged device node receiving the set of desired resources.

2. The apparatus of claim 1 wherein each of the on-board device nodes and the hot-plugged device node comprise a peripheral component interconnect (PCI) based device.

3. The apparatus of claim 1 wherein the bus system is a peripheral component interconnect (PCI) based bus system.

4. The apparatus of claim 1 wherein the hot-plugged device node is defined as a device node that is detected to be in the computer after a basic input/output system (BIOS) within the computer allocates resources for the plurality of on-board device nodes.

5. The apparatus of claim 1 wherein the caller accesses the linked list to reprogram the parent device node and the at least one upper level device node to reflect that the set of desired resources will be made available to the hot-plugged device node.

6. The apparatus of claim 5 wherein the resource manager is further configured to update properties for the parent device node, the at least one upper level node, and the hot-plugged device node to reflect that the set of desired resources will be made available to the hot-plugged device node.

7. The apparatus of claim 1 wherein the caller is a PCI configurator.

8. The apparatus of claim 1 wherein the set of desired resources provided by the parent device node and the at least one upper level device node to the hot-plugged device node comprise one or more of input/output (I/O) addresses, memory addresses, and bus numbers.

9. A method for providing resources from a plurality of on-board device nodes to a hot-plugged device node in a computer having a device tree including the plurality of on-board devices and the hot-plugged device node, the method comprising:

providing a set of desired resources for the hot-plugged device node;

probing a parent device node positioned immediately above the hot-plugged device node to determine if the parent device node is capable of providing the set of desired resources to the hot-plugged device node;

probing the parent device node and at least one upper level device node positioned above the parent device node for the set of desired resources if the parent device node is incapable of providing the set of desired resources to the hot-plugged device node;

transmitting the set of desired resources from the parent device node and the at least one upper level device node over the bus system to the hot-plugged device node to enable the hot-plugged device node to operate in the intended manner;

generating a linked list to indicate the movement of the set of desired resources from the parent node device and the at least one upper level device node to the hot-plugged device node; and

communicating with a caller to suspend the operation of the parent device node and the at least one upper level device node prior to transmitting the set of the desired resources from the parent device node and the at least one upper level device node.

10. The method of claim 9 wherein the hot-plugged device node is defined as a device node that is detected to be in the computer after a basic input/output system (BIOS) within the computer allocates resources for the plurality of on-board device nodes.

11. The method of claim 9 wherein generating the linked list is performed prior to transmitting the set of the desired resources from the parent device node and the at least one upper level device node.

12. The method of claim 9 further comprising accessing, with the caller, the linked list to reprogram the parent device node and the at least one upper level device node to reflect that the set of desired resources will be made available to the hot-plugged device node.

13. The method of claim 9 further comprising reactivating the operation of the parent device node and the at least one upper level device node after reprogramming the parent device node and the at least one upper level device node.

14. The method of claim 13 further comprising updating properties for the parent device node, the at least one upper level node, and the hot-plugged device node to reflect that the set of desired resources will be made available to the hot-plugged device node.

15. The method of claim 9 wherein transmitting the set of desired resources from the parent device node and the at least one upper level device node further comprises transmitting input/output (I/O) addresses, memory addresses, and bus numbers from the parent device node and the at least one upper level device node.

16. An apparatus for providing resources from a plurality of on-board device nodes to a hot-plugged device node in a computer, the apparatus comprising:

a resource manager being operably coupled to a device tree including the plurality of on-board device nodes and the hot-plugged device node, the resource manager being configured to:

determine a set of desired resources for the hot-plugged device node;

probe a parent device node and at least one upper level device node positioned above the parent device node for the set of desired resources;

generate a linked list to indicate the expected movement of the set of desired resources from the parent node device and the at least one upper level device node to the hot-plugged device node;

provide the set of desired resources from the parent device node and the at least one upper level device node over a peripheral component interconnect (PCI) bus system for transmission to the hot-plugged device node to enable the hot-plugged device node to operate in the intended manner; and

communicate with a caller to suspend the operation of the parent device node and the at least one upper level device node prior to the hot-plugged device node receiving the set of desired resources.

17. The apparatus of claim 16 wherein each of the on-board device nodes and the hot-plugged device node each comprise a peripheral component interconnect (PCI) based device, and wherein the set of desired resources provided by the parent device node and the at least one upper level device node to the hot-plugged device node comprise input/output (I/O) addresses, memory addresses, and bus numbers.

18. The apparatus of claim 1 wherein the resource manager is further configured to generate the linked list prior to providing the set of desired resources from the parent device node and the at least one upper level device node.

Assignments (3)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037311/0121 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TYPOGRAPHICAL ERROR IN THE SECOND ASSIGNOR'S NAME PREVIOUSLY RECORDED ON REEL 022950 FRAME 0852. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Oct 12, 2009
From: ZOU, YONG COLIN; SHAO, WESLEY W.; TATTI, GOVINDA
To: SUN MICROSYSTEMS, INC.
Reel/Frame 023358/0625 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2009
From: ZOU, YONG COLIN; SHAO, WESLEY M.; TATTI, GOVINDA
To: SUN MICROSYSTEMS, INC.
Reel/Frame 022950/0852 →
Continuity (1)
Related Publication 20110010478A1 · Jan 13, 2011