Advanced Communications Controller B.03.32.00 Release Notes

Advanced Communications Controller B.03.32.00 Release Notes
Patches and Fixes for this Version
Chapter 1 21
JAGad98715
Symptoms: Panic with Data Page Fault with the following stack trace:
panic+0x6c
report_trap_or_int_and_panic+0x94
interrupt+0x208
$ihndlr_rtn+0x0
nacc1_cmplt_read+0x38
nacc2_complete_req+0x34a8
nacc2_end_io+0x580
nacc2_isr+0x126c
sapic_interrupt+0x2c
...
Defect/Fix: When stressing the system by running the tests on 16 cards simultaneously
on a HP rp8400 server, we see the above panic. The panic is because, in
nacc1_cmplt_read, the DMA receive queue is found to be NULL. Dereferencing this
NULL pointer caused the above sustem panic. The fix is to check if qhead is NULL. If it is
NULL, we log a trace message and return.
JAGad67070
Symptoms: System panics with the Spinlock timeout failure.
Defect/Fix: The Spinlock timeout failure seems to be happening because the function
N2z_Disable_ZLUs() calls the zcntl() holding the SPINLOCK(glock). Because there are no
buffers available, the Zc_gosleep() is eventually called which in turn calls sleep(). This is
causing the spinlock timeout failure to occur because the spinlock should not be held when
the sleep() is called. To fix this, the spinlock is released before calling the zcntl() in
function N2z_Disable_ZLUs().
JAGae04681
Symptoms: This is an enhancement to diagnostic capabilities of the ACC Firmware.
Tracing the ACC firmware to determine events leading up to and causes of problems has
been difficult to do without specialized equipment. A better ACC firmware tracing
mechanism was needed.
Defect/Fix: A more advanced ACC firmware tracing environment was developed to enable
on-demand, and dynamic tracing of the ACC firmware, without the need for
extra equipment, such as a logic analyzer. This environment also enabled the amount of
trace points within the firmware code to be substantially increased - since the new
mechanism has a very low impact on the ACC card's performance. The new trace
mechanism allows the amount of active tracing to be varied and tracing of individual
modules and protocols be selectively enabled and disabled dynamically. The mechanism
allows tracing to be captured from a running ACC card.