1. Field of the Invention
The present invention relates to storage systems, and more particularly, to maintaining trace information in host bus adapters (“HBAs”).
2. Background of the Invention
Storage area networks (“SANs”) are commonly used where plural memory storage devices are made available to various host computing systems. Data in a SAN is typically moved from plural host systems (that include computer systems) to the storage system through various controllers/adapters (including HBAs).
Various standard interfaces are used to move data from host systems to storage devices. Fibre channel is one such standard. Fibre channel (incorporated herein by reference in its entirety) is an American National Standard Institute (ANSI) set of standards, which provides a serial provides a serial transmission protocol for storage and network protocols such as HIPPI, SCSI, IP, ATM and others. Fibre channel provides an input/output interface to meet the requirements of both channel and network users.
Host systems often communicate with storage systems via a HBA using the “PCI” bus interface. PCI stands for Peripheral Component Interconnect, a local bus standard that was developed by Intel Corporation®. The PCI standard is incorporated herein by reference in its entirety. Most modern computing systems include a PCI bus in addition to a more general expansion bus (e.g. the ISA bus). PCI is a 64-bit bus and can run at clock speeds of 33 or 66 MHz.
PCI-X is a standard bus that is compatible with existing PCI cards using the PCI bus. PCI-X improves the data transfer rate of PCI from 132 MBps to as much as 1 GBps. The PCI-X standard was developed by IBM®, Hewlett Packard Corporation® and Compaq Corporation® to increase performance of high bandwidth devices, such as Gigabit Ethernet standard and Fibre Channel Standard, and processors that are part of a cluster.
The iSCSI standard (incorporated herein by reference in its entirety) is based on Small Computer Systems Interface (“SCSI”), which enables host computer systems to perform block data input/output (“I/O”) operations with a variety of peripheral devices including disk and tape devices, optical storage devices, as well as printers and scanners. A traditional SCSI connection between a host system and peripheral device is through parallel cabling and is limited by distance and device support constraints. For storage applications, iSCSI was developed to take advantage of network architectures based on Fibre Channel and Gigabit Ethernet standards. iSCSI leverages the SCSI protocol over established networked infrastructures and defines the means for enabling block storage applications over TCP/IP networks. iSCSI defines mapping of the SCSI protocol with TCP/IP.
The iSCSI architecture is based on a client/server model. Typically, the client is a host system such as a file server that issues a read or write command. The server may be a disk array that responds to the client request.
HBAs today perform complex operations and are key to the overall efficiency of a SAN. HBAs may use more than one processor whose operation should be tracked to perform diagnostics in case of a failure or otherwise. HBA processors use program counters that track various processor-executed operations. However, conventional HBAs do not provide an efficient system for tracing multiple processors or providing the trace information in a user-friendly interface.
Therefore, there is a need for a system and method that can trace multiple processors in an HBA.
A system for storing trace information is provided. The system includes, a programmable trace logic that can be enabled or disabled by firmware running on a HBA and if enabled can receive trace information from at least one processor, which is stored in a local memory buffer controlled by a local memory interface. A receive and transmit path processor data is traced and stored in the local memory buffer.
In yet another aspect, a host bus adapter (“HBA”) is provided with a programmable trace logic that can be enabled or disabled by firmware running on the HBA and if enabled can receive trace information from at least one processor, which is stored in a local memory buffer controlled by a local memory interface.
In yet another aspect of the present invention, a local memory interface for storing processor trace information is provided. The interface includes,
a programmable trace logic that can be enabled enabled or disabled by firmware running on a HBA and if enabled can receive trace information from at least one processor, which is stored in a local memory buffer controlled by the local memory interface.
The trace logic includes an arbitration module that receives trace data from plural sources and the trace data is stored in a first in first out based buffer before being sent to a direct memory access arbiter module and then to an external memory. Trace data as stored in a circular memory buffer includes a trace data source identity value, and a time stamp value indicating when data was collected
This brief summary has been provided so that the nature of the invention may be understood quickly. A more complete understanding of the invention can be obtained by reference to the following detailed description of the preferred embodiments thereof concerning the attached drawings.
The foregoing features and other features of the present invention will now be described with reference to the drawings of a preferred embodiment. In the drawings, the same components have the same reference numerals. The illustrated embodiment is intended to illustrate, but not to limit the invention. The drawings include the following include the following Figures:
To facilitate an understanding of the preferred embodiment, the general architecture and operation of a system using storage devices will be described. The specific architecture and operation of the preferred embodiment will then be described with reference to the general architecture.
It is noteworthy that a host system, as referred to herein, may include a computer, server or other similar devices, which may be coupled to storage systems. Host system includes a host processor, memory, random access memory (“RAM”), and read only memory (“ROM”), and other components.
A request queue 103 and response queue 104 is maintained in host memory 101 for transferring information using adapter 106. Host system communicates with adapter 106 via a PCI bus 105 through a PCI interface 107 (or PCI-X bus and PCI-X bus interface) and PCI core module 137, as shown in
Beside dedicated processors on the receive and transmit path, adapter 106 also includes processor 106A, which may be a reduced instruction set computer (“RISC”) for performing various functions in adapter 106, as described below. It is noteworthy that all the processors (109, 112 and 106A) have program counters for tracking various operations (“trace information”).
Adapter 106 also includes fibre channel interface (also referred to as fibre channel protocol manager “FPM”) 113A that includes an FPM 113B and 113 in receive and transmit paths, respectively. FPM 113B and 113 allow data 113 allow data to move to/from storage systems 116, 118, 120 and 121.
Adapter 106 is also coupled to external memory 108 and 110 via connection 116A (referred interchangeably, hereinafter) and local memory interface 122. Adapter 106 to store firmware trace results, according to one aspect of the present invention, uses external memory 108.
Memory interface 122 is provided for managing local memory 108 and 110 and includes the trace logic for recording processor events, according to one aspect of the present invention. Local DMA module 137A is used for gaining access to move data from local memory (108/110).
Adapter 106 also includes a serial/de-serializer 136 for converting data from 10-bit to 8-bit format. Both receive and transmit paths have direct memory access (“DMA”) via modules 129 and 135. Transmit path also has a scheduler 134 that is coupled to processor 112 and schedules transmit operations.
Adapter 106 includes request queue DMA channel 0130, response queue DMA channel 131, request queue (1) DMA channel 132 that interface with request queue 103 and response queue 104; and a command DMA channel 133 for managing command information.
Arbiter 139 is provided to manage access to local memory that is shared by plural DMA channels. Priorities may be pre-programmed using processor 106A.
Control logic 140 interfaces with all the modules of interface 122 and loads firmware trace, according to one aspect of the present invention.
Firmware trace module 141 provides a mechanism to transfer trace information regarding processor 106A, 109, 112, and modules 130, 131 and 132 to an external memory (for example, 108 and 110). Trace information can be used for later analysis. Logic 141 receives processor 106A program counter data 141A and bi-directional data 141B and 141C. Trace module 141 can use the request/response DMA channel (130-131) to move trace information to memory 108/110.
As shown in
In one aspect, a circular buffer 108A is used to store trace data, which is maintained by the firmware of adapter 106. Firmware defines the location and size of buffer 108A by setting up a Starting and Ending Address registers. A segment size may be set and every time a segment size data block is stored, the segment count is incremented and an interrupt generated to processor 106A.
It is noteworthy that module 141 can be programmed for 1-word or 2-word transfers. If a 1-word transfer is selected, the trace information results in an IOCB address from processor 106A memory pointer. If a 2-word transfer is selected, the data results in an out-pointer (for example, 21 bits and an IOCB address) from processor memory 106A.
A timer counter value 151 provides a time stamp for the data, i.e., when the data was actually recorded. Program counter or IOCB address 152 denotes the actual address of the IOCB or the program counter. Trace data 153 includes the actual data or an IOCB address.
Firmware running on processor 106A converts data in local memory. Firmware can parse data stored in buffer 108A by using a graphical user interface (“GUI”). The GUI allows a user to filter the data and easily interpret the interpret the data since it is correlated with program counters and is time stamped.
Although the present invention has been described with reference to specific embodiments, these embodiments are illustrative only and not limiting. Many other applications and embodiments of the present invention will be apparent in light of this disclosure and the following claims.
Number | Name | Date | Kind |
---|---|---|---|
4162375 | Schlichte | Jul 1979 | A |
4268906 | Bourke et al. | May 1981 | A |
4333143 | Calder | Jun 1982 | A |
4425640 | Philip et al. | Jan 1984 | A |
4449182 | Rubinson et al. | May 1984 | A |
4534018 | Eckert et al. | Aug 1985 | A |
4546468 | Christmas et al. | Oct 1985 | A |
4549263 | Calder | Oct 1985 | A |
4569043 | Simmons et al. | Feb 1986 | A |
4725835 | Schreiner et al. | Feb 1988 | A |
4777595 | Strecker et al. | Oct 1988 | A |
4783730 | Fischer et al. | Nov 1988 | A |
4783739 | Calder | Nov 1988 | A |
4803622 | Bain, Jr. et al. | Feb 1989 | A |
4821034 | Anderson et al. | Apr 1989 | A |
4975883 | Baker et al. | Dec 1990 | A |
5129064 | Fogg, Jr. et al. | Jul 1992 | A |
5144622 | Takiyasu et al. | Sep 1992 | A |
5212795 | Hendry | May 1993 | A |
5249279 | Schmenk et al. | Sep 1993 | A |
5276807 | Kodama et al. | Jan 1994 | A |
5280587 | Shimodaira et al. | Jan 1994 | A |
5301151 | Wells et al. | Apr 1994 | A |
5321816 | Rogan et al. | Jun 1994 | A |
5347638 | Desai et al. | Sep 1994 | A |
5367520 | Cordell | Nov 1994 | A |
5371861 | Keener et al. | Dec 1994 | A |
5388237 | Sodos | Feb 1995 | A |
5420798 | Lin et al. | May 1995 | A |
5448702 | Garcia, Jr. et al. | Sep 1995 | A |
5469453 | Glider et al. | Nov 1995 | A |
5568614 | Mendelson et al. | Oct 1996 | A |
5594686 | Hazen et al. | Jan 1997 | A |
5598541 | Malladi et al. | Jan 1997 | A |
5610745 | Bennett | Mar 1997 | A |
5613162 | Kabenjian | Mar 1997 | A |
5632016 | Hoch et al. | May 1997 | A |
5647057 | Roden et al. | Jul 1997 | A |
5664197 | Kardach et al. | Sep 1997 | A |
5671365 | Binford et al. | Sep 1997 | A |
5687172 | Cloonan et al. | Nov 1997 | A |
5729762 | Kardach et al. | Mar 1998 | A |
5740467 | Chmielecki et al. | Apr 1998 | A |
5742935 | Hazen et al. | Apr 1998 | A |
5748612 | Stoevhase et al. | May 1998 | A |
5751965 | Mayo et al. | May 1998 | A |
5758187 | Young | May 1998 | A |
5761427 | Shah et al. | Jun 1998 | A |
5761533 | Aldereguia et al. | Jun 1998 | A |
5818781 | Estakhri et al. | Oct 1998 | A |
5818842 | Burwell et al. | Oct 1998 | A |
5828856 | Bowes et al. | Oct 1998 | A |
5828903 | Sethuram et al. | Oct 1998 | A |
5835496 | Yeung et al. | Nov 1998 | A |
5859527 | Cook | Jan 1999 | A |
5875343 | Binford et al. | Feb 1999 | A |
5881296 | Williams et al. | Mar 1999 | A |
5892969 | Young | Apr 1999 | A |
5905905 | Dailey et al. | May 1999 | A |
5917723 | Binford | Jun 1999 | A |
5937169 | Connery et al. | Aug 1999 | A |
5960451 | Voigt et al. | Sep 1999 | A |
5968143 | Chisholm et al. | Oct 1999 | A |
5983292 | Nordstrom et al. | Nov 1999 | A |
5987028 | Yang et al. | Nov 1999 | A |
5999528 | Chow et al. | Dec 1999 | A |
6006340 | O'Connell | Dec 1999 | A |
6014383 | McCarty | Jan 2000 | A |
6021128 | Hosoya et al. | Feb 2000 | A |
6047323 | Krause | Apr 2000 | A |
6049802 | Waggener, Jr. et al. | Apr 2000 | A |
6055603 | Ofer et al. | Apr 2000 | A |
6078970 | Nordstrom | Jun 2000 | A |
6081512 | Muller et al. | Jun 2000 | A |
6085277 | Nordstrom et al. | Jul 2000 | A |
6105122 | Muller et al. | Aug 2000 | A |
6115761 | Daniel et al. | Sep 2000 | A |
6118776 | Berman | Sep 2000 | A |
6119254 | Assouad et al. | Sep 2000 | A |
6128292 | Kim et al. | Oct 2000 | A |
6134617 | Weber | Oct 2000 | A |
6138176 | McDonald et al. | Oct 2000 | A |
6144668 | Bass et al. | Nov 2000 | A |
6145123 | Torrey et al. | Nov 2000 | A |
6160813 | Banks et al. | Dec 2000 | A |
6167465 | Parvin et al. | Dec 2000 | A |
6185620 | Weber et al. | Feb 2001 | B1 |
6233244 | Runaldue et al. | May 2001 | B1 |
6246683 | Connery et al. | Jun 2001 | B1 |
6247060 | Boucher et al. | Jun 2001 | B1 |
6269410 | Spasojevic | Jul 2001 | B1 |
6269413 | Sherlock | Jul 2001 | B1 |
6308220 | Mathur | Oct 2001 | B1 |
6324181 | Wong et al. | Nov 2001 | B1 |
6330236 | Ofek et al. | Dec 2001 | B1 |
6334153 | Boucher et al. | Dec 2001 | B2 |
6343324 | Hubis et al. | Jan 2002 | B1 |
6353612 | Zhu et al. | Mar 2002 | B1 |
6370605 | Chong | Apr 2002 | B1 |
6389479 | Boucher et al. | May 2002 | B1 |
6393487 | Boucher et al. | May 2002 | B2 |
6397277 | Kato et al. | May 2002 | B1 |
6408349 | Castellano | Jun 2002 | B1 |
6411599 | Blanc et al. | Jun 2002 | B1 |
6424658 | Mathur | Jul 2002 | B1 |
6425021 | Ghodrat et al. | Jul 2002 | B1 |
6425034 | Steinmetz et al. | Jul 2002 | B1 |
6427171 | Craft et al. | Jul 2002 | B1 |
6427173 | Boucher et al. | Jul 2002 | B1 |
6434620 | Boucher et al. | Aug 2002 | B1 |
6434630 | Micalizzi, Jr. et al. | Aug 2002 | B1 |
6449274 | Holden et al. | Sep 2002 | B1 |
6457090 | Young | Sep 2002 | B1 |
6463032 | Lau et al. | Oct 2002 | B1 |
6467008 | Gentry et al. | Oct 2002 | B1 |
6470173 | Okada et al. | Oct 2002 | B1 |
6470415 | Starr et al. | Oct 2002 | B1 |
6502189 | Westby | Dec 2002 | B1 |
6504846 | Yu et al. | Jan 2003 | B1 |
6526518 | Catlin et al. | Feb 2003 | B1 |
6535945 | Tobin et al. | Mar 2003 | B1 |
6538669 | Lagueux, Jr. et al. | Mar 2003 | B1 |
6546010 | Merchant et al. | Apr 2003 | B1 |
6552934 | Roohparvar | Apr 2003 | B2 |
6564271 | Micalizzi et al. | May 2003 | B2 |
6591302 | Boucher et al. | Jul 2003 | B2 |
6594329 | Susnow | Jul 2003 | B1 |
6597691 | Anderson et al. | Jul 2003 | B1 |
6597777 | Ho | Jul 2003 | B1 |
6604224 | Armstrong et al. | Aug 2003 | B1 |
6636909 | Kahn et al. | Oct 2003 | B1 |
6643748 | Wieland | Nov 2003 | B1 |
6671776 | DeKoning | Dec 2003 | B1 |
6671832 | Apisdorf | Dec 2003 | B1 |
6697359 | George | Feb 2004 | B1 |
6721799 | Slivkoff | Apr 2004 | B1 |
6725388 | Susnow | Apr 2004 | B1 |
6728949 | Bryant et al. | Apr 2004 | B1 |
6732307 | Edwards | May 2004 | B1 |
6760302 | Ellinas et al. | Jul 2004 | B1 |
6763398 | Brant et al. | Jul 2004 | B2 |
6775693 | Adams | Aug 2004 | B1 |
6810440 | Micalizzi, Jr. et al. | Oct 2004 | B2 |
6810442 | Lin | Oct 2004 | B1 |
6839747 | Blumenau et al. | Jan 2005 | B1 |
6871248 | Riley | Mar 2005 | B2 |
6886141 | Kunz et al. | Apr 2005 | B1 |
6944829 | Dando | Sep 2005 | B2 |
7000025 | Wilson | Feb 2006 | B1 |
7051182 | Blumenau et al. | May 2006 | B2 |
7055014 | Pawlowski et al. | May 2006 | B1 |
7080289 | Swaine et al. | Jul 2006 | B2 |
7089357 | Ezra | Aug 2006 | B1 |
7093236 | Swaine et al. | Aug 2006 | B2 |
7117141 | Kaji et al. | Oct 2006 | B2 |
7117304 | Sohn | Oct 2006 | B2 |
7155553 | Lueck et al. | Dec 2006 | B2 |
7155641 | Prang et al. | Dec 2006 | B2 |
7171624 | Baldwin et al. | Jan 2007 | B2 |
7230549 | Woodral et al. | Jun 2007 | B1 |
7231480 | Woodral | Jun 2007 | B2 |
7231560 | Lai et al. | Jun 2007 | B2 |
7254206 | Chiang | Aug 2007 | B2 |
7302616 | Dodson et al. | Nov 2007 | B2 |
20010038628 | Ofek et al. | Nov 2001 | A1 |
20020010882 | Yamashita | Jan 2002 | A1 |
20020034178 | Schmidt et al. | Mar 2002 | A1 |
20020069317 | Chow et al. | Jun 2002 | A1 |
20020073090 | Kedem et al. | Jun 2002 | A1 |
20020131419 | Tamai | Sep 2002 | A1 |
20020147802 | Murotani et al. | Oct 2002 | A1 |
20020196773 | Berman | Dec 2002 | A1 |
20030016683 | George et al. | Jan 2003 | A1 |
20030056000 | Mullendore et al. | Mar 2003 | A1 |
20030056032 | Micalizzi, Jr. et al. | Mar 2003 | A1 |
20030061550 | Ng et al. | Mar 2003 | A1 |
20030091062 | Lay et al. | May 2003 | A1 |
20030097481 | Richter | May 2003 | A1 |
20030120983 | Vieregge et al. | Jun 2003 | A1 |
20030126320 | Liu et al. | Jul 2003 | A1 |
20030126322 | Micalizzi et al. | Jul 2003 | A1 |
20030154028 | Swaine et al. | Aug 2003 | A1 |
20030161429 | Chiang | Aug 2003 | A1 |
20030179748 | George et al. | Sep 2003 | A1 |
20030189935 | Warden et al. | Oct 2003 | A1 |
20030236953 | Grieff et al. | Dec 2003 | A1 |
20040028038 | Anderson et al. | Feb 2004 | A1 |
20040073862 | Armstrong et al. | Apr 2004 | A1 |
20040117690 | Andersson | Jun 2004 | A1 |
20040141521 | George | Jul 2004 | A1 |
20040221201 | Seroff | Nov 2004 | A1 |
20040267982 | Jackson et al. | Dec 2004 | A1 |
20050058148 | Castellano et al. | Mar 2005 | A1 |
20050093575 | Schoenborn et al. | May 2005 | A1 |
20050104623 | Guo et al. | May 2005 | A1 |
20050141661 | Renaud et al. | Jun 2005 | A1 |
20060095607 | Lim et al. | May 2006 | A1 |
20060123298 | Tseng | Jun 2006 | A1 |
20060129733 | Sobelman | Jun 2006 | A1 |
20060156083 | Jang et al. | Jul 2006 | A1 |
20060209735 | Evoy | Sep 2006 | A1 |
20060253757 | Brink et al. | Nov 2006 | A1 |
20070011534 | Boudon et al. | Jan 2007 | A1 |
20070124623 | Tseng | May 2007 | A1 |
20070177701 | Thanigasalam | Aug 2007 | A1 |
20070262891 | Woodral et al. | Nov 2007 | A1 |
Number | Date | Country |
---|---|---|
0649098 | Apr 1995 | EP |
0738978 | Oct 1996 | EP |
0856969 | Aug 1998 | EP |
1059588 | Dec 2000 | EP |
WO-9506286 | Mar 1995 | WO |
WO-9836537 | Aug 1998 | WO |
WO-0058843 | Oct 2000 | WO |
Number | Date | Country | |
---|---|---|---|
20050273672 A1 | Dec 2005 | US |