From owner-freebsd-current Tue Jun 10 21:23:09 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id VAA28424 for current-outgoing; Tue, 10 Jun 1997 21:23:09 -0700 (PDT) Received: from user1.inficad.com (straka@user1.inficad.com [207.19.74.3]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id VAA28410 for ; Tue, 10 Jun 1997 21:23:02 -0700 (PDT) Received: from localhost (straka@localhost) by user1.inficad.com (8.8.5/8.8.5) with SMTP id VAA13814; Tue, 10 Jun 1997 21:29:13 -0700 (MST) Date: Tue, 10 Jun 1997 21:29:13 -0700 (MST) From: Richard Straka To: Bruce Evans cc: current@freebsd.org Subject: Re: sio driver performance In-Reply-To: <199706070431.OAA28487@godzilla.zeta.org.au> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-current@freebsd.org X-Loop: FreeBSD.org Precedence: bulk > >I have noticed that the communications work great until I interrupt the > >process on the box which is tranmitting the data. At that point, the box > >which was receiving suddenly elevates to 100% CPU usage (mostly system) as > >if in a polling loop. When I attempt to reestablish the process which is > > Hangup on the tranmitter breaks the connection. There is no way (*) to > get the same connection back - reads on the open fd will return -1/EIO > forever. (Reads should return 0, but there is a minor bug that prevents > this in some cases. POSIX allows either EOF (0) or -1/EIO.) > > You need to clear HUPCL on the transmitter or set CLOCAL on the receiver > to avoid seeing the hangup. Using CLOCAL is often required to avoid > unwanted POSIX connection semantics. Then you have to monitor the carrier > status directly by polling it if you care about it. > > (*) actually there is a nonstandard way involving toggling CLOCAL. Don't > use it. > Setting CLOCAL on the receiver has worked like a charm. Thanks for the help and thanks to everyone else who responded to my question. Richard Straka straka@inficad.com