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. A receive and transmit path processor data is traced and
stored in the local memory buffer. 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 the external memory includes a trace data
source identity value, and a time stamp value indicating when data was
collected.