[go: up one dir, main page]

WO2016057217A1 - Methods and systems for sharing information between processors - Google Patents

Methods and systems for sharing information between processors Download PDF

Info

Publication number
WO2016057217A1
WO2016057217A1 PCT/US2015/051607 US2015051607W WO2016057217A1 WO 2016057217 A1 WO2016057217 A1 WO 2016057217A1 US 2015051607 W US2015051607 W US 2015051607W WO 2016057217 A1 WO2016057217 A1 WO 2016057217A1
Authority
WO
WIPO (PCT)
Prior art keywords
bus
access
controller
state
positive response
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/US2015/051607
Other languages
French (fr)
Inventor
Amit Kumar Singh
Michael M. LOEBIG
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NetApp Inc
Original Assignee
NetApp Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/510,589 external-priority patent/US20150151613A1/en
Application filed by NetApp Inc filed Critical NetApp Inc
Publication of WO2016057217A1 publication Critical patent/WO2016057217A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation

Definitions

  • the present disclosure relates to communications between processors, and more specifically, to sharing access to resources via a bus interface.
  • DAS direct attached storage
  • NAS network attached storage
  • SAN storage area networks
  • Network storage systems are commonly used for a variety of purposes, such as providing multiple users with access to shared data, backing up data and others.
  • a storage system typically includes at least one computing system executing a storage operating system for storing and retrieving data on behalf of one or more client computing systems.
  • the storage operating system stores and manages shared data containers in a set of mass storage devices.
  • Storage system hardware is expected provide fast access to stored data, often for multiple clients at once.
  • storage servers often have multiple components to carry out various tasks. These components can only increase flexibility and performance of a system if they are able to handle or preferably prevent conflicts, lock-ups, or the like among simultaneous actions by different components.
  • a storage— or any other computer— system may include two or more baseboard management controllers (BMCs), which are specialized service processors that monitor the physical state of a computer, server, or other hardware component.
  • BMCs monitor internal physical variables of a computing system, including, for example, temperature, humidity, power- supply voltage, fan speeds, and the like.
  • a BMC can then report issues to a central processing unit (or an administrator) if parameters stray from particular norms.
  • BMCs often have to access shared resources, for example, system memory, power supply units, and others to monitor various system parameters.
  • BMCs do not support a master-slave environment and hence two processors may be able to access the same storage [0007] space that stores information regarding monitored parameters. Continuous efforts are being made to improve communication between controllers in general and BMCs in particular.
  • a machine implemented method of sharing access to computer resources includes requesting, by a processor of a first controller, access to a bus attached to a device from a processor of a second controller, wherein the bus and device are shared by the first and second controllers; waiting for a positive response from the second controller; when the positive response is received, accessing the bus for less than a first timeout period; resetting a timer before the timer reaches the first timeout period to extend access to the bus, when access is not complete and a total access time is less than a second timeout period; and releasing the bus when access is complete or the second timeout period has been reached.
  • a non-transitory, machine readable storage medium having stored thereon instructions for performing a method is provided.
  • the machine executable code which when executed by at least one machine, causes the machine to: request, by a processor of a first controller, access to a bus attached to a device from a processor of a second controller, wherein the bus and device are shared by the first and second controllers; wait for a positive response from the second controller; when the positive response is received, access the bus for less than a first timeout period; reset a timer before the timer reaches the first timeout period to extend access to the bus, when access is not complete and a total access time is less than a second timeout period; and release the bus when access is complete or the second timeout period has been reached.
  • a system having a memory containing machine readable medium comprising machine executable code having stored thereon instructions is provided.
  • a processor module is coupled to the memory and is associated with the first controller.
  • the processor module is configured to execute the machine executable code to operate a first controller to: request access to a bus attached to a device from a processor of a second controller, wherein the bus and device are shared by the first and second controllers; wait for a positive response from the second controller; when the positive response is received, access the device on the bus for less than a first timeout period; reset a timer before the timer reaches the first timeout period to extend access to the bus, when access is not complete and a total access time is less than a second timeout period; and release the bus when access is complete or the second timeout period has been reached.
  • Figure 1 provides a block diagram of system used according to an aspect of the present disclosure
  • FIGS. 2A and 2B illustrate example process flows for a controller interacting with a device shared with another controller, according to one aspect of the present disclosure
  • Figure 3 is an example state diagram according to one aspect of the disclosure.
  • Figure 4 is an example process flow illustrating a negotiation between controllers for bus access, according to one aspect of the present disclosure.
  • a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer.
  • both an application running on a server and the server can be a component.
  • One or more components may reside within a process and/or thread of execution, and a component may be localized on one computer and/or distributed between two or more computers. Also, these components can execute from various non-transitory computer readable media having various data structures stored thereon.
  • the components may communicate via local and/or remote processes such as in accordance with a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, distributed system, and/or across a network such as the Internet with other systems via the signal).
  • Computer executable components can be stored, for example, at non-transitory, computer readable media including, but not limited to, an ASIC (application specific integrated circuit), CD (compact disc), DVD (digital video disk), ROM (read only memory), floppy disk, hard disk, EEPROM (electrically erasable programmable read only memory), memory stick or any other storage device, in accordance with the claimed subject matter.
  • ASIC application specific integrated circuit
  • CD compact disc
  • DVD digital video disk
  • ROM read only memory
  • floppy disk floppy disk
  • hard disk hard disk
  • EEPROM electrically erasable programmable read only memory
  • memory stick any other storage device
  • BMCs baseboard management controllers
  • System 100 illustrates a portion of a computer system 100 comprising two controllers 102A and 102B, each having a BMC 104A and 104B respectively.
  • BMCs 104A and 104B access several devices on a mid-plane accessible via a bus interface, for example, a serial integrated circuit (12 C) bus interface 107A/107B.
  • example devices illustrated in Figure 1 include electronically erasable programmable read only memories (EEPROMs) 114, power supply units (PSUs) 116, and fan field replaceable units (FRUs) 1 18.
  • EEPROMs electronically erasable programmable read only memories
  • PSUs power supply units
  • FRUs fan field replaceable units
  • controller 102A includes the BMC 104A, a multiplexer/demultiplexer (Mux/Demux, also known as a data selector) module 108A, buffers 112, a support field programmable gate array (Support FPGA or SFPGA) 106A which includes a state machine 1 10A, a central processing unit (CPU) 120A, and memory 122A.
  • Mux/Demux also known as a data selector
  • buffers 112 buffers 112
  • Support FPGA or SFPGA support field programmable gate array
  • BMC 104A is connected to various mid-plane devices (EEPROMs 1 14, PSUs l 16, and Fan FRUs 118, for example) by the I2C bus 107A through the mux/demux module 108A which is used, in combination with buffers 112, to read information from the mid-plane device 1 14, 1 16, and 1 18.
  • mid-plane devices EEPROMs 1 14, PSUs l 16, and Fan FRUs 118, for example
  • CPU 120A may be, or may include, one or more programmable general-purpose or special-purpose microprocessors, digital signal processors (DSPs), programmable controllers, application specific integrated circuits (ASICs), programmable logic devices (PLDs), or the like, or a combination of such hardware devices.
  • DSPs digital signal processors
  • ASICs application specific integrated circuits
  • PLDs programmable logic devices
  • memory 122 A comprises volatile and/or non- volatile memory, such as Random Access Memory (RAM), Read only Memory (ROM), flash memory, an EEPROM, or the like.
  • RAM Random Access Memory
  • ROM Read only Memory
  • flash memory an EEPROM
  • CPU 120A carries out processes and executes firmware that may be stored in memory 122A.
  • memory 122A may store firmware executed by CPU 122A to communicate with and/or control the BMC 104A.
  • BMC 104A accesses devices 114, 116, and 118 via Support FPGA 106A and the data selector module 108A through bus 107A. Data from the mid-plane devices is electrically isolated by buffers 1 12A and read by BMC 104A via the data selector module 108A. In an aspect, the BMC 104A controls buffers 1 12A to select the device with which it will
  • one BMC 104A may access one device (for example an EEPROM 114) while the other BMC 104B accesses another device (for example a FAN FRU 1 18), but both BMCs cannot access the same device simultaneously without potentially causing problems.
  • one device for example an EEPROM 114
  • the other BMC 104B accesses another device (for example a FAN FRU 1 18), but both BMCs cannot access the same device simultaneously without potentially causing problems.
  • the local Support FPGA 106A communicates with the remote controller 102B's remote Support FPGA 106B through a serial exchange interface (or bus) 105 to implement arbitration logic to prevent simultaneous access tries to the same device 1 14, 1 16, 1 18.
  • This arbitration logic that may be executed by state machines 1 lOA/110B is described in more detail below.
  • State machine 1 10A has access to memory 109 A which stores first and second timeout periods that are used to control device access. State machine 1 10A maintains various states for controlling device access that are described below in detail with respect to Figure 3.
  • Support FPGAs 106A, 106B include connections (either included with serial exchange interface 105 or separate therefrom) that will change values indicating whether a remote Support FPGA is present. These indicators may allow shortcuts or changes to bus access processes when a remote controller 102B and its Support FPGA 106N have been removed or have failed, for example.
  • process 200 illustrates an example of device access by BMC 104A, 104B, according to an aspect.
  • the process starts with two controllers 102A, 102B configured and running with their BMCs having access to common devices, for example on a mid-plane and accessible through a bus 107A, 107B (and data selector modules 108A, 108B and appropriate buffers 112A, 1 12B), for example an inter-integrated circuit (I2C) bus.
  • I2C inter-integrated circuit
  • the local BMC 104A requests access to a bus N, where access to bus N equates to access of one of the mid-plane devices, such as EEPROM 1 14, PSU 1 16, or fan FRU 118 through bus N.
  • this request is initiated by local BMC 104A and passed to local Support FPGA 106A via a parallel bus 103 A.
  • Local Support FPGA 106A sends a message via interface 105 to the remote Support FPGA 106B requesting access.
  • the local BMC 104A waits to receive access from the local and remote Support FPGAs 106A, 106B communications.
  • the local Support FPGA reports that the BMC 104A can access bus N as an active bus
  • the process continues to block B234, where the local BMC 104A can access the bus and communicate with the chosen mid-plane device (for example, Fan FRU 1 118) for a time less than a first timeout period.
  • this first timeout period may be, for example, between about 1 and 256 milliseconds.
  • This first timeout period may be stored in memory 109A according to an aspect.
  • state machine 1 10A may limit initial access for the bus N to this first timeout period, in an aspect.
  • a timer 11 1A located at local SFPGA 106A in an aspect
  • the local BMC 104A may determine whether access will be complete within the first timeout period at block B236. If not, the local BMC 104A checks to see if the total access time is less than a second timeout period at block B238; this total access time may also be maintained by timer 1 11 A. In an aspect, the second timeout period may be, for example, between about 1 and 16 seconds, or greater than the first timeout period. If the local BMC's access time is less than the second timeout period, the local BMC is allowed to restart the first timer at block B240 and continue accessing the bus N back at block B234.
  • the local BMC 104A if the local BMC 104A has completed access (block B236) or has reached the second timeout period (block B238), the local BMC relinquishes control of the bus N and device 114, 116, 118 at block B242. Having the second timeout period helps to prevent the remote controller 102B from being starved from access to the bus N and associated device. In one aspect, the second timeout period cannot be reset by local controller 102A or its BMC 104A. Generally the second timeout period is reset after control of the bus is relinquished, such as for example, when a new request for access to the given bus N is generated.
  • FIG. 1B illustrates a process flow 245 for processing a request to access bus N, according to one aspect. The process begins with the local and remote controllers 102 A, 102B configured and operational.
  • the state machine HOB of remote controller 106B is in an inactive state or a wait state for the bus N (described below with respect to Figure 3).
  • the local controller 102A receives a request to access the bus N and its associated mid-plane device (114, 1 16, or 1 18) from a remote controller 102B.
  • the request is received by the local Support FPGA 106A over a serial communications bus 105 (from the remote Support FPGA 106B).
  • the local Support FPGA 106A determines if it (or its associated local BMC 104A) has an outstanding request to access the same bus N. If the local Support FPGA 106A (or BMC 104A) does not have a similar request outstanding for bus N, then the process proceeds to block B254, and the local Support FPGA 106A responds granting the request to the remote Support FPGA 106B. State machine 1 1 OA is aware of this state, so that local Support FPGA 106A does not allow the local BMC 104A to make its own request for the bus until the state changes to indicate that bus N is free.
  • the controller resolves the conflict by proceeding to block B256.
  • the local Support FPGA 106A determines whether the local controller 102A (or the BMC 102A, in another aspect) is at a particular slot, for example a "Slot A" controller.
  • a particular slot for example a "Slot A" controller.
  • one slot is given primary control or priority over the other (referred to as Slot A) while the other slot receives secondary control (referred to as Slot B).
  • This priority may be a static state, one that can be pre-configured by an administrator, or dynamically configured based on certain conditions, for example.
  • the process continues to block B258, where the local BMC 104A rescinds its own request. In an aspect, this block may be omitted with the local BMC's request simply being denied by the remote Support FPGA 106B, for example. The process continues to block B254, where the request is granted, as described above.
  • the local Support FPGA 106A responds to remote Support FPGA 106B (which forwards it to the remote BMC 104B) denying the request.
  • the local BMC 104A also waits for the remote controller 102B to respond to its own request for access to bus N.
  • there may also be an override feature that may allow the local BMC 104A to simply take control of the bus rather than wait for a response from the remote BMC 104B.
  • the override may only be available to the BMC that has priority.
  • the local BMC 104A may simply wait rather than rescind its own request (at block B258); in such a case, it may periodically loop back to B252 (path not shown) to recheck on the bus N availability. Its request may be granted once the remote Support FPGA 106B has released the bus.
  • Support FPGA 106B maintains state machine 1 10A and remote Support FPGA 106B maintains state machine HOB.
  • the state machine 110A holds indications of the states of each bus (or portion thereof) that can access a mid-plane device 1 14, 1 16, 1 18.
  • Figure 3 illustrates a state diagram 300 in accordance with the methods and systems described herein. This state diagram illustrates the various states for bus access and how the Support FPGA 106A can update the states based on different actions.
  • state machine 1 10A tracks the states for each bus used to access a mid-plane device.
  • each bus N is in an inactive state 370, a wait state 372, a local active state 374, a remote active state 376, or an error state 378.
  • Figure 3 illustrates numerous paths between these states that indicates conditions that can cause the state to change and how. The circled numbers indicate the relative priority for each path, with 1 being the highest priority.
  • a given bus's state is in an inactive state 370 during normal operation without the local or remote BMCs 104A, 104B attempting to access the given bus.
  • the local BMC 104A when the local BMC 104A is reset, the local Support FPGA 106A or the state machine 110A sets the bus state indication to the inactive state 370.
  • the local BMC 104A wishes to access the given bus, it makes a request through the Support FPGA 106A (as described above) and the Support FPGA changes the state to a wait state 372.
  • the remote Support FPGA 106B grants the access request and the local Support FPGA 106A changes the state to the local active state 374.
  • the local Support FPGA 106A can also change the state to the local active state 374 based on a remote override or when the remote controller 106B is not present or responsive.
  • the FPGA 106A or its state machine 11 OA releases the request and return the bus to inactive state 370.
  • the local and remote controllers 106A, 106B resolve the conflict. If the local BMC 104A is "Slot B" and there is also a remote request from remote BMC 104B, then the local Support FPGA 106A cedes control to the remote BMC 104B (by sending a message through remote Support FPGA 106B) and changes state from the wait state 372 to the remote active state 376, indicating that remote BMC 104B is accessing the mid-plane device on the given bus. In that case, the local BMC 104A may indicate that access was denied in an aspect or queue the request to try again later.
  • the remote Support FPGA 106B cedes control to the local BMC 104A, and the local BMC 104A receives a remote grant through local Support FPGA 106A. Finally, in an aspect, if the remote Support FPGA 106B times out on a grant request, the local Support FPGA 106 A changes the state from the wait state 372 to error state 378.
  • Support FPGA 106A When in the local active state, Support FPGA 106A indicates to BMC 104A that it can access the given bus, which it can do according to the process of Figure 2, for example. From the local active state 374, the BMC 104A can complete its task and release the bus, in which case the Local Support FPGA 106A changes the local state machine 1 10A state back to inactive state 370. The local Support FPGA also changes the state to the inactive state 370 if the second timeout period has been surpassed. If there is a problem releasing the bus and that task times out, then the local Support FPGA 374 changes the state to the error state 378.
  • the remote BMC 104B When the local state machine 110A indicates that a given bus is in remote active state 376, the remote BMC 104B is able to access the bus and its mid-plane device. Local BMC 104A requests to access the same bus is denied or queued for later in an aspect.
  • the local Support FPGA 106A changes the state to the inactive state 370, if there are no errors. If there is a remote release timeout or errors that are not cleared, the local Support FPGA changes the state of the bus to the error state 378. For example, when a Support FPGA 106A grants a remote request for access, it may start its own timer 11 1A to track the remote BMC's access time. When it reaches the second timeout period, if it has not received a release from the remote Support FPGA 106B, it may change the state to the error state 378 to indicate that the remote BMC 104B should no longer be accessing the bus.
  • the local Support FPGA 106A can return the bus to the inactive state 370 when errors are cleared or it can change the state to remote active state 376 if it receives a remote request first.
  • Figure 4 illustrates the processes of Figures 2A and 2B generally with breakouts for both the local and remote controller components and their states as described with respect to Figure 3.
  • the process starts at the top and proceeds downward over time.
  • the process starts with firmware on the local BMC 104A requesting Bus N.
  • the states for both the local and remote Support FPGAs 106A, 106B (and their respective state machines 11 OA, 110B) indicate an Inactive State 370.
  • the bus N access request is passed from the BMC 104A across a parallel bus 103 A to local Support FPGA 106A.
  • the local Support FPGA 106A updates the state machine 11 OA to indicate the wait state 372, then passes the request over the serial bus 105 to the remote Support FPGA 106B of the remote controller 102B.
  • the remote Support FPGA 106B updates its state machine 1 10B to indicate that bus N is in the remote active state 376 (because the requesting "local" BMC 104A is actually "remote” to BMC 104B).
  • the remote BMC 104B through its remote Support FPGA 106B, sends a message granting the access request for bus N over the serial bus 105.
  • the local support FPGA 106A receives the grant and updates the state machine
  • the firmware of local BMC 104A can access bus N and retrieve information from, pass information to, or otherwise interact with the mid-plane device on bus N.
  • the firmware of local BMC 104A releases bus N, passing this information across the parallel bus 103 A to the local support FPGA 106A.
  • the appropriate state machine 1 10A entry is updated again to return the state to inactive state 370. It also passes the release across the serial bus 105 to the remote Support FPGA 106B of remote controller 102B, which updates its appropriate state machine HOB entry to also return to the inactive state 370.
  • references throughout this specification to "an aspect” or “one aspect” mean that a particular feature, structure or characteristic described in connection with the aspect is included in at least one embodiment of the present disclosure. Therefore, it is emphasized and should be appreciated that two or more references to “one aspect” or “one aspect” or “an alternative aspect” in various portions of this specification are not necessarily all referring to the same aspect. Furthermore, the particular features, structures or characteristics being referred to may be combined as suitable in one or more aspects of the disclosure, as will be recognized by those of ordinary skill in the art.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

Methods and systems for sharing access to a computer resource accessible by a bus between two controllers are provided. For example, a machine implemented method of sharing access to computer resources includes requesting access to a bus from a processor of a first controller to access a device shared with a processor of a second controller; waiting for a positive response from the second controller; when the positive response is received, accessing the bus for less than a first timeout period; resetting a timer before the timer reaches the first timeout period to extend access to the bus, when access is not complete and a total access time is less than a second timeout period; and releasing the bus when access is complete or the second timeout period has been reached.

Description

METHODS AND SYSTEMS FOR SHARING INFORMATION BETWEEN
PROCESSORS
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority benefit of U.S. Patent Application Serial No.
14/510,859, filed October 9, 2014, which is hereby incorporated by reference in its entirety
FIELD
[0002] The present disclosure relates to communications between processors, and more specifically, to sharing access to resources via a bus interface.
BACKGROUND
[0003] Various forms of storage systems are used today. These forms include direct attached storage (DAS) network attached storage (NAS) systems, storage area networks (SANs), and others. Network storage systems are commonly used for a variety of purposes, such as providing multiple users with access to shared data, backing up data and others.
[0004] A storage system typically includes at least one computing system executing a storage operating system for storing and retrieving data on behalf of one or more client computing systems. The storage operating system stores and manages shared data containers in a set of mass storage devices.
[0005] Storage system hardware is expected provide fast access to stored data, often for multiple clients at once. As such, storage servers often have multiple components to carry out various tasks. These components can only increase flexibility and performance of a system if they are able to handle or preferably prevent conflicts, lock-ups, or the like among simultaneous actions by different components.
For example, a storage— or any other computer— system may include two or more baseboard management controllers (BMCs), which are specialized service processors that monitor the physical state of a computer, server, or other hardware component. BMCs monitor internal physical variables of a computing system, including, for example, temperature, humidity, power- supply voltage, fan speeds, and the like. A BMC can then report issues to a central processing unit (or an administrator) if parameters stray from particular norms.
[0006] BMCs often have to access shared resources, for example, system memory, power supply units, and others to monitor various system parameters. Typically, BMCs do not support a master-slave environment and hence two processors may be able to access the same storage [0007] space that stores information regarding monitored parameters. Continuous efforts are being made to improve communication between controllers in general and BMCs in particular.
SUMMARY
[0008] In one aspect, a machine implemented method of sharing access to computer resources is provided. The method includes requesting, by a processor of a first controller, access to a bus attached to a device from a processor of a second controller, wherein the bus and device are shared by the first and second controllers; waiting for a positive response from the second controller; when the positive response is received, accessing the bus for less than a first timeout period; resetting a timer before the timer reaches the first timeout period to extend access to the bus, when access is not complete and a total access time is less than a second timeout period; and releasing the bus when access is complete or the second timeout period has been reached.
[0009] In another aspect, a non-transitory, machine readable storage medium having stored thereon instructions for performing a method is provided. The machine executable code which when executed by at least one machine, causes the machine to: request, by a processor of a first controller, access to a bus attached to a device from a processor of a second controller, wherein the bus and device are shared by the first and second controllers; wait for a positive response from the second controller; when the positive response is received, access the bus for less than a first timeout period; reset a timer before the timer reaches the first timeout period to extend access to the bus, when access is not complete and a total access time is less than a second timeout period; and release the bus when access is complete or the second timeout period has been reached.
[0010] In yet another aspect, a system having a memory containing machine readable medium comprising machine executable code having stored thereon instructions is provided. A processor module is coupled to the memory and is associated with the first controller. The processor module is configured to execute the machine executable code to operate a first controller to: request access to a bus attached to a device from a processor of a second controller, wherein the bus and device are shared by the first and second controllers; wait for a positive response from the second controller; when the positive response is received, access the device on the bus for less than a first timeout period; reset a timer before the timer reaches the first timeout period to extend access to the bus, when access is not complete and a total access time is less than a second timeout period; and release the bus when access is complete or the second timeout period has been reached. [0011] This brief summary has been provided so that the nature of this disclosure may be understood quickly. A more complete understanding of the disclosure can be obtained by reference to the following detailed description of the various thereof in connection with the attached drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[0012] The foregoing features and other features will now be described with reference to the drawings of the various aspects. In the drawings, the same components have the same reference numerals. The illustrated aspects are intended to illustrate, but not to limit the present disclosure. The drawings include the following Figures:
[0013] Figure 1 provides a block diagram of system used according to an aspect of the present disclosure;
[0014] Figures 2A and 2B illustrate example process flows for a controller interacting with a device shared with another controller, according to one aspect of the present disclosure;
[0015] Figure 3 is an example state diagram according to one aspect of the disclosure; and
[0016] Figure 4 is an example process flow illustrating a negotiation between controllers for bus access, according to one aspect of the present disclosure.
DETAILED DESCRIPTION
[0017] As a preliminary note, the terms "component", "module", "system," and the like as used herein are intended to refer to a computer-related entity, either software-executing general purpose processor, hardware, firmware and a combination thereof. For example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer.
[0018] By way of illustration, both an application running on a server and the server can be a component. One or more components may reside within a process and/or thread of execution, and a component may be localized on one computer and/or distributed between two or more computers. Also, these components can execute from various non-transitory computer readable media having various data structures stored thereon. The components may communicate via local and/or remote processes such as in accordance with a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, distributed system, and/or across a network such as the Internet with other systems via the signal). [0019] Computer executable components can be stored, for example, at non-transitory, computer readable media including, but not limited to, an ASIC (application specific integrated circuit), CD (compact disc), DVD (digital video disk), ROM (read only memory), floppy disk, hard disk, EEPROM (electrically erasable programmable read only memory), memory stick or any other storage device, in accordance with the claimed subject matter.
[0020] Methods and systems for improved processor communication are provided.
While the following disclosure primarily discusses such communication in the context of baseboard management controllers (BMCs), it will be understood that other processor communications and interactions may also benefit from the teachings disclosed herein.
[0021] System 100: Figure 1 illustrates a portion of a computer system 100 comprising two controllers 102A and 102B, each having a BMC 104A and 104B respectively. BMCs 104A and 104B access several devices on a mid-plane accessible via a bus interface, for example, a serial integrated circuit (12 C) bus interface 107A/107B. Specifically, example devices illustrated in Figure 1 include electronically erasable programmable read only memories (EEPROMs) 114, power supply units (PSUs) 116, and fan field replaceable units (FRUs) 1 18.
[0022] Before getting into more detail, it is noteworthy that each controller 102A and
102B may operate in the same manner. In an aspect, depending on the perspective, each can be considered a local controller or a remote controller, where the local controller is the one performing an action and the remote controller is the one to which the action is communicated and/or from which a response is obtained. While either controller will act similarly, for purposes of this discussion, controller 102A is referred to as the local controller, and controller 102B is referred to as the remote controller. As can be seen from Figure 1 , each controller will generally comprise the same components, so this discussion may only refer to one controller or one component by number, but the teachings are equally applicable, unless specifically called out to the contrary.
[0023] With that in mind, in one aspect, controller 102A includes the BMC 104A, a multiplexer/demultiplexer (Mux/Demux, also known as a data selector) module 108A, buffers 112, a support field programmable gate array (Support FPGA or SFPGA) 106A which includes a state machine 1 10A, a central processing unit (CPU) 120A, and memory 122A. In one aspect, BMC 104A is connected to various mid-plane devices (EEPROMs 1 14, PSUs l 16, and Fan FRUs 118, for example) by the I2C bus 107A through the mux/demux module 108A which is used, in combination with buffers 112, to read information from the mid-plane device 1 14, 1 16, and 1 18.
[0024] In one aspect, CPU 120A may be, or may include, one or more programmable general-purpose or special-purpose microprocessors, digital signal processors (DSPs), programmable controllers, application specific integrated circuits (ASICs), programmable logic devices (PLDs), or the like, or a combination of such hardware devices.
[0025] In one aspect, memory 122 A comprises volatile and/or non- volatile memory, such as Random Access Memory (RAM), Read only Memory (ROM), flash memory, an EEPROM, or the like. In one aspect, CPU 120A carries out processes and executes firmware that may be stored in memory 122A. For example, in one aspect, memory 122A may store firmware executed by CPU 122A to communicate with and/or control the BMC 104A.
[0026] BMC 104A accesses devices 114, 116, and 118 via Support FPGA 106A and the data selector module 108A through bus 107A. Data from the mid-plane devices is electrically isolated by buffers 1 12A and read by BMC 104A via the data selector module 108A. In an aspect, the BMC 104A controls buffers 1 12A to select the device with which it will
communicate. In an aspect one BMC 104A may access one device (for example an EEPROM 114) while the other BMC 104B accesses another device (for example a FAN FRU 1 18), but both BMCs cannot access the same device simultaneously without potentially causing problems.
[0027] The local Support FPGA 106A communicates with the remote controller 102B's remote Support FPGA 106B through a serial exchange interface (or bus) 105 to implement arbitration logic to prevent simultaneous access tries to the same device 1 14, 1 16, 1 18. This arbitration logic that may be executed by state machines 1 lOA/110B is described in more detail below.
[0028] State machine 1 10A has access to memory 109 A which stores first and second timeout periods that are used to control device access. State machine 1 10A maintains various states for controlling device access that are described below in detail with respect to Figure 3. In an aspect, Support FPGAs 106A, 106B include connections (either included with serial exchange interface 105 or separate therefrom) that will change values indicating whether a remote Support FPGA is present. These indicators may allow shortcuts or changes to bus access processes when a remote controller 102B and its Support FPGA 106N have been removed or have failed, for example.
[0029] Process Flows: Turning to Figure 2A, process 200 illustrates an example of device access by BMC 104A, 104B, according to an aspect. The process starts with two controllers 102A, 102B configured and running with their BMCs having access to common devices, for example on a mid-plane and accessible through a bus 107A, 107B (and data selector modules 108A, 108B and appropriate buffers 112A, 1 12B), for example an inter-integrated circuit (I2C) bus. Other bus and device configurations are also possible according to other aspects. [0030] At block B230, the local BMC 104A requests access to a bus N, where access to bus N equates to access of one of the mid-plane devices, such as EEPROM 1 14, PSU 1 16, or fan FRU 118 through bus N. In an aspect, this request is initiated by local BMC 104A and passed to local Support FPGA 106A via a parallel bus 103 A. Local Support FPGA 106A sends a message via interface 105 to the remote Support FPGA 106B requesting access.
[0031] At block B232, via serial interface 105 the local BMC 104A waits to receive access from the local and remote Support FPGAs 106A, 106B communications. When the local Support FPGA reports that the BMC 104A can access bus N as an active bus, the process continues to block B234, where the local BMC 104A can access the bus and communicate with the chosen mid-plane device (for example, Fan FRU 1 118) for a time less than a first timeout period. In an aspect, this first timeout period may be, for example, between about 1 and 256 milliseconds. This first timeout period may be stored in memory 109A according to an aspect. Additionally, state machine 1 10A may limit initial access for the bus N to this first timeout period, in an aspect. Further, at block 234, a timer 11 1A (located at local SFPGA 106A in an aspect) may be started.
[0032] As the timer 11 1A runs, the local BMC 104A may determine whether access will be complete within the first timeout period at block B236. If not, the local BMC 104A checks to see if the total access time is less than a second timeout period at block B238; this total access time may also be maintained by timer 1 11 A. In an aspect, the second timeout period may be, for example, between about 1 and 16 seconds, or greater than the first timeout period. If the local BMC's access time is less than the second timeout period, the local BMC is allowed to restart the first timer at block B240 and continue accessing the bus N back at block B234.
[0033] On the other hand, if the local BMC 104A has completed access (block B236) or has reached the second timeout period (block B238), the local BMC relinquishes control of the bus N and device 114, 116, 118 at block B242. Having the second timeout period helps to prevent the remote controller 102B from being starved from access to the bus N and associated device. In one aspect, the second timeout period cannot be reset by local controller 102A or its BMC 104A. Generally the second timeout period is reset after control of the bus is relinquished, such as for example, when a new request for access to the given bus N is generated.
[0034] In an aspect, if the BMC 104A does not relinquish its control, the Support FPGA
106A and its state machine 1 10A may force it out and set an error condition for the particular bus/device. Further, in an aspect, the state machine 1 10A may not allow the BMC 104A to access the same device again unless it acknowledges the error and resets the error condition. If local BMC 104A requires more time with a mid-plane device, it restarts the process and negotiates with the remote controller 102B for an additional access time. [0035] Figure 2B illustrates a process flow 245 for processing a request to access bus N, according to one aspect. The process begins with the local and remote controllers 102 A, 102B configured and operational. The state machine HOB of remote controller 106B is in an inactive state or a wait state for the bus N (described below with respect to Figure 3). At block B250, the local controller 102A receives a request to access the bus N and its associated mid-plane device (114, 1 16, or 1 18) from a remote controller 102B. In an aspect, the request is received by the local Support FPGA 106A over a serial communications bus 105 (from the remote Support FPGA 106B).
[0036] At block B252, the local Support FPGA 106A determines if it (or its associated local BMC 104A) has an outstanding request to access the same bus N. If the local Support FPGA 106A (or BMC 104A) does not have a similar request outstanding for bus N, then the process proceeds to block B254, and the local Support FPGA 106A responds granting the request to the remote Support FPGA 106B. State machine 1 1 OA is aware of this state, so that local Support FPGA 106A does not allow the local BMC 104A to make its own request for the bus until the state changes to indicate that bus N is free.
[0037] If the local BMC 104A does have an outstanding request for the same bus, then there may be a conflict, likely that both local and remote BMCs 104A, 104B have made a simultaneous or nearly simultaneous request for the same bus. In this case, the controller resolves the conflict by proceeding to block B256.
[0038] At block B256, the local Support FPGA 106A determines whether the local controller 102A (or the BMC 102A, in another aspect) is at a particular slot, for example a "Slot A" controller. In an aspect, one slot is given primary control or priority over the other (referred to as Slot A) while the other slot receives secondary control (referred to as Slot B). This priority may be a static state, one that can be pre-configured by an administrator, or dynamically configured based on certain conditions, for example.
[0039] If the local controller does not have priority, the process continues to block B258, where the local BMC 104A rescinds its own request. In an aspect, this block may be omitted with the local BMC's request simply being denied by the remote Support FPGA 106B, for example. The process continues to block B254, where the request is granted, as described above.
[0040] If the local BMC 104A does have priority, then the process proceeds to block
B260, where the local Support FPGA 106A responds to remote Support FPGA 106B (which forwards it to the remote BMC 104B) denying the request. The local BMC 104A also waits for the remote controller 102B to respond to its own request for access to bus N. In an aspect, there may also be an override feature that may allow the local BMC 104A to simply take control of the bus rather than wait for a response from the remote BMC 104B. In an aspect, the override may only be available to the BMC that has priority. In still another aspect, when the local BMC 104A does not have priority of access, it may simply wait rather than rescind its own request (at block B258); in such a case, it may periodically loop back to B252 (path not shown) to recheck on the bus N availability. Its request may be granted once the remote Support FPGA 106B has released the bus.
[0041] For effective communication between the local Support FPGA 106A and remote
Support FPGA 106B, as mentioned above, Support FPGA 106A maintains state machine 1 10A and remote Support FPGA 106B maintains state machine HOB. As set forth above, the state machine 110A holds indications of the states of each bus (or portion thereof) that can access a mid-plane device 1 14, 1 16, 1 18. Figure 3 illustrates a state diagram 300 in accordance with the methods and systems described herein. This state diagram illustrates the various states for bus access and how the Support FPGA 106A can update the states based on different actions. In an aspect, state machine 1 10A tracks the states for each bus used to access a mid-plane device.
[0042] In one aspect as illustrated, each bus N is in an inactive state 370, a wait state 372, a local active state 374, a remote active state 376, or an error state 378. Figure 3 illustrates numerous paths between these states that indicates conditions that can cause the state to change and how. The circled numbers indicate the relative priority for each path, with 1 being the highest priority.
[0043] Generally, a given bus's state is in an inactive state 370 during normal operation without the local or remote BMCs 104A, 104B attempting to access the given bus. As shown for example, when the local BMC 104A is reset, the local Support FPGA 106A or the state machine 110A sets the bus state indication to the inactive state 370. When the local BMC 104A wishes to access the given bus, it makes a request through the Support FPGA 106A (as described above) and the Support FPGA changes the state to a wait state 372. Under normal operation, the remote Support FPGA 106B grants the access request and the local Support FPGA 106A changes the state to the local active state 374. The local Support FPGA 106A can also change the state to the local active state 374 based on a remote override or when the remote controller 106B is not present or responsive.
[0044] On the other hand, if the local BMC 104A cancels the request, the local Support
FPGA 106A or its state machine 11 OA releases the request and return the bus to inactive state 370. When the local Support FPGA 106A both sends a bus access request and receives one for the same bus simultaneously, the local and remote controllers 106A, 106B resolve the conflict. If the local BMC 104A is "Slot B" and there is also a remote request from remote BMC 104B, then the local Support FPGA 106A cedes control to the remote BMC 104B (by sending a message through remote Support FPGA 106B) and changes state from the wait state 372 to the remote active state 376, indicating that remote BMC 104B is accessing the mid-plane device on the given bus. In that case, the local BMC 104A may indicate that access was denied in an aspect or queue the request to try again later.
[0045] If the local BMC 104A is "Slot A" and there is also a remote request from remote BMC 104B, then the remote Support FPGA 106B cedes control to the local BMC 104A, and the local BMC 104A receives a remote grant through local Support FPGA 106A. Finally, in an aspect, if the remote Support FPGA 106B times out on a grant request, the local Support FPGA 106 A changes the state from the wait state 372 to error state 378.
[0046] When in the local active state, Support FPGA 106A indicates to BMC 104A that it can access the given bus, which it can do according to the process of Figure 2, for example. From the local active state 374, the BMC 104A can complete its task and release the bus, in which case the Local Support FPGA 106A changes the local state machine 1 10A state back to inactive state 370. The local Support FPGA also changes the state to the inactive state 370 if the second timeout period has been surpassed. If there is a problem releasing the bus and that task times out, then the local Support FPGA 374 changes the state to the error state 378.
[0047] When the local state machine 110A indicates that a given bus is in remote active state 376, the remote BMC 104B is able to access the bus and its mid-plane device. Local BMC 104A requests to access the same bus is denied or queued for later in an aspect.
[0048] When the remote Support FPGA 106B indicates that it is releasing the bus, the local Support FPGA 106A changes the state to the inactive state 370, if there are no errors. If there is a remote release timeout or errors that are not cleared, the local Support FPGA changes the state of the bus to the error state 378. For example, when a Support FPGA 106A grants a remote request for access, it may start its own timer 11 1A to track the remote BMC's access time. When it reaches the second timeout period, if it has not received a release from the remote Support FPGA 106B, it may change the state to the error state 378 to indicate that the remote BMC 104B should no longer be accessing the bus.
[0049] From the error state 378, the local Support FPGA 106A can return the bus to the inactive state 370 when errors are cleared or it can change the state to remote active state 376 if it receives a remote request first.
[0050] Figure 4 illustrates the processes of Figures 2A and 2B generally with breakouts for both the local and remote controller components and their states as described with respect to Figure 3. Generally, the process starts at the top and proceeds downward over time. The process starts with firmware on the local BMC 104A requesting Bus N. At this point, the states for both the local and remote Support FPGAs 106A, 106B (and their respective state machines 11 OA, 110B) indicate an Inactive State 370. The bus N access request is passed from the BMC 104A across a parallel bus 103 A to local Support FPGA 106A. The local Support FPGA 106A updates the state machine 11 OA to indicate the wait state 372, then passes the request over the serial bus 105 to the remote Support FPGA 106B of the remote controller 102B.
[0051] The remote Support FPGA 106B updates its state machine 1 10B to indicate that bus N is in the remote active state 376 (because the requesting "local" BMC 104A is actually "remote" to BMC 104B). The remote BMC 104B, through its remote Support FPGA 106B, sends a message granting the access request for bus N over the serial bus 105.
[0052] The local support FPGA 106A receives the grant and updates the state machine
110A once again to the local active state 374. It communicates this grant to the firmware over the parallel bus 103 A. At this point, the firmware of local BMC 104A can access bus N and retrieve information from, pass information to, or otherwise interact with the mid-plane device on bus N. When it is done (or times out), the firmware of local BMC 104A releases bus N, passing this information across the parallel bus 103 A to the local support FPGA 106A. The appropriate state machine 1 10A entry is updated again to return the state to inactive state 370. It also passes the release across the serial bus 105 to the remote Support FPGA 106B of remote controller 102B, which updates its appropriate state machine HOB entry to also return to the inactive state 370.
[0053] Thus, methods and systems for preventing simultaneous access to the same device by multiple controllers have been described. Note that references throughout this specification to "an aspect" or "one aspect" mean that a particular feature, structure or characteristic described in connection with the aspect is included in at least one embodiment of the present disclosure. Therefore, it is emphasized and should be appreciated that two or more references to "one aspect" or "one aspect" or "an alternative aspect" in various portions of this specification are not necessarily all referring to the same aspect. Furthermore, the particular features, structures or characteristics being referred to may be combined as suitable in one or more aspects of the disclosure, as will be recognized by those of ordinary skill in the art. It is also important to note that the process flow diagrams and discussion are only examples and different process steps may be rearranged, combined, or split into multiple processes in different aspects without detracting from the spirit of the teachings herein. This similarly applies to components and modules described herein, which are particular examples of ideas that can be implemented with more or fewer components and/or the components described controlling different aspects of the processes and teachings herein.
[0054] While the present disclosure is described above with respect to what is currently considered its preferred aspects, it is to be understood that the disclosure is not limited to that described above. To the contrary, the disclosure is intended to cover various modifications and equivalent arrangements within the spirit and scope of the appended claims.

Claims

CLAIMS What is Claimed is:
1. A machine implemented method of sharing access to computer resources, comprising:
requesting, by a processor of a first controller, access to a bus attached to a device from a processor of a second controller, wherein the bus and device are shared by the first and second controllers;
waiting for a positive response from the second controller;
when the positive response is received, accessing the bus for less than a first timeout period;
resetting a timer before the timer reaches the first timeout period to extend access to the bus, when access is not complete and a total access time is less than a second timeout period; and
releasing the bus when access is complete or the second timeout period has been reached.
2. The method of Claim 1, wherein the bus is an inter- integrated circuit
(I2C) bus.
3. The method of Claim 1 or Claim 2, further comprising:
the second controller receiving the bus access request;
the second controller determining whether it has also requested access to the bus; and
the second controller sending the positive response when it has not requested access to the bus.
4. The method of Claim 3, further comprising:
the second controller determining its priority, when it has also requested access to the bus;
when it has priority, the second controller sending a negative response to the bus access request and waiting to receive a positive response to the second controller's bus access request; and
when it does not have priority, the second controller sending the positive response to the bus access request and rescinding the second controller's bus access request.
5. The method of any one of Claims 1 to 4, further comprising:
tracking an indication of a state of the bus, wherein the state comprises at least one of: inactive, waiting, local active, and remote active.
6. The method of Claim 5, wherein requesting access to a bus occurs when the indication indicates the bus is in an inactive state.
7. The method of Claim 5 or Claim 6, further comprising:
updating the indication of the state of the bus to represent waiting, when requesting access to a bus; and
updating the indication of the state of the bus to represent local active when the positive response is received.
8. A computer program product comprising instructions for performing a method, comprising machine executable code which when executed by at least one machine, causes the machine to:
request, by a processor of a first controller, access to a bus attached to a device from a processor of a second controller, wherein the bus and device are shared by the first and second controllers;
wait for a positive response from the second controller;
when the positive response is received, access the bus for less than a first timeout period;
reset a timer before the timer reaches the first timeout period to extend access to the bus, when access is not complete and a total access time is less than a second timeout period; and
release the bus when access is complete or the second timeout period has been reached.
9. The computer program product of Claim 8, wherein the bus is an I2C bus.
10. The computer program product of Claim 8 or Claim 9, further comprising instructions which cause the second controller to:
receive the bus access request;
determine whether it has also requested access to the bus; and
send the positive response when it has not requested access to the bus.
11. The computer program product of Claim 10, further comprising instructions for the second controller to:
determine its priority, when it has also requested access to the bus; when it has priority, send a negative response to the bus access request and wait to receive a positive response to the second controller's bus access request; and
when it does not have priority, send the positive response to the bus access request and rescind the second controller's bus access request.
12. The computer program product of any one of Claims 8 to 11, further comprising instructions to track an indication of the state of the bus, wherein the state comprises at least one of: inactive, waiting, local active, and remote active.
13. The computer program product of Claim 12, wherein requesting access to a bus occurs when the indication indicates the bus is in an inactive state.
14. The computer program product of Claim 12 or Claim 13, further comprising instructions to:
update the indication of the state of the bus to represent waiting, when requesting access to a bus; and
update the indication of the state of the bus to represent local active when the positive response is received.
15. A system comprising:
a memory containing machine executable code having stored thereon instructions; and
a processor module coupled to the memory, the processor module associated with a first controller and configured to execute the machine executable code to:
request access to a bus attached to a device from a processor of a second controller, wherein the bus and device are shared by the first and second controllers;
wait for a positive response from the second controller;
when the positive response is received, access the device on the bus for less than a first timeout period;
reset a timer before the timer reaches the first timeout period to extend access to the bus, when access is not complete and a total access time is less than a second timeout period; and release the bus when access is complete or the second timeout period has been reached.
16. The system of Claim 15, further comprising:
a second memory containing machine readable medium comprising second machine executable code having stored thereon instructions, the second memory associated with the second controller; and
a second processor module coupled to the second memory, the second processor module associated with the second controller and configured to execute the machine executable code to:
receive the bus access request from the first controller;
determine whether the second controller has also requested access to the bus; send the positive response when the second controller has not requested access to the bus.
17. The system of Claim 16, further comprising machine executable code to: determine a priority between the first and second controllers, when the second controller has also requested access to the bus;
when the second controller has priority, send a negative response to the bus access request to the first controller and wait to receive a positive response to the second controller's bus access request; and
when the second controller does not have priority, send the positive response to the bus access request to the first controller and rescind the second controller's bus access request.
18. The system of any one of Claims 15 to 18, further comprising executable code to track an indication of the state of the bus, wherein the state comprises at least one of: inactive, waiting, local active, and remote active.
19. The system of Claim 18, wherein requesting access to a bus occurs when the indication indicates the bus is in an inactive state.
20. The system of Claim 18 or Claim 19, wherein the processor is further configured to: update the indication of the state of the bus to represent waiting, when requesting access to a bus; and
update the indication of the state of the bus to represent local active when the positive response is received.
PCT/US2015/051607 2014-10-09 2015-09-23 Methods and systems for sharing information between processors Ceased WO2016057217A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/510,589 2014-10-09
US14/510,589 US20150151613A1 (en) 2013-12-02 2014-10-09 Controlling system for transparency of vehicle window and method for adjusting transparency of vehicle window

Publications (1)

Publication Number Publication Date
WO2016057217A1 true WO2016057217A1 (en) 2016-04-14

Family

ID=54325667

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2015/051607 Ceased WO2016057217A1 (en) 2014-10-09 2015-09-23 Methods and systems for sharing information between processors

Country Status (1)

Country Link
WO (1) WO2016057217A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6484217B1 (en) * 1999-04-20 2002-11-19 International Business Machines Corporation Managing shared devices in a data processing system
US20040237006A1 (en) * 2003-05-09 2004-11-25 Adkisson Richard W. System and method for determining transaction time-out
US20110202924A1 (en) * 2010-02-17 2011-08-18 Microsoft Corporation Asynchronous Task Execution

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6484217B1 (en) * 1999-04-20 2002-11-19 International Business Machines Corporation Managing shared devices in a data processing system
US20040237006A1 (en) * 2003-05-09 2004-11-25 Adkisson Richard W. System and method for determining transaction time-out
US20110202924A1 (en) * 2010-02-17 2011-08-18 Microsoft Corporation Asynchronous Task Execution

Similar Documents

Publication Publication Date Title
US9110717B2 (en) Managing use of lease resources allocated on fallover in a high availability computing environment
JP5874879B2 (en) I/O device control method and virtual computer system
US10430248B2 (en) Proactive high availability in a virtualized computer system
US10243780B2 (en) Dynamic heartbeating mechanism
US8788579B2 (en) Clustered client failover
US8726276B2 (en) Resetting a virtual function that is hosted by an input/output adapter
US8635318B1 (en) Message broadcast protocol which handles configuration changes in a cluster of virtual servers
JP2019149192A (en) System for managing and scheduling containers
US9912535B2 (en) System and method of performing high availability configuration and validation of virtual desktop infrastructure (VDI)
CN105393212B (en) The method, system and storage medium of efficient task scheduling are carried out using locking mechanism
US20120144232A1 (en) Generation of Standby Images of Applications
EP4208775A1 (en) Disaggregated memory pool assignment
EP3803663B1 (en) Watchdog timer hierarchy
US11714632B2 (en) Action execution based on management controller action request
US9529656B2 (en) Computer recovery method, computer system, and storage medium
US10169069B2 (en) System level update protection based on VM priority in a multi-tenant cloud environment
WO2015052836A1 (en) Storage device and failover method
KR101137085B1 (en) Managing of an initial program load in a logical partition of data storage system, a storage controller, and a computer readable storage medium
US10002098B2 (en) Methods and systems for sharing information between processors
US9032484B2 (en) Access control in a hybrid environment
EP3871087B1 (en) Managing power request during cluster operations
WO2016057217A1 (en) Methods and systems for sharing information between processors
WO2025029697A1 (en) On demand serverless container based storage transfer
US10200304B1 (en) Stateless witness for multiple sites
JP2015060474A (en) Information processing handover control device, information processing handover control method, and information processing handover control program

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15781189

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15781189

Country of ref document: EP

Kind code of ref document: A1