From owner-freebsd-current@FreeBSD.ORG Mon Jan 3 21:39:41 2005 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3AA7816A4CE for ; Mon, 3 Jan 2005 21:39:41 +0000 (GMT) Received: from mail.acropolis.ru (mail.acropolis.ru [81.211.90.2]) by mx1.FreeBSD.org (Postfix) with ESMTP id D2B6643D31 for ; Mon, 3 Jan 2005 21:39:37 +0000 (GMT) (envelope-from slw@zxy.spb.ru) Received: from mail.acropolis.ru (localhost.acropolis.ru [127.0.0.1]) by mail.acropolis.ru (8.13.1/8.13.1) with ESMTP id j03KNk38091592; Mon, 3 Jan 2005 23:23:46 +0300 (MSK) (envelope-from slw@zxy.spb.ru) Received: (from slw@localhost) by mail.acropolis.ru (8.13.1/8.13.1/Submit) id j03KNkPD091591; Mon, 3 Jan 2005 23:23:46 +0300 (MSK) (envelope-from slw@zxy.spb.ru) X-Authentication-Warning: mail.acropolis.ru: slw set sender to slw@zxy.spb.ru using -f Date: Mon, 3 Jan 2005 23:23:46 +0300 From: Slawa Olhovchenkov To: Doug White Message-ID: <20050103202346.GB22025@mail.acropolis.ru> References: <20050102130625.GA22025@mail.acropolis.ru> <20050103101230.O6665@carver.gumbysoft.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20050103101230.O6665@carver.gumbysoft.com> User-Agent: Mutt/1.5.6i X-Spam-Status: No, hits=-4.9 required=15.0 tests=BAYES_00 autolearn=ham version=2.63 X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on mail.acropolis.ru cc: Poul-Henning Kamp cc: FreeBSD-current@freebsd.org Subject: Re: Hard system hangs on tty code (6-current) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Jan 2005 21:39:41 -0000 On Mon, Jan 03, 2005 at 10:12:46AM -0800, Doug White wrote: kern/75758 > Could you file a PR on this? Thanks! > > On Sun, 2 Jan 2005, Slawa Olhovchenkov wrote: > > > 6-current totally hangs by this program, from user, not root. > > No responds on keys pressed, Control-Alt-ESC, switching console and etc. > > > > System run in infinite loop in sys/kern/tty.c:ttread() > > > > === > > read: > > splx(s); > > /* > > * Input present, check for input mapping and processing. > > */ > > first = 1; > > if (ISSET(lflag, ICANON | ISIG)) > > goto slowcase; > > for (;;) { > > char ibuf[IBUFSIZ]; > > int icc; > > > > icc = imin(uio->uio_resid, IBUFSIZ); > > /* XXX uio_resid==0 => icc=0 */ > > icc = q_to_b(qp, ibuf, icc); > > /* icc == 0 */ > > if (icc <= 0) { > > if (first) > > goto loop; > > > > === > > > > #include > > #include > > #include > > #include > > #include > > #include > > #include > > #include > > #include > > > > #define cfmakeraw(ptr) (ptr)->c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR\ > > |IGNCR|ICRNL|IXON);\ > > (ptr)->c_oflag &= ~OPOST;\ > > (ptr)->c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN);\ > > (ptr)->c_cflag &= ~(CSIZE|PARENB);\ > > (ptr)->c_cflag |= CS8 > > > > > > int > > main(int argc, char *argv[]) > > { > > int fd, > > i; > > char *buf[1024]; > > > > struct termios tcn; > > if ((fd = open("/dev/tty", O_RDWR | O_NONBLOCK)) == -1) { > > return -1; /* errno already set */ > > } > > > > /* Set the tty to raw and to the correct speed */ > > tcgetattr(fd, &tcn); > > > > tcn.c_oflag = 0; > > tcn.c_iflag = IGNBRK | IGNPAR; > > tcn.c_cflag = CREAD | CLOCAL | CS8; > > > > tcn.c_lflag = NOFLSH; > > > > cfmakeraw(&tcn); > > > > for (i = 0; i < 16; i++) > > tcn.c_cc[i] = 0; > > > > tcn.c_cc[VMIN] = 1; > > tcn.c_cc[VTIME] = 0; > > > > tcsetattr(fd, TCSANOW, &tcn); > > > > if ((i = fcntl(fd, F_GETFL, 0)) != -1) { > > i &= ~O_NONBLOCK; > > fcntl(fd, F_SETFL, i); > > } > > read(fd, buf, 0); > > > > } > > > > > > > > > > -- > Doug White | FreeBSD: The Power to Serve > dwhite@gumbysoft.com | www.FreeBSD.org > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org" -- Slawa Olhovchenkov