U.S. patent application number 12/051634 was filed with the patent office on 2009-08-27 for buffer discovery in a parrallel multi-tasking multi-processor environment.
This patent application is currently assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION. Invention is credited to Richard K. Errickson, Leonard W. Helmer, JR., John S. Houston, Ambrose A. Verdibello, JR..
Application Number | 20090216893 12/051634 |
Document ID | / |
Family ID | 40999405 |
Filed Date | 2009-08-27 |
United States Patent
Application |
20090216893 |
Kind Code |
A1 |
Errickson; Richard K. ; et
al. |
August 27, 2009 |
BUFFER DISCOVERY IN A PARRALLEL MULTI-TASKING MULTI-PROCESSOR
ENVIRONMENT
Abstract
A computer program product, apparatus and method for buffer
discovery in a multi-tasking multi-processor environment. An
exemplary embodiment includes establishing a management connection,
confirming that end points of the management connection are
connected to respective targets, sending a negotiate counts
message, including a number and size of buffers associated with
parameters of the management connection and receiving a response to
the negotiate counts message, the response including at least one
of rejection of the management connection and an acceptance of the
management connection, including an agreed number and size of the
buffers.
Inventors: |
Errickson; Richard K.;
(Poughkeepsie, NY) ; Helmer, JR.; Leonard W.;
(Stone Ridge, NY) ; Houston; John S.; (Hopewell
Junction, NY) ; Verdibello, JR.; Ambrose A.;
(Millbrook, NY) |
Correspondence
Address: |
CANTOR COLBURN LLP-IBM POUGHKEEPSIE
20 Church Street, 22nd Floor
Hartford
CT
06103
US
|
Assignee: |
INTERNATIONAL BUSINESS MACHINES
CORPORATION
Armonk
NY
|
Family ID: |
40999405 |
Appl. No.: |
12/051634 |
Filed: |
March 19, 2008 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61031315 |
Feb 25, 2008 |
|
|
|
Current U.S.
Class: |
709/230 |
Current CPC
Class: |
G06F 9/546 20130101;
G06F 2209/548 20130101 |
Class at
Publication: |
709/230 |
International
Class: |
G06F 15/16 20060101
G06F015/16 |
Claims
1. A computer program product for identifying sizes and number of
buffers across a communication link in a multi-tasking
multi-processor environment, the computer program product
comprising: a tangible storage medium readable by a processing
circuit and storing instructions for execution by the processing
circuit for performing a method comprising: establishing a
management connection; confirming that end points of the management
connection are connected to respective targets; sending a negotiate
counts message, including a number and size of buffers associated
with parameters of the management connection; and receiving a
response to the negotiate counts message, the response including at
least one of rejection of the management connection and an
acceptance of the management connection, including an agreed number
and size of the buffers.
2. The computer program product as claimed in claim 1, wherein the
method further comprises in response to a mismatch in the number of
buffers, setting a lesser number of buffers in the management
connection.
3. The computer program product as claimed in claim 1, wherein the
method further comprises in response to a buffer size mismatch,
selecting a smaller buffer size as the buffer size.
4. The computer program product as claimed in claim 1, wherein the
acceptance of the connection includes a smaller number of selected
buffers and a smaller size of the selected buffers.
5. The computer program product as claimed in claim 4, wherein the
method further comprises: accepting the connection; and storing the
agreed number and size of the buffers.
6. The computer program product as claimed in claim 4, wherein the
method further comprises creating and connecting queue pairs
associated with each of the buffers.
7. The computer program product as claimed in claim 4, wherein the
method further comprises sending a node descriptor.
8. The computer program product as claimed in claim 1, wherein the
rejection of the connection includes a request to drop the
connection.
9. The computer program product as claimed in claim 8, wherein the
method further comprises dropping the connection.
10. An apparatus for identifying sizes and number of buffers across
a communication link in a multi-tasking multi-processor
environment, the apparatus comprising: a connection manager
performing a method comprising: establishing a management
connection; confirming that end points of the management connection
are connected to respective targets; sending a negotiate counts
message, including a number and size of buffers associated with
parameters of the management connection; and receiving a response
to the negotiate counts message, the response including at least
one of rejection of the management connection and an acceptance of
the management connection, including an agreed number and size of
the buffers.
11. The apparatus as claimed in claim 10 wherein the method further
comprises: accepting the connection, wherein the acceptance of the
connection includes a smaller number of selected buffers and a
smaller size of the selected buffers. storing an agreed number and
size of the buffers; and creating and connecting queue pairs
associated with each of the buffers.
12. The apparatus as claimed in claim 10, wherein the method
further comprises: rejecting the connection; and dropping the
connection.
13. A method for identifying sizes and number of buffers across a
communication link in a multi-tasking multi-processor environment,
the method comprising: establishing a management connection;
confirming that end points of the management connection are
connected to respective targets; sending a negotiate counts
message, including a number and size of buffers associated with
parameters of the management connection; and receiving a response
to the negotiate counts message, the response including at least
one of rejection of the management connection and an acceptance of
the management connection, including an agreed number and size of
the buffers.
14. The method as claimed in claim 13, further comprising in
response to a mismatch in the number of buffers, setting a lesser
number of buffers in the management connection.
15. The method as claimed in claim 13, further comprising in
response to a buffer size mismatch, selecting a smaller buffer size
as the buffer size.
16. The method as claimed in claim 13, wherein the acceptance of
the connection includes a smaller number of selected buffers and a
smaller size of the selected buffers.
17. The method as claimed in claim 16, further comprising:
accepting the connection; and storing the agreed number and size of
the buffers.
18. The method as claimed in claim 16, further comprising creating
and connecting queue pairs associated with each of the buffers.
19. The method as claimed in claim 13, wherein the rejection of the
connection includes a request to drop the connection.
20. The method as claimed in claim 19, further comprising dropping
the connection
Description
[0001] Priority based on U.S. Provisional Patent Application, Ser.
No. 61/031,315, filed Feb. 25, 2008, and entitled "MULTI-TASKING
MULTI-PROCESSOR ENVIRONMENTS OVER INFINIBAND" is claimed, the
entire contents of which is incorporated by reference in its
entirety.
BACKGROUND OF THE INVENTION
[0002] 1. Field of Invention
[0003] The present disclosure relates generally to multi-tasking
multi-processor environments, and in particular, to buffer
discovery in a multi-tasking multi-processor environment.
[0004] 2. Description of Background
[0005] In a multi-tasking multi-processor environment there is a
need to confirm that the configuration of the connections on the
two ends of the link is in agreement before the links come up. In
current multi-tasking multi-processor coupling, technology this is
handled by the Set Buffer Sizes command and a single channel
associated with each hardware link.
[0006] Furthermore, the ever increasing speed of links, together
with the greater distances raises the desire to keep the
communications channel as busy as possible at all times. The buffer
interface of a multi-tasking multi-processor environment is an
exchange interface, which means that a single buffer must wait for
round trip transport as well as processing time before the buffer
may be used again. For this reason, there is a desire to add more
buffers to each channel in order to keep the channel as busy as
possible. Currently, there is no way to adjust the number of
buffers assigned to a channel based upon the characteristics of the
link.
BRIEF SUMMARY OF THE INVENTION
[0007] An exemplary embodiment includes a computer program product
for identifying sizes and number of buffers across a communication
link in a multi-tasking multi-processor environment, the computer
program product including a tangible storage medium readable by a
processing circuit and storing instructions for execution by the
processing circuit for performing a method including establishing a
management connection, confirming that end points of the management
connection are connected to respective targets, sending a negotiate
counts message, including a number and size of buffers associated
with parameters of the management connection and receiving a
response to the negotiate counts message, the response including at
least one of rejection of the management connection and an
acceptance of the management connection, including an agreed number
and size of the buffers.
[0008] Another exemplary embodiment includes an apparatus for
identifying sizes and number of buffers across a communication link
in a multi-tasking multi-processor environment, the apparatus
including a connection manager performing a method including
establishing a management connection, confirming that end points of
the management connection are connected to respective targets,
sending a negotiate counts message, including a number and size of
buffers associated with parameters of the management connection and
receiving a response to the negotiate counts message, the response
including at least one of rejection of the management connection
and an acceptance of the management connection, including an agreed
number and size of the buffers.
[0009] A further exemplary embodiment includes a method for
identifying sizes and number of buffers across a communication link
in a multi-tasking multi-processor environment, the method
including establishing a management connection, confirming that end
points of the management connection are connected to respective
targets, sending a negotiate counts message, including a number and
size of buffers associated with parameters of the management
connection and receiving a response to the negotiate counts
message, the response including at least one of rejection of the
management connection and an acceptance of the management
connection, including an agreed number and size of the buffers.
[0010] Other articles of manufacture, apparatuses, and/or methods
according to embodiments will be or become apparent to one with
skill in the art upon review of the following drawings and detailed
description. It is intended that all such additional articles of
manufacture, apparatuses, and/or methods be included within this
description, be within the scope of the present invention, and be
protected by the accompanying claims.
BRIEF DESCRIPTION OF THE DRAWINGS
[0011] The subject matter which is regarded as the invention is
particularly pointed out and distinctly claimed in the claims at
the conclusion of the specification. The foregoing and other
objects, features, and advantages of the invention are apparent
from the following detailed description taken in conjunction with
the accompanying drawings in which:
[0012] FIG. 1A illustrates an exemplary embodiment of a
multi-tasking multi-processor Infiniband system;
[0013] FIG. 1B illustrates an example of a multi-tasking
multi-processor environment;
[0014] FIG. 1C illustrates an example of a multi-tasking
multi-processor environment in accordance with an exemplary
embodiment;
[0015] FIG. 1D illustrates an example of a multi-tasking
multi-processor environment in accordance with an exemplary
embodiment;
[0016] FIG. 2 illustrates a flow chart of a method for identifying
sizes and number of buffers across a communication link in a
multi-tasking multi-processor environment in accordance with
exemplary embodiments;
[0017] FIG. 3 illustrates an example of a message exchange in
accordance with exemplary embodiments; and
[0018] FIG. 4 depicts one embodiment of an article of manufacture
incorporating one or more aspects of the present invention.
[0019] The detailed description explains the preferred embodiments
of the invention, together with advantages and features, by way of
example with reference to the drawings.
DETAILED DESCRIPTION OF THE INVENTION
[0020] In accordance with an aspect of the present invention, the
systems and methods described herein provide auto-discovery of the
sizes and number of buffers that may be shared across a single
communications channel. This exchange takes place across a
management connection associated with the channel. In exemplary
embodiments, the management connection is the first connection made
across the channel. This connection confirms that the end points
are properly connected to their intended targets. Once this
confirmation is made, the ends negotiate the number of, and the
size of the buffers that are to be connected for this channel. If
there is a mismatch in the number of buffers, then the lesser
number is used. If the buffer sizes do not match, then the smaller
size is selected.
[0021] FIG. 1A illustrates an exemplary embodiment of a
multi-tasking multi-processor Infiniband system 100. The system 100
can include an operating system 105 (e.g., IBM zOS) having a top
layer including a relational database 101 a logging facility 102, a
locking facility 103 and a cross system coupling facility (XCF).
The operating system 105 can further include a multiple virtual
storage (MVS) services layer 107 and a message facility layer 108.
The system 100 can further include a coupling facility (CF) 110
having a CF structures layer 111, a link subsystem 112 and a
message architecture extensions layer 113. In an exemplary
embodiment, a transport layer 115 is disposed between and couples
the operating system 105 and the CF 110. In an exemplary
implementation, the transport layer 115 is supported by Infiniband.
FIG. 1B illustrates an example of a multi-tasking multi-processor
environment. The example shows three mainframes A, B, C connected
into a two different Parallel Sysplex environments using the
previous generation of coupling transports. zOS A, zOS B and zOS F
are all tied together through a Coupling Facility (CF1). zOS C and
zOS D are tied together through CF2. Meanwhile zOS E is a stand
alone operating system. In this configuration separate channels are
connected through separate adapters in the separate frames. It is
appreciated that multiple internal channels 116, 117, 118 include
separate external connections 120. FIG. 1C illustrates an example
of a multi-tasking multi-processor environment in accordance with
an exemplary embodiment. In this example, multiple internal
channels 121, 122, 123 share the same physical connection. 125.
FIG. 1D illustrates an example of a multi-tasking multi-processor
environment 150 in accordance with an exemplary embodiment. The
environment 150 can include one or more channels 155, each channel
including command/response areas 156, data buffers 157,
receive/send queues 158 and adapters 160 for mapping the channels
155 to ports 161 and ultimately communication links 162, as
discussed further herein. The channels 155 can further include
queue pairs 159 as discussed further herein. The system 150 can
further include control code 165 having functions including but not
limited to: rendezvous 166, auxiliary queue 167, channel 168,
discovery 169 and subnet administrator 170.
[0022] FIG. 2 illustrates a flow chart of a method 200 for
identifying sizes and number of buffers across a communication link
in a multi-tasking multi-processor environment in accordance with
exemplary embodiments. At block 210, the system 200 establishes a
management connection between an active end and a passive end. At
block 220, the system 200 confirms that end points of the
management connection are connected to respective targets. At block
230, the active end sends a negotiate counts message, including a
number and size of buffers associated with parameters of the
management connection. At block 240, the active end receives a
response to the negotiate counts message, the response including a
rejection of the management connection or an acceptance of the
management connection, including an agreed number and size of the
buffers.
[0023] In an exemplary embodiment, upon establishing the management
connection using the management queue pair denoted in FIG. 3 as Aux
QP (or Auxiliary Queue Pair), the management connection completes
initialization of its management control block (Auxiliary Queue
Control Block or AQCB) and posts Work Queue Elements (WQEs) which
will be available to receive packets from its partner. Once this is
complete, the end point designated by the Infiniband connection
manager as the active end sends a Negotiate Counts message, with
the number and size of buffers that were specified in its
configuration, to its partner. Upon receipt of the Negotiate Counts
message, the passive end compares the information in the packet
with those from its own configuration. FIG. 3 illustrates an
example of a message exchange in accordance with exemplary
embodiments. In an exemplary embodiment, upon receipt of the
Negotiate Request packet, the passive end can choose to either
accept or reject the connection. If it chooses to accept the
connection, then it selects the smaller of the number of buffers
and the size of buffers, sets up those parameters in its own
structures, and respond to the active side with the agreed upon
number and size of the buffers and prepares to start connecting the
queue pairs associated with the buffers. If it decides not to
accept the connection, then it requests the connection manager to
drop the connection. When the active side receives the response
message, it too can either accept or reject the parameters. If it
rejects the connection, then the link is dropped. If it accepts the
agreement, then it will ensure that the agreed upon parameters are
stored. Assuming that all goes well through the negotiation, the
active end will start creating and connecting the queue pairs
associated with each of the buffers.
[0024] When the last of the buffer queue pairs has been connected,
the active end will generate a Node Descriptor (ND) message
containing data pertinent to the software layers that will be using
the channel, and sends that message to the passive partner. Upon
receipt of the Node Descriptor message, the passive end will save
that data, notify the higher layer software (in this case the I/O
Processor or IOP) of its arrival, and then generate its own Node
Descriptor message and send it to the active end. Upon receiving
the Node Descriptor, the active end will save the data and notify
the higher layer software of its arrival. At this point the buffers
of the channel are available for sending and receiving application
data.
[0025] This same methodology could be used in a number of other
communications environments where communications pathways are
bundled, and there is an ability to use an out of band connection
to set up and manage the communications channel.
[0026] Technical effects of exemplary embodiments include the
ability to add more buffers to each channel in order to keep the
channel as busy as possible. In addition the exemplary embodiments
include the ability to adjust the number of buffers assigned to a
channel based upon the characteristics of the link.
[0027] This approach significantly improves upon the limited
capability contained in the support for the previous coupling
technologies.
[0028] As described above, embodiments can be embodied in the form
of computer-implemented processes and apparatuses for practicing
those processes. In exemplary embodiments, the invention is
embodied in computer program code executed by one or more network
elements. Embodiments include a computer program product 400 as
depicted in FIG. 4 on a computer usable medium 402 with computer
program code logic 404 containing instructions embodied in tangible
media as an article of manufacture. Exemplary articles of
manufacture for computer usable medium 402 may include floppy
diskettes, CD-ROMs, hard drives, universal serial bus (USB) flash
drives, or any other computer-readable storage medium, wherein,
when the computer program code logic 404 is loaded into and
executed by a computer, the computer becomes an apparatus for
practicing the invention. Embodiments include computer program code
logic 404, for example, whether stored in a storage medium, loaded
into and/or executed by a computer, or transmitted over some
transmission medium, such as over electrical wiring or cabling,
through fiber optics, or via electromagnetic radiation, wherein,
when the computer program code logic 404 is loaded into and
executed by a computer, the computer becomes an apparatus for
practicing the invention. When implemented on a general-purpose
microprocessor, the computer program code logic 404 segments
configure the microprocessor to create specific logic circuits.
[0029] While the invention has been described with reference to
exemplary embodiments, it will be understood by those skilled in
the art that various changes may be made and equivalents may be
substituted for elements thereof without departing from the scope
of the invention. In addition, many modifications may be made to
adapt a particular situation or material to the teachings of the
invention without departing from the essential scope thereof.
Therefore, it is intended that the invention not be limited to the
particular embodiment disclosed as the best mode contemplated for
carrying out this invention, but that the invention will include
all embodiments falling within the scope of the appended claims.
Moreover, the use of the terms first, second, etc. do not denote
any order or importance, but rather the terms first, second, etc.
are used to distinguish one element from another. Furthermore, the
use of the terms a, an, etc. do not denote a limitation of
quantity, but rather denote the presence of at least one of the
referenced item.
* * * * *