2.0.15pre: stallion SMP problem

From: Chris Dunlop (chris@onthe.net.au)
Date: Fri Mar 10 2000 - 23:06:58 EST


Hi,

There appears to be an SMP problem in the stallion driver.

I have a PIII/500 dual processor box with an EC8/32 stallion card with
16 ports, currently running 2.2.15pre13. The load is mainly incoming
ppp, with light amounts of uucp and incoming and outgoing faxing. Under
light testing everything worked fine.

However, after a few hours of full load, I started getting port lockups
where I could no longer communicate with the modem on particular ports.
I tried switching modems and cables between the locked ports and 'ok'
ports, but the problem persisted with the port rather than following the
cable or modem. The only way I could find of getting back the ports was
to reload the stallion module.

I tried compiling and running a non-smp kernel and have now been running
for 4 days without getting the port lockups.

The symtoms are that characters written to the port build up in the TX
buffer rather than being sent to the modem. Below is the output of the
stlstats program available in this tarball from the stallion site:

  http://www.stallion.com.au/drivers/ata5/Linux/ata-linux-550.tar.gz

I've included screen dumps for an 'ok' port and a hung port in an
unopened condition, and after using kermit-196 to open the port and
typing in 'ATE1Q0<enter>'. The obvious differences between the two are
that hung port is in State 2 (ASYI_TXLOW in stallion.c?), and is
buffering up the characters written to the port rather than sending them
to the modem, whilst the 'ok' port is in State 4 (ASYI_TXFLOWED ?) and
the characters are being transmitted rather than persisting in the TX
buffer. The modem control signals are identical in both cases.

Cheers,

Chris,
OnTheNet

========================================================================
Hung port: Unopened
========================================================================
Board=0 Type=27 HwID=00 State=000001 TotalPorts=16
Panel=0 HwID=38 Ports=16

Port=8

STATE: State=00000000 Tty=00000000 Flags=00000000 HwID=46
CONFIG: Cflag=00000000 Iflag=00000000 Oflag=00000000
Lflag=00000000

TX DATA: Total=3031593 Buffered=0
RX DATA: Total=366618 Buffered=0
RX ERRORS: Parity=0 Framing=5 Overrun=0 Lost=0

FLOW TX: Xoff=48 Xon=44
FLOW RX: Xoff=1 Xon=1 RTSoff=1 RTSon=1

OTHER: TXbreaks=0 RXbreaks=0 Modem=9

SIGNALS: DCD=0 DTR=0 CTS=1 RTS=0 DSR=1 RI=0

========================================================================
Hung port: kermit attached, type in "ATE1Q0<enter>", no response
========================================================================
Board=0 Type=27 HwID=00 State=000001 TotalPorts=16
Panel=0 HwID=38 Ports=16

Port=8

STATE: State=00000002 Tty=00000000 Flags=a0000000 HwID=46
CONFIG: Cflag=00000cbf Iflag=00000005 Oflag=00000000
Lflag=00000000

TX DATA: Total=3031593 Buffered=7
RX DATA: Total=366618 Buffered=0
RX ERRORS: Parity=0 Framing=5 Overrun=0 Lost=0

FLOW TX: Xoff=48 Xon=44
FLOW RX: Xoff=1 Xon=1 RTSoff=1 RTSon=1

OTHER: TXbreaks=0 RXbreaks=0 Modem=9

SIGNALS: DCD=0 DTR=1 CTS=1 RTS=1 DSR=1 RI=0

========================================================================
Non-hung: Unopened
========================================================================
Board=0 Type=27 HwID=00 State=000001 TotalPorts=16
Panel=0 HwID=38 Ports=16

Port=2

STATE: State=00000000 Tty=00000000 Flags=00000000 HwID=46
CONFIG: Cflag=00000000 Iflag=00000000 Oflag=00000000
Lflag=00000000

TX DATA: Total=5765 Buffered=0
RX DATA: Total=6871 Buffered=0
RX ERRORS: Parity=0 Framing=15 Overrun=0 Lost=0

FLOW TX: Xoff=0 Xon=0
FLOW RX: Xoff=0 Xon=0 RTSoff=0 RTSon=0

OTHER: TXbreaks=0 RXbreaks=3 Modem=2

SIGNALS: DCD=0 DTR=1 CTS=1 RTS=0 DSR=1 RI=0

========================================================================
Non-hung port: kermit attached, type in "ATE1Q0<enter>" and get back "OK"
========================================================================
Board=0 Type=27 HwID=00 State=000001 TotalPorts=16
Panel=0 HwID=38 Ports=16

Port=2

STATE: State=00000004 Tty=00000000 Flags=a0000000 HwID=46
CONFIG: Cflag=00000cbf Iflag=00000005 Oflag=00000000
Lflag=00000000

TX DATA: Total=5761 Buffered=0
RX DATA: Total=6867 Buffered=0
RX ERRORS: Parity=0 Framing=15 Overrun=0 Lost=0

FLOW TX: Xoff=0 Xon=0
FLOW RX: Xoff=0 Xon=0 RTSoff=0 RTSon=0

OTHER: TXbreaks=0 RXbreaks=3 Modem=2

SIGNALS: DCD=0 DTR=1 CTS=1 RTS=1 DSR=1 RI=0

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Mar 15 2000 - 21:00:19 EST