HK1099951B - Systems and methods for managing multiple hot plug operations - Google Patents
Systems and methods for managing multiple hot plug operations Download PDFInfo
- Publication number
- HK1099951B HK1099951B HK07102640.3A HK07102640A HK1099951B HK 1099951 B HK1099951 B HK 1099951B HK 07102640 A HK07102640 A HK 07102640A HK 1099951 B HK1099951 B HK 1099951B
- Authority
- HK
- Hong Kong
- Prior art keywords
- hot plug
- ongoing
- plug operation
- hot
- devices
- Prior art date
Links
Description
Technical Field
The present disclosure relates generally to information handling systems and, more particularly, to systems and methods for managing multiple hot plug (hot plug) operations.
Background
As the value and use of information continues to increase, individuals and businesses are looking for other ways to process and store information. One available option for users is information handling systems. Information handling systems typically process, edit, store, and/or communicate information or data for business, personal, or other purposes, thereby allowing users to take advantage of the value of the information. As technology and information handling needs and specifications vary between different users or applications, information handling systems may also vary as to what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. Variations in information handling systems allow information handling systems to be general or configured for a particular user or particular use, such as financial processing, airline reservations, enterprise data storage, or global communications. In addition, an information handling System may include various hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and Networking systems.
Some information handling systems, including computer systems, support hot plug functionality for various hot plug components, external devices, or peripheral devices, such as memory cards, PCI devices, or disk drives. Hot plug, which is often referred to as hot swap, refers to the process of removing or adding a device to a system without shutting down or "hanging" the system. In certain situations, hot-plugging may refer to adding or removing devices from a bus when processing occurs on the bus involving other devices or system components.
To add or remove a hot plug device to or from an information handling system, the system may need to perform a hot plug operation that may include a series of functions including a number of System Management Interrupts (SMIs). Due to this SMI, the system may typically only handle one hot plug operation at a time. When multiple hot plug operations are requested simultaneously, the system may hang or other errors may result.
Disclosure of Invention
Accordingly, a need has arisen for a system and method for managing multiple hot plug operations that reduces or eliminates the problems associated with receiving multiple hot plug operations.
According to one embodiment of the present disclosure, a method for managing multiple hot plug operations in an information handling system is provided, comprising: receiving a hot plug system management interrupt signal for initiating a new hot plug operation, the system management interrupt signal received from a chipset of a first hot plug device, the first hot plug device connected to the information handling system, the system management interrupt signal generated by the chipset in response to a user input via a user input device on the first hot plug device; in response to receiving the system management interrupt signal from the first hot plug device, checking a chipset in each of one or more hot plug devices connected to the information handling system to determine whether there is another hot plug operation currently ongoing for another hot plug device; as a result of checking one or more other hot plug devices, upon receiving an instruction from the first hot plug device to initiate the new hot plug operation, identifying another hot plug operation of another hot plug device currently ongoing, the ongoing hot plug operation including one or more hot plug SMIs; and in response to identifying the ongoing hot plug operation, restricting initiation of the new hot plug operation such that the ongoing hot plug operation may be completed. For example, hot plug SMIs that are not involved in the ongoing hot plug operation may be disabled until the ongoing hot plug operation is completed. As another example, a new hot plug operation may be queued and executed based on the completion of the ongoing hot plug operation.
According to another embodiment of the present specification, there is provided an information processing system for managing a plurality of hot plug operations, comprising: a plurality of hot plug slots for receiving hot plug devices; a processor; a BIOS memory communicatively coupled to the processor and including a BIOS program; receiving means for receiving a hot plug system management interrupt signal for initiating a new hot plug operation for a first hot plug device in a first hot plug slot, the system management interrupt signal received from a chipset of the first hot plug device, the system management interrupt signal generated by the chipset in response to a user input via a user input device on the first hot plug device; checking means, responsive to receiving the system management interrupt signal from the first hot plug device, for checking a chipset in a hot plug device of one or more other hot plug slots to determine whether there is another hot plug operation of another hot plug device currently in progress; means for identifying, as a result of checking one or more other hot plug devices, another hot plug operation of another hot plug device currently ongoing at the time of receiving the instruction for starting the new hot plug operation from the first hot plug device, the ongoing hot plug operation including one or more hot plug SMIs; and means for restricting initiation of the new hot plug operation such that the ongoing hot plug operation may be completed in response to identifying the ongoing hot plug operation.
According to yet another embodiment of the present disclosure, a computer-readable medium having computer-executable instructions for managing multiple hot plug operations in an information handling system is provided. The computer-executable instructions include instructions for identifying a received instruction for initiating a new hot plug operation, the new hot plug operation including one or more hot plug System Management Interrupts (SMIs), and instructions for identifying another hot plug operation currently ongoing at the time the instruction for initiating the first hot plug operation was received, the ongoing hot plug operation including one or more hot plug SMIs, and instructions for restricting initiation of the new hot plug operation in response to identifying the ongoing hot plug operation, such that the ongoing hot plug operation may be completed.
In other words, the present invention provides a method for managing multiple hot plug operations in an information handling system:
receiving an instruction for starting a new hot plug operation, wherein the new hot plug operation comprises one or more hot plug system management interrupts;
when receiving an instruction for starting a first hot plug operation, identifying another hot plug operation currently ongoing, wherein the ongoing hot plug operation comprises one or more hot plug system management interrupts; and
in response to identifying the ongoing hot plug operation, restricting initiation of a new hot plug operation such that the ongoing hot plug operation may be completed.
The present invention also provides an information processing system for managing a plurality of hot plug operations, comprising:
a plurality of hot plug slots for receiving hot plug devices;
a processor;
a BIOS memory communicatively coupled to the processor and including a BIOS program;
wherein the processor and BIOS program cooperate to:
receiving an instruction for starting a new hot plug operation for a specific hot plug device in a specific hot plug slot, wherein the new hot plug operation comprises one or more hot plug system management interrupts;
identifying another hot plug operation currently ongoing when receiving an instruction for starting the first hot plug operation, the ongoing hot plug operation comprising one or more hot plug system management interrupts; and
in response to identifying the ongoing hot plug operation, initiation of the new hot plug operation is restricted such that the ongoing hot plug operation may be completed.
Additionally, the present invention provides a computer-readable medium having computer-executable instructions for managing multiple hot plug operations in an information handling system, the computer-readable medium comprising:
instructions for identifying a received instruction for initiating a new hot plug operation, the new hot plug operation comprising one or more hot plug system management interrupts;
instructions for identifying another hot plug operation currently ongoing at the time of receiving the instruction for initiating the first hot plug operation, the ongoing hot plug operation including one or more hot plug system management interrupts; and
the response identifies an ongoing hot plug operation such that the ongoing hot plug operation may be completed to restrict initiation of a new hot plug operation.
One technical advantage of the present disclosure is that a system and method are provided for managing multiple hot plug operations, either from the same hot plug device or from different hot plug devices. In some cases, a hot plug operation is requested by a user pressing an attention button on the associated hot plug device, such as to add or remove a hot plug device from an information handling system. In particular, such systems and methods may manage a new hot plug operation (or new hot plug operations) requested while another hot plug operation is ongoing in order to prevent system hang and to allow the ongoing hot plug operation to complete without interruption.
For example, in some embodiments, a request for a new hot plug operation made while another hot plug operation is ongoing is ignored by the system in order to prevent the system from suspending and to allow the ongoing hot plug operation to complete without interruption. In other embodiments, requests for new hot plug operations (or requests for multiple new hot plug operations) made while other hot plug operations are ongoing are queued by the system and executed after the ongoing hot plug operation is completed. In this manner, requested hot plug operations may be maintained and executed in an appropriate order without causing system hang or other errors, and allowing ongoing hot plug operations to complete without interruption.
In particular embodiments, for example, queued hot plug operations may be queued according to any suitable criteria, such as the time at which each request for a pending hot plug operation was received, the type of associated hot plug device, and the slot in which the associated hot plug device is located. The system may be configured for any desired priority of hot plug operations.
Other technical advantages will be readily apparent to one skilled in the art in view of the following description and accompanying drawings.
Drawings
A more complete understanding of the present embodiments and advantages thereof may be acquired by referring to the following description taken in conjunction with the accompanying drawings, in which like reference numbers indicate like features, and wherein:
FIG. 1 shows an example of an information handling system according to one embodiment of the specification;
FIG. 2 illustrates a number of hot plug devices located in hot plug slots of the information handling system of FIG. 1 according to one embodiment of the specification;
FIG. 3 illustrates example data including values representing current states of a plurality of hot plug devices supported by the information handling system of FIG. 1, in accordance with one embodiment of the present invention;
FIG. 4 illustrates example data including values representing current states of a plurality of hot plug devices supported by the information handling system of FIG. 1 in accordance with another embodiment of the present disclosure;
FIG. 5 illustrates one embodiment of a method of the information handling system of FIG. 1 managing multiple hot plug operations in accordance with the present disclosure;
FIGS. 6-7D illustrate another embodiment of a method of the information handling system of FIG. 1 for multiple hot plug operations in accordance with the present disclosure.
Detailed Description
The preferred embodiments and their advantages are best understood by referring to figures 1 through 7D of the drawings, like numerals being used for like and corresponding parts of the drawings.
For purposes of this disclosure, an information handling system may include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest (manifest), detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, or other purposes. For example, an information handling system may be a personal computer, a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price. The information handling system may include Random Access Memory (RAM), one or more processing resources such as a Central Processing Unit (CPU) or hardware or software control logic, ROM, and/or other types of nonvolatile memory. Other components of the information handling system may include one or more hard disk drives, one or more network ports for communicating with external devices as well as various input and output (I/O) devices, such as a keyboard, a mouse, and a video display. The information handling system may also include one or more buses operable to transmit communications between the various hardware components.
FIG. 1 shows an example information handling system 10 according to one embodiment of this disclosure. As discussed in more detail below, information handling system 19 may support one or more hot plug devices 12, such as one or more hot plug memory devices 14 and/or one or more hot plug PCI devices 16. Information handling system 10 may manage multiple hot plug operations associated with that hot plug device 12 such that the hot plug operations may be completed without interruption and without causing information handling system 10 to hang, or otherwise cause a system error.
Information handling system 10 or computer system preferably includes one or more microprocessors such as Central Processing Unit (CPU) 18. The CPU 18 may include a processor 20 that handles integer operations and a coprocessor 22 that handles floating point operations. CPU 18 is preferably connected to caches, such as L1 cache 24 and L2 cache 25, and a chipset commonly referred to as Northbridge chipset 26, via a front side Bus (Frontside Bus) 28. Northbridge chipset 26 preferably connects CPU 18 to memory via memory controller 30. The memory controller 30 may be connected to one or more hot plug memory slots 32, the hot plug memory slots 32 being configured to receive one or more hot plug memory devices 14. For example, hot-pluggable memory devices 14 may include any hot-pluggable memory device, such as a memory card with a memory DIMM.
Information handling system 10 may include other (non-hot-plug) memory such as Random Access Memory (RAM), Read Only Memory (ROM), Dynamic Random Access Memory (DRAM), Fast Cycle RAM (FCRAM), Static RAM (SRAM), Field Programmable Gate Arrays (FPGA), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or any other suitable volatile or non-volatile memory device.
Video controller 36 is preferably connected to north bridge chipset 26 and video memory 38. The video memory 38 is preferably operable to store information to be displayed on one or more display panels 40. The display panel 40 may be an active matrix or passive matrix Liquid Crystal Display (LCD), Cathode Ray Tube (CRT) display, or other display technology. In some applications or example applications, such as in portable information handling system implementations, the video controller 36 may also be connected to an integrated display.
The north bridge chipset 26 acts as a "bridge" between the CPU bus 28 and the connected buses. Generally, a bridge is required to provide translation or redirection to the correct bus when going from one bus to another. Typically, each bus uses its own set of protocols or rules (commonly referred to as a bus structure) to define the transfer of data or information along the bus. To prevent communication problems from arising between buses, chipsets, such as north bridge chipset 26 and south bridge chipset 42, are able to translate and coordinate the exchange of information between the various buses and/or devices communicating through their respective bridges.
Basic input/output system (BIOS) memory 44 is also preferably connected to system bus 46, which is connected to southbridge chipset 42. FLASH memory or other re-programmable, non-volatile memory may be used as BIOS memory 44. BIOS program 50 is typically stored in BIOS memory 44. BIOS program 50 preferably comprises software that facilitates interaction with information handling system 10 devices and between information handling system 10 devices, such as keyboard 52, a pointer such as touch pad 54 or mouse 56, one or more other I/O devices, and one or more hot plug PCI devices 16 located in one or more hot plug expansion slots 62. BIOS memory 44 also includes stored system code operable to control the operation of a number of basic information handling systems 10.
For example, a communication controller 66 is preferably provided that enables information handling system 10 to communicate with a communication network 68, such as an Ethernet network. Communication network 68 may include any Local Area Network (LAN), Metropolitan Area Network (MAN), Wide Area Network (WAN), Wireless Local Area Network (WLAN), Virtual Private Network (VPN), intranet, the Internet, or any other suitable structure or system for facilitating data communication. Communication controller 66 may be utilized to form a network interface for communicating with other information handling systems (not shown) coupled to communication network 68.
The information handling system may include an expansion card controller 70. the expansion card controller 70 may be connected to the system bus 46 as shown. For example, the expansion card controller 72 may be coupled to a plurality of hot plug expansion slots 62, and the hot plug expansion slots 62 may be configured to receive one or more hot plug PCI devices 16, such as any suitable PCI, PCI-X, or PCI-E card or device.
Southbridge chipset 42, also referred to as a bus interface controller or expansion bus controller, preferably connects expansion bus 46 to the expansion bus. In one embodiment, the expansion bus may be configured as an industry standard architecture ("ISA") bus. However, other buses, such as a peripheral component interconnect ("PCI") bus, for example, may also be used.
Interrupt request generator 74 may also be coupled to southbridge chipset 42. Interrupt request generator 74 is preferably operable to issue an interrupt service request on a predetermined interrupt request line in response to receipt of the request to issue an interrupt instruction from CPU 18. Southbridge chipset 42 preferably interfaces to one or more Universal Serial Bus (USB) ports 76, CD-ROM (compact disk read Only memory) or Digital Versatile Disk (DVD) drives 78, an Integrated Drive Electronics (IDE) Hard Drive Device (HDD)80, and/or a Floppy Disk Drive (FDD) 82. In one example embodiment, southbridge chipset 42 interfaces with HDD 80 via an IDE bus. Other hard drive devices that may interface with southbridge chipset 42 include, for example, removable hard drives, compact drives, CD-ROM (compact disc-read/write) drives, and CD-DVD (compact disc-digital versatile disc) drives.
A Real Time Clock (RTC)86 may also be coupled to southbridge chipset 42. In the information handling system 10, a Real Time Clock (RTC)86 allows timed events or alarms to be activated. The real time clock 86 may be programmed to generate alarm signals at predetermined times and to perform other operations.
I/O controller 90, commonly referred to as a super I/O controller, is also preferably coupled to southbridge chipset 42. The I/O controller 90 preferably interfaces with one or more parallel ports 92, the keyboard 52, a device controller 94 operable to drive and interface with the touch pad 54 and/or mouse 56, and a PS/2 port 96. FLASH memory 98 or other non-volatile memory may be used with the I/O controller 90.
As discussed, information handling system 10 may support one or more types of hot plug devices 12, such as hot plug memory devices 14, hot plug PCI devices 16, and/or any other suitable type of hot plug device. Hot plug devices 12 may comprise any devices capable of being added or removed from information handling system 10 by hot plug. Hot plug, commonly referred to as hot swapping, refers to the process of removing or adding a device to a system without stopping, or "hanging," the system. In certain situations, hot plug may refer to adding a device to a bus (e.g., such as bus 28 or bus 46) or removing device 12 from a bus when processing occurs on the bus involving other devices or system components.
FIG. 2 is a block diagram illustrating a number of hot plug devices 12 in a hot plug slot 100 of information handling system 10 according to one embodiment of the present description. In this embodiment, information handling system 10 comprises a server that includes four hot plug slots 32 and/or 62, represented by slots 100A-100D, that is operable to receive up to four hot plug devices 12, and is shown as currently hosting three hot plug devices 12A-12C. In a particular embodiment, information handling system 10 includes a four-processor (4P) server including four hot plug memory slots 32 operable to receive up to four hot plug memory devices 14. For example, in other embodiments, information handling system 10 may comprise any system that supports and manages multiple hot plug operations (such as discussed herein) for any applicable number and/or type of hot plug devices 12 (such as high end servers).
As shown in FIG. 2, each hot plug device 12 includes a chipset 102, and the chipset 102 generates a System Management Interrupt (SMI) associated with the hot plug operation. As shown in FIG. 2, System Management Interrupt (SMI) code 104 may be stored on one of hot plug devices 12, such as hot plug device 12A. For example, SMI code 104 may be copied from BIOS memory 50 to hot plug device 12A, such as during power-up of server 10. In other embodiments or in a mirrored mode scenario (i.e., where the contents of multiple hot plug devices 12 are mirrored, or the same), SMI code 104 may be stored on more than one hot plug device 12. For example, in a mirroring mode in which the contents of memory cards A and B are mirrored, SMI code 104 may be stored on both hot plug devices 12A and 12B.
Each hot plug device 12 may also include a hot plug operation initiating device 108 operable to be actuated to initiate a hot plug operation, or item, for a hot plug device 12, such as adding a hot plug device 12 to server 10 or removing a hot plug device 12 from server 10. In the particular embodiment shown in FIG. 2, each hot plug device 12 includes an attention button 108 that may be pressed by a user to initiate a hot plug operation for that hot plug device 12.
Hot plug operations allow hot plug devices 12 to be added to server 10 or removed from server 10. For example, to remove a hot plug device 12 from server 10, a user presses attention button 108 on hot plug device 12, which initiates a hot plug operation or removes hot plug device 12 from service. Once the hot plug operation has completed, an indication may be displayed (e.g., such as by a light or sound) to the user indicating that the hot plug operation has completed. The user may then remove the hot plug device 12 from the particular slot 100 of server 10. To add a hot plug device 12 to server 10, a user inserts hot plug device 12 into slot 100 of server 10 and presses attention button 108 on hot plug device 12, which initiates a hot plug operation to add hot plug device 12 to the server. Once the hot plug operation is complete, an indication may be displayed (e.g., such as by a light or sound) to the user indicating that the hot plug operation has been completed and that hot plug device 12 has been successfully added to server 10. A hot plug operation (or adding or removing a hot plug device 12) may include a certain number (e.g., hundreds) of System Management Interrupts (SMIs).
Server 10 is operable to receive an instruction to initiate a new hot plug operation for a particular hot plug device 12, determine that another hot plug operation is ongoing at the time the instruction to initiate the first hot plug operation is received, and in response to determining that another hot plug operation is ongoing, restrict initiation of the new hot plug operation so that the ongoing hot plug operation may be completed.
The new hot plug operation may pertain to the same or different hot plug device 12 as the hot plug device 12 of the ongoing hot plug operation. For example, assume that a user presses attention button 108 on a particular hot plug device 12, which initiates a hot plug operation (such as adding or removing the particular hot plug device 12). Before the hot plug operation is completed, the user (or another user) presses the attention button 108 again on the particular hot plug device 12. Server 10 may receive the instruction generated by the second press of attention button 108, determine the hot plug operation currently ongoing for that hot plug device 12, and in response, restrict the second hot plug operation so that the first hot plug operation may be completed.
As another example, assume that a user presses attention button 108 on a first hot plug device 12, i.e., hot plug device 12A, to initiate a hot plug operation for hot plug device 12A (such as adding or removing hot plug device 12A). Prior to completion of the hot plug operation for hot plug device 12A, the user (or another user) presses attention button 108 on the second hot plug device 12, hot plug device 12B. Server 10 may receive an instruction generated by pressing attention button 108 on hot plug device 12B, determine that a hot plug operation is currently ongoing for hot plug device 12A, and in response, restrict initiation of the hot plug operation for hot plug device 12B so that the hot plug operation for hot plug device 12A may be completed.
In any of the examples discussed above, the restriction of initiation of a new hot plug operation due to another ongoing hot plug operation may include any applicable functionality such that the ongoing hot plug operation may be successfully completed. For example, as discussed in detail below with reference to FIG. 5, limiting the initiation of a new hot plug operation includes disabling hot plug SMIs from all or particular hot plug devices 12 during the ongoing hot plug operation and re-enabling hot plug SMIs from all or particular hot plug devices 12 after the ongoing hot plug operation.
As another example, as discussed in detail below with reference to FIGS. 6-7, restricting initiation of a new hot plug operation includes storing a received instruction to initiate the new hot plug operation, pending the new hot plug operation, and sequentially initiating pending new hot plug operations while or after the hot plug operation is ongoing.
In some embodiments, server 10 may manage the current status of each of the plurality of hot plug devices 12, and the status of each hot plug device 12 may indicate (a) whether a hot plug operation is currently ongoing for that hot plug device 12 and/or (b) whether a hot plug operation is currently pending for that hot plug device 12. The current state of each of the plurality of hot plug devices is represented by one of a plurality of values, which may be stored in SMI code 104 of one or more hot plug devices 12. In particular embodiments, such values for each hot plug device 23 include a first value indicating a hot plug operation currently ongoing for that hot plug device 12, a second value indicating that hot plug device 12 is pending hot plug operations, and a third value indicating that neither hot plug operations currently ongoing nor pending hot plug devices 12 are currently pending hot plug operations.
FIG. 3 illustrates example data 150 including values 152 representing current states 154 of a plurality of hot plug devices 12 supported by information handling system 10 according to one embodiment of this disclosure. Data 150 may be stored in SMI code 104 on one or more hot plug devices 12 and managed by BIOS program 50 of information handling system 10. In this embodiment, a value of "2" for a particular hot plug device 12 indicates that a hot plug device 12 is currently undergoing a hot plug operation. A value of "1" indicates that the hot plug operation for hot plug device 12 is pending. A value of "0" indicates that a hot plug operation for hot plug device 12 is not currently ongoing or pending. It should be understood that the values 0, 1, 2 are for illustrative purposes only and that any other suitable values may be used.
When a hot plug operation is not ongoing or pending for any of storage devices 12, the value 152 for each hot plug device 12 is "0". When a hot plug operation for a first hot plug device 12 is ongoing and a hot plug operation pending for one or more hot plug devices 12, the value 152 for the first memory device 12 is "2" and the value 152 for each memory device 12 for which a hot plug operation is pending is "1".
In operation, when a hot plug operation is requested for a first particular hot plug device 12, such as when a user presses the attention button 108 on the first particular hot plug device 12, information handling system 10 may determine whether a hot plug operation is ongoing for another hot plug device 12. This determination may include examining the chipsets 102 on each hot plug device 12 to determine the hot plug status on each hot plug device 12. If information handling system 10 determines that a hot plug operation for a second particular hot plug device is ongoing, information handling system 10 may temporarily restrict initiation of the requested hot plug operation for first particular hot plug device 12 and update the status of first particular hot plug device 12 with the value "1" of data 150 (i.e., a pending hot plug operation). Upon or after completing an ongoing hot plug operation for a second particular hot plug device 12, information handling system 10 may identify an pending hot plug operation for the first particular hot plug device 12 based on data 150, initiate the pending hot plug operation, and update the status of the first particular hot plug device 12 with a value of "2" (i.e., the ongoing hot plug operation) and the status of the second particular hot plug device 12 with a value of "0" (i.e., the non-ongoing or pending hot plug operation). Upon or after completion of the hot plug operation for first particular hot plug device 12, information handling system 10 may similarly update the status of first particular hot plug device 12 with a value of "0" (i.e., no ongoing or pending hot plug operation).
FIG. 4 illustrates example data 150 supported by information handling system 10 including values 152 representing current states 154 of a plurality of hot plug devices 12 according to another embodiment of the description. In this embodiment, for example, the data 150 may also represent timing or priority information 160 indicating the time of the pending hot plug operation or other priority for performing the pending hot plug operation in order of one or more priority factors, such as the time of the respective pending hot plug operation, the type of hot plug device 12, and the slot 62 in which the hot plug device 12 is located, if more than one hot plug operation is pending.
For example, in the exemplary embodiment shown in FIG. 4, which may be used for an embodiment including eight hot plug slots 62, a value of "0" for a particular hot plug device 12 indicates that a hot plug operation for that hot plug device 12 is neither currently ongoing nor pending, and a value of "1" indicates that a hot plug device 12 is currently ongoing hot plug operation. The values "2" through "8" indicate (a) that a hot plug operation is pending for a hot plug device 12 and (b) a priority of the pending hot plug operation relative to other currently pending hot plug operations. In particular, the lower the numbers 2-8, the higher the priority of the pending hot plug operation. Thus, a pending hot plug operation assigned a value of "2" will be performed before a pending hot plug operation assigned a value of "3", a pending hot plug operation assigned a value of "4" will be performed before a pending hot plug operation assigned a value of "3", and so on. These values may be updated as the ongoing hot plug operation completes and the pending hot plug operation is initiated. It should be understood that the values "0" to "8" are for illustration only and that any other suitable values may be used.
The values assigned to each pending hot plug operation may be determined by information handling system 10 based on one or more priority factors, such as the time for each pending hot plug operation, the type of hot plug device 12, and the slot 62 in which the hot plug device 12 is located, for example. For example, in a pure FIFO system, when a hot plug operation is ongoing, the first received request for another hot plug operation is assigned the value "2", the next received request for another hot plug operation is assigned the value "3", and so on. By way of example, in embodiments in which information handling system 10 supports both hot plug memories 14 and hot plug PCI devices 16, hot plug devices 12 may be given a higher priority so that requests for hot plug operations for hot plug devices 12 are given a higher priority than requests for hot plug operations for hot plug PCI devices 16, regardless of whether the requests are received first.
FIG. 5 illustrates a method of information handling system 10 managing multiple hot plug operations according to one embodiment of the present disclosure. In this embodiment, restricting initiation of a new hot plug operation for a particular hot plug device 12 includes disabling hot plug SMIs from hot plug device 12 and/or all other hot plug devices 12) during an ongoing hot plug operation and re-enabling hot plug SMIs from hot plug device 12 and/or all other hot plug devices 12) after completion of the ongoing hot plug operation.
In step 200, a number of hot plug devices 12 are connected to information handling system 10, such as shown in FIG. 2, for example. In step 202, the user presses attention button 108 on first hot plug device 12, and button 108 generates a hot plug SMI signal, which is passed to BIOS program 50. In response, BIOS program 50 initiates a hot plug operation for first hot plug device 12. For example, a user may wish to add a first hot plug device 12 to information handling system 10 or remove a first hot plug device 12 from information handling system 10. In step 204, in response to initiating a hot plug operation for the first hot plug device 12, information handling system 10 disables hot plug SMIs for all hot plug devices 12 during the ongoing hot plug operation. For example, BIOS program 50 may communicate a command to chipset 102 in each hot plug device 12 to ignore any hot plug SMIs until further notified.
At step 206, during a hot plug operation of a first hot plug device 12, a user (or another user) presses attention button 108 on either the first hot plug device 12 or a second hot plug device 12, and button 108 generates a hot plug SMI signal. In step 208, the hot plug SMI is ignored based on the command implemented in step 204. Thus, ongoing hot plug operations for the first hot plug device 12 continue until completion. At step 210, the hot plug operation for the first hot plug device 12 is complete (and thus first hot plug device 12 is either added to information handling system 10 or ready to be safely removed from information handling system 10). In some embodiments, an indication (e.g., such as by light or sound) may be displayed to the user indicating that the hot plug operation for first hot plug device 12 has completed. In response to completion of the ongoing hot plug operation, information handling system 10 re-enables hot plug SMIs for all hot plug devices 12 at step 212. For example, BIOS program 50 may communicate a command to chipset 102 in each hot plug device 12 to re-enable hot plug SMIs. Thus, hot plug operations for hot plug storage device 12 may be restarted. At step 214, the user presses attention button 108 on second hot plug device 12, and attention button 108 generates a hot plug SMI signal that is communicated to BIOS program 50. In response, BIOS program 50 initiates a hot plug operation for the first hot plug device 12 at step 216. In addition, BIOS program 50 communicates a command to chipset 102 in each hot plug device 12 to ignore any hot plug SMIs until further notified, such as described in step 204 above.
In this manner, information handling system 10 may prevent overlapping (overlap) of multiple hot plug operations, thereby allowing ongoing hot plug operations to complete without interruption, thereby eliminating or reducing the possibility of system hang.
FIGS. 6-7 illustrate a method of information handling system 10 managing multiple hot plug operations according to another embodiment of the present disclosure. In this embodiment, restricting initiation of the new hot plug operation includes storing the received instruction to initiate the new hot plug operation so that the new hot plug operation is pending, and sequentially initiating pending new hot plug operations at or after the ongoing hot plug operation.
In particular, information handling system 10 manages the current status of each hot plug device 12 as indicated by the values stored in SMI code 104 on one or more hot plug devices 12. In this embodiment, such as discussed with reference to FIG. 3, these values include a first value of "2" indicating that a hot plug operation is currently ongoing for hot plug device 12, a second value of "1" indicating that a hot plug operation is pending for hot plug device 12, and a third value of "0" indicating that a hot plug operation is neither currently ongoing nor pending for hot plug device 12.
At step 300, for example, a number of hot plug devices 12A are connected to information handling system 10, such as shown in FIG. 2. As shown in FIG. 7, a hot plug operation is not currently ongoing for any hot plug device 12A, and thus a value of "0" is stored in SMI code 104 for each hot plug device 12A in data 150. At step 302, the user presses attention button 108 on first hot plug device 12A (such as to add first hot plug device 12A or remove first hot plug device 12A from information handling system 10), and attention button 108 generates an SMI signal that is communicated to BIOS program 50. In response, at step 304, BIOS program 50 checks chipset 102 on each hot plug device 12 to determine (a) the cause of the SMI signal, and (b) the hot plug status of the respective hot plug device 12. As shown in FIG. 7B, based on this check, BIOS program 50 determines that the SMI signal from first hot plug device 12A is a hot plug SMI and updates the values stored in SMI code 104 for each hot plug device 12, including updating the values for first hot plug device 12A from "0" to "2", at step 306. BIOS program 50 then initiates the requested hot plug operation for first hot plug device 12 at step 308.
During a hot plug operation for first hot plug device 12A, a user (or another user) presses attention button 108 on either first hot plug device 12A or second hot plug device 12B. As shown in FIG. 6, the method branches depending on whether attention button 108 on first hot plug device 12A or second hot plug device 12B is pressed. If attention button 108 on first hot plug device 12A is pressed, the method continues to step 310. If attention button 108 on second hot plug device 12B is pressed, the method continues to step 320.
At step 310, a user (or another user) presses attention button 108 on first hot plug device 12A, and attention button 108 generates a hot plug SMI signal that is communicated to BIOS program 50. In response, at step 312, BIOS program 50 checks chipset 102 on each hot plug device 12 to determine (a) the cause of the SMI signal, and (b) the hot plug status of each hot plug device 12. Based on this check, at step 314, BIOS program 50 determines that (a) the SMI signal from first hot plug device 12A is a hot plug SMI and (b) first hot plug device 12A is already undergoing a hot plug operation. In response, at step 316, BIOS program 50 ignores the hot plug SMI signal and allows the ongoing hot plug operation to continue for first hot plug device 12A. Then, at step 318, BIOS program 50 updates the value stored in SMI code 104 for first hot plug device 12A from "2" to "0" once the hot plug operation is completed for first hot plug device 12A, returning to the state shown in FIG. 7A.
At step 320, a user (or another user) presses attention button 108 on second hot plug device 12B (such as adding second hot plug device 12B or removing second hot plug device 12B from information handling system 10), and attention button 108 generates an SMI signal that is communicated to BIOS program 50. In response, at step 322, BIOS program 50 checks chipset 102 on each hot plug device 12 to determine (a) the cause of the SMI signal, and (b) the hot plug status of each hot plug device 12. Based on this check, at step 324, BIOS program 50 determines that (a) the SMI signal from second hot plug device 12B is a hot plug SMI and (B) another hot plug device 12 (first hot plug device 12A) is already engaged in a hot plug operation. In response, BIOS program 50(a) delays the initiation of the requested hot plug operation for second hot plug device 12B and (B) updates the value stored in SMI code 104 for each hot plug device 12, including updating the value for second hot plug device 12B from "0" to "1", at step 326 as shown in FIG. 7C.
At step 328, the ongoing hot plug operation for first hot plug device 12A is complete. In response, at step 330, BIOS program 50 checks the chipset on each hot plug device 12 to determine if there is a pending hot plug operation. Based on this check, at step 332, BIOS identifies the pending hot plug operation for second hot plug device 12B and updates the values stored in SMI code 104 for each hot plug device 12, including updating the values for first hot plug device 12A from "2" to "0" and updating the values for second hot plug device 12B from "1" to "2", as shown in FIG. 7D. BIOS program 50 then initiates the requested hot plug operation for second hot plug device 12B at step 334.
In this manner, a request for a new hot plug operation (a plurality of requests for new hot plug operations) made while another hot plug operation is ongoing is queued by system 10 and executed after the ongoing hot plug operation ends. Thus, requested hot plug operations may be maintained (i.e., not lost) and executed in the proper order without causing system hang or other errors and allowing ongoing hot plug operations to complete without interruption. As discussed above, queued hot plug operations may be queued according to any criteria, such as the time at which each pending hot plug operation was received, the type of associated hot plug device, and the slot in which the associated hot plug device is located, for example. The system 10 may be configured for any desired priority of hot plug operations.
Although the disclosed embodiments have been described in detail, it should be understood that various changes, substitutions, and alterations can be made hereto without departing from the spirit and scope thereof.
Claims (12)
1. A method for managing multiple hot plug operations in an information handling system, comprising:
receiving a hot plug system management interrupt signal for initiating a new hot plug operation, the system management interrupt signal received from a chipset of a first hot plug device, the first hot plug device connected to the information handling system, the system management interrupt signal generated by the chipset in response to a user input via a user input device on the first hot plug device;
in response to receiving the system management interrupt signal from the first hot plug device, checking a chipset in each of one or more hot plug devices connected to the information handling system to determine whether there is another hot plug operation currently ongoing for another hot plug device;
identifying another hot plug operation of another hot plug device currently ongoing upon receiving an instruction from the first hot plug device to initiate the new hot plug operation as a result of checking one or more other hot plug devices, the ongoing hot plug operation including one or more hot plug system management interrupts; and
in response to identifying the ongoing hot plug operation, restricting initiation of the new hot plug operation such that the ongoing hot plug operation may be completed.
2. The method of claim 1, wherein the user input device comprises an attention button on the first hot plug device.
3. The method of claim 1, wherein:
the step of restricting the new hot plug operation so that initiation of the ongoing hot plug operation may be completed comprises:
disabling a hot plug system management interrupt of the first hot plug device during the ongoing hot plug operation; and
and enabling the hot plug system management interrupt of the first hot plug device after the ongoing hot plug operation is completed.
4. The method of claim 1, wherein the step of restricting initiation of the new hot plug operation such that the ongoing hot plug operation may be completed comprises:
storing the received system management interrupt signal for the initiating new hot plug operation to suspend the new hot plug operation; and
and starting the suspension new hot plug operation according to the completion of the ongoing hot plug operation.
5. The method of claim 1, further comprising:
managing the current state of each of the plurality of hot plug devices, wherein the current state of each hot plug device at least indicates whether a hot plug operation is currently performed for the device and whether a hot plug operation is suspended for the device;
wherein identifying an ongoing hot plug operation comprises:
accessing a chipset in each of the hot-plugged devices to determine a status of the plurality of hot-plugged devices; and
determining that a second hot plug device is currently performing hot plug operation according to the access states of the plurality of hot plug devices;
wherein limiting initiation of the new hot plug operation such that the ongoing hot plug operation may be completed comprises updating a state of a first hot plug device associated with the new hot plug operation to indicate that the first hot plug device is pending hot plug operation; and
and starting the suspended hot plug operation for the first hot plug device according to the completion of the ongoing hot plug operation.
6. The method of claim 5, further comprising, upon completion of the ongoing hot plug operation:
updating the state of the second hot plug device to indicate that no hot plug operation is performed on the second hot plug device or a hot plug operation is suspended; and
and updating the state of the first hot plug device to indicate that the hot plug operation is performed on the first hot plug device.
7. The method of claim 5, wherein:
identifying a current state of each of a plurality of hot plug devices by one of a plurality of values, the values including a first value indicating that the device is currently hot plug operating, a second value indicating that the device is pending hot plug operation, and a third value indicating that the device is neither hot plug operating nor pending hot plug operation; and
managing the current state of each of the plurality of hot plug devices includes updating the current state appropriately for the hot plug device.
8. An information handling system for managing multiple hot plug operations, comprising:
a plurality of hot plug slots for receiving hot plug devices;
a processor;
a BIOS memory communicatively coupled to the processor and including a BIOS program;
receiving means for receiving a hot plug system management interrupt signal for initiating a new hot plug operation for a first hot plug device in a first hot plug slot, the system management interrupt signal received from a chipset of the first hot plug device, the system management interrupt signal generated by the chipset in response to a user input via a user input device on the first hot plug device;
checking means, responsive to receiving the system management interrupt signal from the first hot plug device, for checking a chipset in a hot plug device of one or more other hot plug slots to determine whether there is another hot plug operation of another hot plug device currently in progress;
means for identifying, as a result of checking one or more other hot plug devices, that another hot plug operation is currently ongoing for another hot plug device upon receiving an instruction from the first hot plug device to initiate the new hot plug operation, the ongoing hot plug operation including one or more hot plug system management interrupts; and
and limiting means, responsive to identifying the ongoing hot plug operation, for limiting initiation of the new hot plug operation such that the ongoing hot plug operation may be completed.
9. The information processing system according to claim 8, wherein said restricting means comprises:
a disabling device for disabling any hot plug system management interrupt of the first hot plug device during the ongoing hot plug operation; and
and the re-enabling device is used for enabling the hot plug system management interrupt of the first hot plug equipment after the ongoing hot plug operation is completed.
10. The information processing system of claim 8, further comprising:
a storage device for storing the received system management interrupt signal for starting the new hot plug operation so that the new hot plug operation is suspended; and
and the starting device starts the suspended new hot plug operation when the ongoing hot plug operation is completed.
11. The information processing system of claim 8, further comprising:
the management device is used for managing the current state of each device of the plurality of hot plug devices, and the current state of each hot plug device at least indicates whether hot plug operation is currently carried out on the device and whether hot plug operation is suspended for the device;
and wherein the identification means comprises:
the access device accesses the chip set in each hot plug device to determine the states of the hot plug devices; and
the determining device is used for determining that the second hot plug equipment is currently subjected to hot plug operation according to the access states of the plurality of hot plug equipment;
wherein the restricting means comprises updating means for updating the state of the first hot plug device associated with the new hot plug operation to indicate that the first hot plug device is pending hot plug operation; and
wherein the information processing system further comprises an initiating means for initiating a hot plug operation pending for the first hot plug device upon completion of the ongoing hot plug operation.
12. The information processing system of claim 11, wherein:
identifying a current state of each of a plurality of hot plug devices by one of a plurality of values, the values including a first value indicating that the device is currently hot plug operating, a second value indicating that the device is pending hot plug operation, and a third value indicating that the device is neither hot plug operating nor pending hot plug operation; and
the management device comprises an updating device which appropriately updates the current state of the hot-plug equipment.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/077,443 | 2005-03-10 | ||
| US11/077,443 US7321947B2 (en) | 2005-03-10 | 2005-03-10 | Systems and methods for managing multiple hot plug operations |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1099951A1 HK1099951A1 (en) | 2007-08-31 |
| HK1099951B true HK1099951B (en) | 2009-04-09 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7500040B2 (en) | Method for synchronizing processors following a memory hot plug event | |
| CN102067083B (en) | Lazy handling of end of interrupt messages in a virtualized environment | |
| CN100592271C (en) | Apparatus and method for high performance volatile disk drive memory access using integrated DMA engine | |
| US7321947B2 (en) | Systems and methods for managing multiple hot plug operations | |
| US10423425B2 (en) | System and method for runtime update of ESRT table for hot-pluggable disks | |
| US7200701B2 (en) | System and method for processing system management interrupts in a multiple processor system | |
| CN100555257C (en) | The memory controller of the dma operation between the processing page replicative phase and method | |
| US9058287B2 (en) | Relocating page tables and data amongst memory modules in a virtualized environment | |
| US9372702B2 (en) | Non-disruptive code update of a single processor in a multi-processor computing system | |
| US8255639B2 (en) | Partition transparent correctable error handling in a logically partitioned computer system | |
| CN114003514A (en) | System and method for processing copy commands | |
| CN101405700B (en) | Error Management Topology | |
| US10700869B2 (en) | Access control and security for synchronous input/output links | |
| US20060242453A1 (en) | System and method for managing hung cluster nodes | |
| US20070260769A1 (en) | Computer-implemented method, apparatus, and computer program product for managing DMA write page faults using a pool of substitute pages | |
| US7725620B2 (en) | Handling DMA requests in a virtual memory environment | |
| US20070192520A1 (en) | System control unit, system control method, and computer readable medium storing system control program | |
| JP6954864B2 (en) | Semiconductor devices and UFS systems | |
| US20080172507A1 (en) | Methods and Apparatus for Synchronizing a Plurality of Processors | |
| US10838737B1 (en) | Restoration of memory content to restore machine state | |
| HK1099951B (en) | Systems and methods for managing multiple hot plug operations | |
| GB2443097A (en) | Hot plug device with means to initiate a hot plug operation on the device. | |
| IE85184B1 (en) | Systems and methods for managing multiple hot plug operations | |
| US9798479B2 (en) | Relocatable and resizable tables in a computing device | |
| US10613850B1 (en) | Performant and secure storage and retrieval of firmware variables |